1.學習的步驟(本文及後續內容針對開發崗,不深入)
- 1.數據的加載
- 2.選擇模型
- 3.模型的訓練
- 4.模型的預測
- 5.模型的評測
- 6.模型的保存
2.機器學習庫sklearn
sklearn是機器學習中一個常用的python第三方模塊,裏面對一些常用的機器學習方法進行了封裝,不需要都實現所有的算法,只需要簡單的調用sklearn裏的模塊就可以實現機器學習任務
機器學習中評估算法的普遍實踐是把數據分割成訓練集(我們從中學習數據的屬性)和測試集(我們測試這些性質)
3.機器學習入門程序
按照上面的學習的步驟來編寫我們的機器學習程序
(一)導入數據集
這裏我們使用的sklearn裏自帶的數據集
加載iris和digits數據集
iris = datasets.load_iris()
#print(iris.data)
切分數據集
from sklearn.model_selection import train_test_split
#切分數據集,測試數據佔百分之40
#X爲特徵數據的切分,y爲對於的類別的劃分
X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.4,random_state=0)
(二)選擇模型
from sklearn import svm
svc = svm.SVC()
(三)訓練模型
svc.fit(X_train, y_train)
(四)模型預測
print(svc.predict([[5.84,4.4,6.9,2.5]]))
(五)模型評測
通常從算法類型選擇指標:
- 分類指標 準確率( accuracy)
- 迴歸指標 均方誤差(mean_squared_error),方均根差 RMSE(Root Mean Square Error)
- 聚類指標
計算指標(這裏算的是準確率,從metrics裏可以調用其他指標的函數)
import numpy as np
from sklearn.metrics import accuracy_score
y_pred = [0, 2, 1, 3]
y_true = [0, 1, 2, 3]
accuracy_score(y_true, y_pred)
交叉驗證
給完整的數據進去,交叉驗證會將其分成cv份,每一份都會做一次測試集,其他的作爲訓練集進行計算,可以給scoring參數指定計算其他指標(召回率,均方差)
>>>from sklearn.model_selection import cross_val_score
>>>scores = cross_val_score(knn, iris.data, iris.target, cv=5)
(六)模型的保存
from sklearn.externals import joblib
#保存模型
joblib.dump(knn, 'filename.pkl')
#加載模型
knn1 = joblib.load('filename.pkl')
#測試讀取後的Model
print(knn1.score(X_test, y_test))