前言
Scikit-Learn(简称 Sklearn)是一个强大的 Python 库,用于机器学习和数据科学。它提供了各种算法和工具来帮助构建和评估机器学习模型。以下是一个 Sklearn 基础教程,涵盖安装、数据集加载、模型训练和评估等内容。
1.安装Sklearn
使用 pip 或 conda 进行安装:
使用 pip:
pip install scikit-learn
使用 conda:
conda install scikit-learn
2.数据集加载
Sklearn 提供了一些内置数据集,例如 Iris 数据集、波士顿房价数据集等。我们可以使用这些数据集进行模型训练和评估。
以下是加载 Iris 数据集的示例:
from sklearn.datasets import load_iris
# 加载 Iris 数据集
iris = load_iris()
X = iris.data # 特征
y = iris.target # 标签
3.数据预处理
数据预处理是机器学习流程中的重要步骤。Sklearn 提供了一些工具来帮助进行数据预处理,例如标准化、归一化等。
以下是标准化数据的示例:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
4.模型训练
Sklearn 提供了多种机器学习算法,如线性回归、逻辑回归、决策树、随机森林等。以下是训练一个逻辑回归模型的示例:
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
# 创建并训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)
5.模型评估
训练完模型后,需要评估模型的性能。Sklearn 提供了多种评估指标,如准确率、精确率、召回率、F1 分数等。
以下是评估逻辑回归模型的示例:
from sklearn.metrics import accuracy_score, classification_report
# 预测测试集
y_pred = model.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
# 打印分类报告
report = classification_report(y_test, y_pred)
print(report)
6.超参数调优
超参数调优是提高模型性能的关键步骤。以下是使用 GridSearchCV 进行超参数调优的示例:
from sklearn.model_selection import GridSearchCV
# 定义超参数网格
param_grid = {
'C': [0.1, 1, 10],
'solver': ['liblinear', 'saga']
}
# 创建 GridSearchCV 对象
grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5)
# 进行超参数调优
grid_search.fit(X_train, y_train)
# 最佳超参数
print(f"Best Parameters: {grid_search.best_params_}")
7.保存模型
import joblib
# 保存模型
joblib.dump(model, 'logistic_regression_model.pkl')
# 加载模型
loaded_model = joblib.load('logistic_regression_model.pkl')
# 使用加载的模型进行预测
loaded_model.predict(X_test)