python中的sklearn库

1. 核心功能
- 机器学习算法:提供分类(如逻辑回归、决策树、SVM)、回归(如线性回归、随机森林)、聚类(如K-means、DBSCAN)、降维(如PCA)等多种算法。
- 数据预处理:支持数据清洗、特征缩放(标准化、归一化)、特征选择、缺失值处理等。
- 模型选择:提供交叉验证、网格搜索等工具,帮助选择合适的模型。
- 模型评估:支持准确率、精确率、召回率、ROC曲线等多种评估指标。
2. 常用类与方法
数据集加载:
load_iris()
:加载鸢尾花数据集(分类任务)。load_digits()
:加载手写数字数据集(分类任务)。fetch_20newsgroups()
:加载新闻文本数据集(文本分类)。
数据预处理:
train_test_split(X, y, test_size=0.2)
:划分训练集和测试集。StandardScaler()
:标准化数据(均值为0,标准差为1)。MinMaxScaler()
:归一化数据(缩放到0-1范围)。SelectKBest()
:选择最佳特征。
机器学习算法:
- 分类:
LogisticRegression()
:逻辑回归(适合二分类)。KNeighborsClassifier()
:K近邻分类(基于距离)。SVC()
:支持向量机分类(高维数据有效)。DecisionTreeClassifier()
:决策树分类(可解释性强)。RandomForestClassifier()
:随机森林分类(集成方法,抗过拟合)。
- 回归:
LinearRegression()
:线性回归(预测连续值)。DecisionTreeRegressor()
:决策树回归。RandomForestRegressor()
:随机森林回归。
- 聚类:
KMeans()
:K均值聚类(需指定簇数)。DBSCAN()
:密度聚类(自动发现簇数)。
- 降维:
PCA()
:主成分分析(保留主要信息)。
- 分类:
模型选择:
cross_val_score(model, X, y, cv=5)
:交叉验证(评估模型稳定性)。GridSearchCV(model, param_grid, cv=5)
:网格搜索(超参数调优)。
模型评估:
accuracy_score(y_true, y_pred)
:准确率(分类任务)。mean_squared_error(y_true, y_pred)
:均方误差(回归任务)。confusion_matrix(y_true, y_pred)
:混淆矩阵(分类任务)。classification_report(y_true, y_pred)
:分类报告(包含精确率、召回率等)。
3. 使用示例
加载数据集并划分:
1
2
3
4
5
6
7
8from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)数据预处理:
1
2
3
4
5from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)训练模型并预测:
1
2
3
4
5
6from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train_scaled, y_train)
y_pred = model.predict(X_test_scaled)评估模型:
1
2
3
4from sklearn.metrics import accuracy_score, classification_report
print(f"Accuracy: {accuracy_score(y_test, y_pred)}")
print(classification_report(y_test, y_pred))
4. 注意事项
- 数据预处理:缺失值、异常值需处理,分类变量需编码(如独热编码)。
- 特征缩放:对基于距离的算法(如KNN、SVM)和梯度下降算法(如线性回归)尤为重要。
- 过拟合/欠拟合:通过调整模型复杂度(如树深度)、正则化参数、增加数据量等方法解决。
- 模型选择:交叉验证避免过拟合,网格搜索找到最佳超参数。
- 类别平衡:分类任务中若类别不平衡,需采用采样方法(如SMOTE)或调整类别权重。
总结
- 基础流程:加载数据 → 划分数据集 → 预处理 → 训练模型 → 预测 → 评估。
- 常用算法:分类用逻辑回归、随机森林;回归用线性回归、决策树;聚类用K-means、DBSCAN。
- 工具函数:
train_test_split
划分数据,StandardScaler
标准化,GridSearchCV
调参。 - 评估指标:分类用准确率、混淆矩阵;回归用均方误差;聚类用轮廓系数。
- 标题: python中的sklearn库
- 作者: lemon
- 创建于 : 2025-04-12 22:30:30
- 更新于 : 2025-04-12 22:32:47
- 链接: https://lemon2003.github.io/post/20250412223030.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论