目录
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))