sklearn的参考教程:

https://morvanzhou.github.io/tutorials/machine-learning/sklearn/3-5-save/

1、 解决的问题

分类、回归、聚类和特征降维

sklearn中有很多数据库可以用来练习

2、交叉验证: cross_val_score

作用:用来评估模型的准确性,基于准确性,选择最好的模型。

优势:一般的评估方法是取一部分数据用于训练,剩下的用来测试模型的准确性, 这种方法不太准确。 交叉验证则是把数据集分成N份,分别用N-1份来训练,剩下的一份来验证,这样总共排列组合N次,得到N个准确率, 然后取平均,这种评估模型的准确率的方法更靠谱

注意:交叉验证的过程并不是在训练我们定义的模型,它只是在评估模型

3、sklearn中模型训练情况的可视化

优势:可以观察训练过程中误差值的变化曲线,可以知道是过拟合还是欠拟合

代码:

from sklearn.learning_curve import learning_curve #学习曲线模块
from sklearn.svm import SVC #Support Vector Classifier
import matplotlib.pyplot as plt #可视化模块
import numpy as nptrain_sizes, train_loss, test_loss = learning_curve(SVC(gamma=0.001), X, y, cv=10, scoring='mean_squared_error',train_sizes=[0.1, 0.25, 0.5, 0.75, 1])#平均每一轮所得到的平均方差(共5轮,分别为样本10%、25%、50%、75%、100%)
train_loss_mean = -np.mean(train_loss, axis=1)
test_loss_mean = -np.mean(test_loss, axis=1)plt.plot(train_sizes, train_loss_mean, 'o-', color="r",label="Training")
plt.plot(train_sizes, test_loss_mean, 'o-', color="g",label="Cross-validation")plt.xlabel("Training examples")
plt.ylabel("Loss")
plt.legend(loc="best")
plt.show()

可以得到如下的损失曲线:

说明: 也可以用validation_curve曲线来观察

4、调参的策略、选模型的策略

利用matplotlib来绘制参数在不同的取值下模型的准确率或者损失值的变化曲线, 并选择最好的参数值

也可以用matplotlib来绘制不同的模型的准确率或者损失值的变化曲线,并选择最好的模型

5、保存模型

a) 使用pickle保存, 这是python自带的模型

from sklearn import svm
from sklearn import datasetsclf = svm.SVC()
iris = datasets.load_iris()
X, y = iris.data, iris.target
clf.fit(X,y)import pickle #pickle模块#保存Model(注:save文件夹要预先建立,否则会报错)
with open('save/clf.pickle', 'wb') as f:pickle.dump(clf, f)#读取Model
with open('save/clf.pickle', 'rb') as f:clf2 = pickle.load(f)#测试读取后的Modelprint(clf2.predict(X[0:1]))

b) 使用joblib保存,这是sklearn中的模块

from sklearn.externals import joblib #jbolib模块#保存Model(注:save文件夹要预先建立,否则会报错)
joblib.dump(clf, 'save/clf.pkl')#读取Model
clf3 = joblib.load('save/clf.pkl')#测试读取后的Model
print(clf3.predict(X[0:1]))

两者的比较: joblib在使用上比较容易,读取速度也比pickle快

6、统计数量

all_data = pd.DataFrame(all_data, columns=all_columns)

print all_data['years'].count()     #统计非空值的数量

print len(all_data['years'])          #统计总的数量

print all_data[all_data['years'] >=0 ].count()   #统计years字段值大于等于0的数量

print all_data[all_data['years'] <0 ].count()     #统计years字段值小于0的数量, 如果某个case的值是Nan, 那么它即不符合>=0也不符合<0

sklearn相关积累相关推荐

  1. ML————朴素贝叶斯原理和SKlearn相关库

    二师兄养成记正式开始, 以后就写这了.  写的不对的.有疑问的,恳请大佬指出来. 一. 贝叶斯定理 1.  条件概率: P(A | B) = P(A B) / P(B) = P(A U B)/ P(B ...

  2. 机器学习sklearn

    sklearn相关模块导入 1 from sklearn.feature_extraction import DictVectorizer 2 from sklearn.feature_extract ...

  3. python sklearn K-Mearns---实例——消费水平

    sklearn.cluster.KMeans K-mearns取类算法 k-mearns算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低 1.随机选择k个点作为初始的聚 ...

  4. sklearn学习05——K-means

    sklearn学习05--K-means 前言 一.K-means算法思想 二.代码实现 K-means算法 2.1.引入相关库 2.2.生成数据集 2.3.训练 + 预测 2.3.惯性指标(iner ...

  5. 腾讯AI Lab视觉计算中心招聘计算机视觉算法实习生

    腾讯 AI Lab 腾讯 AI Lab 是腾讯的企业级 AI 实验室,于 2016 年 4 月在深圳成立,团队由 100 余位来自世界知名院校的科学家,以及 300 多位经验丰富的应用工程师组成,并与 ...

  6. 后疫情时代下,企业数字化转型之路如何走?

    如今,推进数字化转型正成为多数中国企业的核心战略,据国际数据公司IDC与浪潮联合发布的<2019年数据及存储发展研究报告>显示,2019年中国数字化转型IT支出首次超过非数字化转型IT支出 ...

  7. python线性回归模型预处理_线性回归-2 数据预处理与模型验证评估

    主要内容数据向量化处理 特征放缩 上采样和下采样 重采样和交叉验证 模型验证 python 代码实现 1. 数据向量化处理 对于给定的m个样本,假设最终的拟合函数是 为拟合的权重系数,则有 损失函数改 ...

  8. 中台创业潮起,你中台创业了吗?

    最近,有媒体报道了阿里旗下菜鸟网络原CTO谷雪梅(花名:康朵)将回归集团统筹中台业务的消息,但后来菜鸟网络辟谣称,无此调整. 中台业务是阿里2015年12月成立的事业群,当时组织架构级别甚至和由阿里C ...

  9. python 预测算法_通过机器学习的线性回归算法预测股票走势(用Python实现)

    本文转自博客园,作者为hsm_computer 原文链接:https://www.cnblogs.com/JavaArchitect/p/11717998.html在笔者的新书里,将通过股票案例讲述P ...

最新文章

  1. Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园
  2. window+VS+OpenCV编译libfacedetection库进行人脸检测
  3. 实木地板被机器人弄成坑_防腐木地板怎选择 防腐木地板怎样安装
  4. 首届FineReport平台主题设计大赛火热启动
  5. [源码]天骄天下个人网站系统(三个月倾情打造)
  6. 微型计算机没什么总线,微型计算机系统总线包括什么?
  7. Ubuntu snap 定制内核插件
  8. Android自动化测试(UiAutomator)简要介绍 - 萧瑟一笑的专栏 - 博客频道 - CSDN.NET...
  9. java怎么用一行代码初始化ArrayList
  10. Linux 内网文件传输工具_Linux服务器局域网(内网)快速传输文件
  11. python柱状图显示数值_Python实现绘制双柱状图并显示数值功能示例
  12. python中集合用什么符号表示_Python 集合set添加删除、交集、并集、集合操作符号...
  13. linux内核源码分析之slab(四)
  14. OpenCV学习笔记(九)之直方图均衡化(图像增强)
  15. Java — 内部类存在意义
  16. 《Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts》 阅读笔记
  17. 阿里云国际版设置DNS托管和智能分流教程详解
  18. linux netstat 命令 (转载)
  19. 技术分享:Proxy-Pool代理池搭建IP代理
  20. mooc-python语言基础与应用3-数据类型(一)

热门文章

  1. Unity WebGL打包微端时遇到的indexedDB加载问题
  2. mfix中统计气泡体积
  3. 自定义控件-----输入框
  4. 删除ELK中的数据。。
  5. PureCode--iOS--自定义UITableViewCell(含疑问)
  6. js防止表单的重复提交
  7. 【计算机网络】——初识计算机网络
  8. 使用dbca创建oracle实例
  9. JUnit5 @RepeatedTest注解示例
  10. 关于Web端-UI自动化测试