机器学习入门(一)编写入门程序

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))
发布了151 篇原创文章 · 获赞 23 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_33598343/article/details/102527278
今日推荐