2026-06-27 19:18:31
Scikit-learn 是一个功能强大且简单易用的 Python 机器学习库,适用于数据挖掘和数据分析任务,支持分类、回归、聚类等多种算法,并具备高效、可扩展的特点。
Scikit-learn 的核心特点数据加载与分割:
Scikit-learn 内置多种数据集(如波士顿房价、鸢尾花分类),通过 datasets.load_*() 加载。
使用 train_test_split() 按比例划分训练集和测试集,确保模型评估的客观性。
模型训练:
根据任务选择模型:
回归:线性回归(LinearRegression)、决策树回归(DecisionTreeRegressor)。
分类:逻辑回归(LogisticRegression)、支持向量机(SVC)。
聚类:K-Means(KMeans)、DBSCAN(DBSCAN)。
调用 fit(X_train, y_train) 训练模型。
模型评估:
回归任务常用均方误差(MSE)、R2 分数。
分类任务使用准确率、F1 分数、混淆矩阵等。
示例代码:
from sklearn.metrics import mean_squared_error, r2_scorey_pred = model.predict(X_test)print(f"MSE: {mean_squared_error(y_test, y_pred)}")print(f"R2 Score: {r2_score(y_test, y_pred)}")完整代码流程包括数据加载、分割、模型训练、评估及可视化:
import matplotlib.pyplot as pltfrom sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegression# 加载数据boston = datasets.load_boston()X, y = boston.data, boston.target# 分割数据X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 训练模型model = LinearRegression()model.fit(X_train, y_train)# 预测与评估y_pred = model.predict(X_test)mse = ((y_pred - y_test) 2).mean()print(f"Mean Squared Error: {mse}")# 可视化结果plt.scatter(y_test, y_pred)plt.xlabel("Actual Prices")plt.ylabel("Predicted Prices")plt.title("Actual vs Predicted Prices")plt.show()输出结果:
数据预处理:
标准化:使用 StandardScaler 使特征均值为 0、方差为 1。
from sklearn.preprocessing import StandardScalerscaler = StandardScaler()X_train_scaled = scaler.fit_transform(X_train)X_test_scaled = scaler.transform(X_test)归一化:通过 MinMaxScaler 将特征缩放到 [0, 1] 范围。
模型选择与调优:
交叉验证:使用 KFold 或 cross_val_score 评估模型稳定性。
网格搜索:通过 GridSearchCV 自动寻找最优参数。
from sklearn.model_selection import GridSearchCVparam_grid = {'n_estimators': [50, 100], 'max_depth': [3, 5]}grid_search = GridSearchCV(RandomForestRegressor(), param_grid, cv=5)grid_search.fit(X_train, y_train)print(f"Best Parameters: {grid_search.best_params_}")避免过拟合:
使用正则化(如 Lasso/Ridge 回归)。
通过 EarlyStopping 或剪枝(决策树)控制模型复杂度。
Scikit-learn 以其简洁的 API、丰富的算法和高效的性能,成为机器学习领域的标杆工具。无论是初学者还是专业开发者,都能通过它快速实现从数据预处理到模型部署的全流程。掌握其核心模块(如 model_selection、metrics、preprocessing)并结合实际场景灵活应用,是提升机器学习能力的关键。