sklearn使用方法,包括从制作数据集,拆分数据集,调用模型,保存加载模型,分析结果,可视化结果

 1 import pandas as pd
2 import numpy as np
3 from sklearn.model_selection import train_test_split #训练测试集拆分
4 from sklearn.linear_model import LogisticRegression #逻辑回归模型
5 import matplotlib.pyplot as plt #画图函数
6
7 from sklearn.externals import joblib #保存加载模型函数joblib
8
9 #以下为sklearn评测指标的一些函数
10 from sklearn.metrics import precision_score
11 from sklearn.metrics import classification_report
12 from sklearn.metrics import confusion_matrix
13
14 #1. 若有文件,建议用read_csv加载,用sep代表按照该符号分割,若文件无列标签名,则header设置为None,自定义标签名names
15
16 #file = "XXX_file"
17 #df = pd.read_csv(file, sep='###',header = None, names = ['flag','uuid','features'],engine = 'python')
18 #df.head()
19
20
21 #2. 准备好特征集合x 和 标签集合y
22
23 #x = df['features'] #x存储特征
24 #y = df['flag'] #y存储标签
25 x = np.random.rand(100,3)
26 print("x:\n",x)
27 print(x.shape)
28 y = np.array([1 if i.sum()>1.2 else 0 for i in x]) #若三个维度之和大于1.2,则y分类为1,否则为0
29 print("y:\n",y)
30 print(y.shape) #注意y的形式必须是(n,),即numpy中的一维格式
31 #当同时有 if 和 else 时,列表生成式构造为 [最终表达式 - 条件分支判断 - 范围选择]
32
33
34 #3. 拆分训练集和测试集(7:3)
35 x_train, x_test, y_train, y_test = train_test_split(x,y, random_state=666, train_size = 0.7)
36
37
38 #4. 生成模型,并喂入数据
39 clf = LogisticRegression()
40 clf.fit(x_train, y_train)
41
42
43 #5. 保存模型(用joblib,不用pickle)
44 joblib.dump(clf,"lr.model") #from sklearn.externals import joblib
45 #加载模型是: clf = joblib.load("lr.model")
46
47
48 #6. 预测结果,并评测
49 y_pred = clf.predict(x_test) #预测出来的值计做y_pred
50 y_true = y_test #真实值计做y_true,和sklearn参数一模一样
51
52 target_names = ['class 0', 'class 1']
53 print(classification_report(y_true, y_pred, target_names=target_names)) #可以参考sklearn官网API
54 print(confusion_matrix(y_true, y_pred)) #混淆矩阵(记住!sklearn定义的混淆矩阵m行n列含义是:该样本真实值是m,预测值是n)
55 print("precision_score:", precision_score(y_test,y_pred)) #打印精确率(记住!默认是positive,即标注为1的精确率)
56
57
58 #7. 附加:结果可视化,利用plt(用seaborn也可以)
59 """
60 #神秘代码,主要是保证plt字体显示正确
61 plt.rcParams['font.sans-serif'] = ['SimHei']
62 plt.rcParams['font.family']='sans-serif'
63 plt.rcParams['axes.unicode_minus'] = False
64 """
65 plt.plot(y_pred,"b.", label = "y_pred") #blue,点号
66 plt.plot(y_true,"r*", label = "y_true") #red,星号
67 plt.legend()
68 plt.show() #画的比较简略,可以进一步美化

python——sklearn完整例子整理示范(有监督,逻辑回归范例)(原创)的更多相关文章

  1. python基础全部知识点整理,超级全(20万字+)

    目录 Python编程语言简介 https://www.cnblogs.com/hany-postq473111315/p/12256134.html Python环境搭建及中文编码 https:// ...

  2. Python —— sklearn.feature_selection模块

    Python —— sklearn.feature_selection模块 sklearn.feature_selection模块的作用是feature selection,而不是feature ex ...

  3. Python Sklearn.metrics 简介及应用示例

    Python Sklearn.metrics 简介及应用示例 利用Python进行各种机器学习算法的实现时,经常会用到sklearn(scikit-learn)这个模块/库. 无论利用机器学习算法进行 ...

  4. python+sklearn+kaggle机器学习

    python+sklearn+kaggle机器学习 系列教程 0.kaggle 1. 初级线性回归模型机器学习过程 a. 提取数据 b.数据预处理 c.训练模型 d.根据数据预测 e.验证 今天是10 ...

  5. C#调用存储过程简单完整例子

    CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE NAME= ...

  6. python多线程简单例子

    python多线程简单例子 作者:vpoet mail:vpoet_sir@163.com import thread def childthread(threadid): print "I ...

  7. 使用Connector/C++(VS2015)连接MySQL的完整例子

    完整示例代码1 /* Copyright 2008, 2010, Oracle and/or its affiliates. All rights reserved. This program is ...

  8. python 三方面库整理

    测试开发 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. selenium - web UI自动化测试. –推荐 mechanize- Python中有状 ...

  9. Python NLP完整项目实战教程(1)

    一.前言 打算写一个系列的关于自然语言处理技术的文章<Python NLP完整项目实战>,本文算是系列文章的起始篇,为了能够有效集合实际应用场景,避免为了学习而学习,考虑结合一个具体的项目 ...

随机推荐

  1. TCP中RTT的测量和RTO的计算

    https://blog.csdn.net/zhangskd/article/details/7196707 tcp传输往返时间是指:发送方发送tcp断开时, 到发送方接收到改段立即响应的所耗费的时间 ...

  2. 栈(Stack)和队列(Queue)是两种操作受限的线性表。

    (线性表:线性表是一种线性结构,它是一个含有n≥0个结点的有限序列,同一个线性表中的数据元素数据类型相同并且满足"一对一"的逻辑关系. "一对一"的逻辑关系指的 ...

  3. 压缩css与js

    使用yuicompressor 进行css和js的压缩 #! /bin/sh yasuocss="java -jar /root/yuicompressor-2.4.8.jar --type ...

  4. vue+node+mysql

    准备工作 安装node,这是必须的 新版node自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西.验证 ...

  5. python分类

    python是一种动态解释性的强类型语言. python下分几个类别,分别是cpython,jypython,ironpython,pypy等等,这些属于不同的解释器,但编写规范只有一个就是pytho ...

  6. 金九银十已到!掌握这300道java高频面试题,助你面试BAT无忧!

    前言 不知不觉已经到了九月了,回首看年初的时候简直像做梦一样.不得不说时间真的是无情一般的流逝,题外话就不多说了!回归正题,现在已经到了今年最后一波大好的跳槽涨薪的时机了,错过了这一次可能你就得等到明 ...

  7. 基于chaosblade的故障注入平台小试

    当今社会互联网应用越来越广泛,用户量日益剧增.在人们对互联网服务的依赖性增大的同时,也对服务的可用性和体验感有了更高的要求.那么如何保障服务在运营过程中能一直给用户提供稳定的.不间断的.可靠可信的服务 ...

  8. 制作视频教程,用Camtasia你也可以

    一直以来,每当我在电脑使用过程中有不会的地方,往往我就会通过百度或者b站寻找教程,尤其是视频教程来学习,这样我往往就可以快速的学会相应的操作.当朋友在qq或者微信问我们一些操作时,我们却不能向他们提供 ...

  9. css3系列之linear-gradient() repeating-linear-gradient() 和 radial-gradient() repeating-radial-gradient()

    linear-gradient()  (线性渐变) repeating-linear-gradient()   (重复的线性渐变) radial-gradient()  (镜像渐变) repeatin ...

  10. 系统提供的dispatch方法

    h1, h2, h3, h4, h5, h6, p, blockquote { margin: 0; padding: 0 } body { font-family: "Helvetica ...