scikit-learn
(简称sklearn
)是一个广泛使用的Python库,用于数据挖掘和数据分析。它提供了许多用于分类、回归、聚类以及数据预处理的算法。以下是一个更详细的sklearn
基础教程,它涵盖了从环境搭建到模型部署的整个工作流程:
1. 环境搭建与库导入
首先,确保你已经安装了scikit-learn
。可以通过以下命令安装:
pip install scikit-learn
然后导入所需的库:
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report
2. 数据加载与理解
使用scikit-learn
内置的数据集或加载自己的数据。这里以Iris数据集为例:
iris = datasets.load_iris()
X = iris.data
y = iris.target
可以查看数据的描述和结构:
print(iris.DESCR)
3. 数据预处理
数据预处理是机器学习中至关重要的一步,通常包括数据清洗、特征缩放、特征工程等。
# 特征缩放
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
4. 划分数据集
将数据集分为训练集和测试集,以便在训练模型后进行性能评估。
X_train, X_test, y_train, y_test =
train_test_split(X_scaled, y, test_size=0.2, random_state=42)
5. 选择并训练模型
选择一个模型,例如逻辑回归,并使用训练数据训练模型。
model = LogisticRegression()
model.fit(X_train, y_train)
6. 模型评估
使用测试集评估模型的性能。可以使用各种指标,如准确率、召回率、F1分数等。
y_pred = model.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))
7. 模型调优
通过调整模型参数或使用其他算法,优化模型性能。可以使用GridSearchCV
或RandomizedSearchCV
进行超参数调优。
from sklearn.model_selection import GridSearchCV
param_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100], 'penalty': ['l1', 'l2']}
grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5)
grid_search.fit(X_train, y_train)
best_model = grid_search.best_estimator_
8. 模型保存与应用
使用joblib
或pickle
保存模型,以便在未来部署或应用。
from joblib import dump
dump(best_model, 'model.joblib')
然后在其他地方加载模型并进行预测:
from joblib import load
loaded_model = load('model.joblib')
predictions = loaded_model.predict(new_data)
以上步骤提供了一个全面的scikit-learn
基础教程框架。实际操作时,你可能需要根据具体任务和数据调整这些步骤。scikit-learn
的官方文档和社区资源提供了更深入的信息和示例,可以帮助你解决具体问题。
更多文章,请关注公众号获取:
码上云游