大家好!今天我要和大家分享一个超级实用的Python机器学习库 - Scikit-learn(常简写为sklearn)。作为机器学习领域最受欢迎的Python库之一,它就像是我们踏入AI世界的第一把钥匙。无论你是想预测房价、分类图片,还是做一些有趣的数据分析,Scikit-learn都能帮你轻松实现。
1. 初识Scikit-learn
让我们先来安装并导入这个强大的工具:
# 安装sklearn(只需执行一次)
pip install scikit-learn
# 导入常用模块
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
小贴士:建议使用虚拟环境安装,避免包版本冲突哦!
2. 数据集:机器学习的"练习本"
Scikit-learn自带了很多经典数据集,让我们从最简单的鸢尾花数据集开始:
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data # 特征数据
y = iris.target # 标签数据
# 查看数据基本信息
print(f"数据集形状: {X.shape}")
print(f"特征名称: {iris.feature_names}")
print(f"目标类别: {iris.target_names}")
小贴士:实际项目中,数据预处理非常重要!数据质量直接影响模型效果。
3. 训练集和测试集:模型的"考试系统"
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
print(f"训练集大小: {X_train.shape}")
print(f"测试集大小: {X_test.shape}")
重点提示:使用random_state
可以确保每次运行得到相同的划分结果,方便代码调试。
4. 模型训练:让AI学习的过程
我们先尝试一个简单的分类器 - K近邻(KNN):
from sklearn.neighbors import KNeighborsClassifier
# 创建并训练模型
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# 预测测试集
y_pred = knn.predict(X_test)
# 评估模型效果
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}")
5. 模型评估:成绩单时间!
from sklearn.metrics import classification_report, confusion_matrix
# 详细的评估报告
print("分类报告:")
print(classification_report(y_test, y_pred, target_names=iris.target_names))
# 混淆矩阵
print("混淆矩阵:")
print(confusion_matrix(y_test, y_pred))
实战小练习:
尝试修改KNN的 n_neighbors
参数,观察准确率的变化用其他分类器(如决策树、随机森林)替换KNN,比较效果
6. 模型保存:给AI打包带走
import joblib
# 保存模型
joblib.dump(knn, 'knn_model.pkl')
# 加载模型
loaded_model = joblib.load('knn_model.pkl')
小贴士:模型文件可能比较大,注意存储空间!
今天的Python学习之旅就到这里啦!记得动手敲代码。用Scikit-learn实现机器学习真的很简单吧?它强大的功能远不止这些,建议大家多尝试其他算法,用不同的数据集来练习。记住:在AI领域,实践出真知!
祝大家学习愉快,Python学习节节高!