【【sklearn】一般流程及模型】一般流程及模型
文章目录文章目录0.sklearn运行流程1.数据集2.模型.pkl.m1. 保存 、读取、预测2. 一个完整的svm分类例子3.封装其他模型3.预测
Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类
(Classfication)、聚类(Clustering)等方法。
参考这篇文章的代码:
【Sklearn】入门花卉数据集实验–理解朴素贝叶斯分类器
0.sklearn运行流程运行流程
数据集处理
数据集加载数据集加载 X=[],标签Y=[] , 比例X:Y=1:1
数据集分类数据集分类 train_test_split ->(X_train,X_test,y_train,y_test)
特征提取
特征提取特征提取(直方图、轮廓描述子…特征数组)
训练模型
特征分类特征分类(构造分类器(lr线性分类,svm支持向量机分类,beyes贝叶斯分类…))
用训练训练数据(X_train,y_train)拟合分类器模型模型 、保存模型保存模型
预测
预测 result = predit(X_test)
分析 classification_report (result)
1.数据集数据集
数据集处理中我们常用到:
datasets : 是sklearn库自带的数据集(iris鸢尾花数据等),前期学习非常友好
train_test_split 将数据分为测试集和训练集
from sklearn import datasets#引入数据集,sklearn包含众多数据集
from sklearn.model_selection import train_test_split#将数据分为测试集和训练集
iris = datasets.load_iris()#引入iris鸢尾花数据,iris数据包含4个特征变量
X = iris.data # 特征变量
y = iris.target # 目标值
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3, random_state=1)#利用train_test_split进行将训练集和测试集进行分开,test_size占30%
print(y_train)#我们看到训练数据的特征值分为3类
2.模型模型
Sklearn的模型导出本质上是利用Python的Pickle机制。对Python的函数进行序列化,也就是把训练好的Transformer函数序列化并存为文件。
.pkl
pkl文件是python里面保存文件的一种格式,如果直接打开会显示一堆序列化的东西。
import pickle
# 重点是rb和r的区别,rb是打开2进制文件,文本文件用r
f = open('test.pkl','rb')
data = pickle.load(f)
print(data)
参考这篇文章:sklearn 中模型保存的两种方法
既然joblib在使用上比较容易,读取速度也相对pickle快,那么我们后面就用joblib进行讨论。
.m
1. 保存保存 、读取、预测、读取、预测
from sklearn.externals import joblib
joblib.dump(lr, 'lr.model') # 保存 lr是一个LogisticRegression模型
lr = joblib.load('lr.model') # 加载
lr.predit(test_X) # 预测 此处test_X为特征集
2. 一个完整的一个完整的svm分类例子分类例子
评论0