scikit-learn(简记sklearn),是用python实现的机器学习算法库。sklearn可以实现数据预处理、分类、回归、降维、模型选择等常用的机器学习算法。sklearn是基于NumPy, SciPy, matplotlib的。 官方网站:https://scikit-learn.org/dev/index.html 通过访问官网我们可以快速了解每个模型的介绍及用法。
本文主要介绍Sklearn开发流程步骤,初学者可以大概可以了解机器学习的开发流程步骤
sklearn官网页面
1. 加载数据
我们既然是进行机器学习,肯定是要有数据的,让机器读取这些数据然后学习数据之间特征属性的映射关系喂给模型,然后做出预测。当然数据量不易过大也不宜过小,合适就好,这要根据具体的业务场景判断。
2. 数据的清洗
我们让机器读取了这些,但是这是数据一定不是规范的,也就是说没有统一的格式或者数据某个值缺失,还可能存在异常数据,这就需要我们人为的对数据进行一个清洗。
3. 根据需求和原始模型从原始的特征属性中获取特征属性矩阵X和目标属性矩阵Y
也就是说我们需要找到数据之间的映射关系,根据特征属性矩阵X来预测目标属性矩阵Y,直白点以线性回归讲 y=ax+b,x就是特征属性矩阵,y就是目标属性矩阵Y,x就是数据中某一列的值,模型就是y=ax+b (LinearRegression线性回归)通过fit训练x,我们可以预测y值。
4. 数据的分割(划分为训练数据和测试数据)
需要对数据进行划为x_train,y_train x_test,y_test,交叉验证是在机器学习建立模型和验证模型参数时常用的办法。交叉验证就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不通同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。
5. 特征工程
“数据决定了机器学习的上限,而算法只是尽可能逼近这个上限”,这里的数据指的就是经过特征工程得到的数据。特征工程指的是把原始数据转变为模型的训练数据的过程,它的目的就是获取更好的训练数据特征,使得机器学习模型逼近这个上限。特征工程能使得模型的性能得到提升,有时甚至在简单的模型上也能取得不错的效果。特征工程在机器学习中占有非常重要的作用,一般认为括特征构建、特征提取、特征选择三个部分。
6. 模型对象的构建
algo = LinearRegression(fit_intercept=True)就是要选择的模型,这里以线性回归构建模型,fit_intercept训练截距项的意思,也就是前面的y=ax+b 的b, =true就是训练截距项, =flase就是不训练。
7. 模型对象的训练
algo.fit(x_train, y_train) 简单理解就是把x_train, y_train(训练集里的x ,y)喂给模型进行训练。
8. 模型效果评估
一般有常用的几个指标:Precision 精确度 Recall 召回率 Accuracy 准确率 R2(前3个是分类,R2回归) 通过指标判断模型效果的好坏,然后进行相应参数的调节
9. 模型持久化
一般常用方式
方式一:直接将模型的预测结果保存数据库,应用的时候直接从数据库中获取预测结果。
方式二:直接将模型参数保存数据库,应用的时候直接从数据库中获取模型参数,然后根据算法原理还原模型。
方式三:通过sklearn的相关API将模型持久化为磁盘文件,应用的时候使用sklearn的相关API加载恢复模型。
模型算法选择流程
大家对上述过程的了解,对机器学习开发流程因该有了初步的认识,估计想拿一个数据进行模型构建和训练了,不要急,进行机器学习还有一些基础知识需要了解,主要就是:高数基础,numpy padans matplotlib,后面说到了,会给大家解释用法。
谢谢大家阅读,喜欢的作者可以点给赞,你们的赞就是我坚持下去的动力,如果你有什么不同的看法请给我留言,我会及时回复,如果有错误请及时指出来告诉我,再次感谢..........
领取专属 10元无门槛券
私享最新 技术干货