scikit-learn
(通常簡稱為sklearn
)是Python中最受歡迎的機器學習庫之一,它提供了各種監督和非監督學習算法的實現。下面是一個基本的教程,涵蓋如何使用sklearn
進行數據預處理、模型訓練和評估。
1. 安裝和導入包
首先確保安裝了scikit-learn
庫,可以使用pip命令進行安裝:
pip install -U scikit-learn
然后在Python腳本中導入所需的模塊:
import numpy as np
import pandas as pd
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. 加載數據
sklearn
自帶了一些數據集,例如鳶尾花數據集(Iris dataset):
from sklearn.datasets import load_iris
data = load_iris()
X = data.data
y = data.target
或者你可以加載自己的數據集:
df = pd.read_csv('your_dataset.csv')
X = df.drop('target_column', axis=1)
y = df['target_column']
3. 數據預處理
通常需要對數據進行預處理,包括分割數據集、填充缺失值、特征縮放等:
# 劃分數據集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 特征縮放
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
4. 模型訓練
選擇一個模型,例如邏輯回歸,并訓練它:
model = LogisticRegression()
model.fit(X_train, y_train)
5. 模型預測
使用訓練好的模型進行預測:
y_pred = model.predict(X_test)
6. 模型評估
評估模型的性能:
print("Accuracy:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))
7. 模型調優
可以使用交叉驗證和網格搜索來調整模型參數:
from sklearn.model_selection import GridSearchCVparameters = {'C': [0.1, 1, 10]}
clf = GridSearchCV(LogisticRegression(), parameters)
clf.fit(X_train, y_train)# 最佳參數
print(clf.best_params_)
8. 模型保存與加載
使用joblib
庫保存和加載模型:
from sklearn.externals import joblib# 保存模型
joblib.dump(model, 'model.pkl')# 加載模型
model = joblib.load('model.pkl')
請注意,上面的joblib
保存和加載代碼示例適用于scikit-learn
較舊版本。在scikit-learn
0.23及更高版本中,應使用joblib
庫直接進行保存和加載:
import joblib# 保存模型
joblib.dump(model, 'model.pkl')# 加載模型
model = joblib.load('model.pkl')
以上就是使用scikit-learn
進行機器學習的基本流程。你可以根據具體需求替換模型、調整參數和執行更復雜的預處理步驟。