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. tp3.2 php sdk上传七牛云

    //获取上传token Vendor('sdk.autoload'); $accessKey='********'; $secretKey='*******'; $auth=new \Qiniu\Au ...

  2. python_super()及继承顺序

    class A(object): def func(self): print('A') class B(A): def func(self): super().func() print('B') cl ...

  3. nginx优化【收藏篇】

    1. 动态页返回码 2. 错误页面优化 3. 连接数优化 4.配置优化 5.日志优化 关于运维学习.分享.交流,笔者开通了微信公众号[大隆爱分享],感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的 ...

  4. tcp ESTABLISHED 接收数据

    tcp_rcv_established函数的工作原理是把数据包的处理分为2类:fast path和slow path,其含义显而易见.这样分类的目的当然是加快数据包的处理,因为在正常情况下,数据包是按 ...

  5. 315. Count of Smaller Numbers After Self(二分或者算法导论中的归并求逆序数对)

    You are given an integer array nums and you have to return a new counts array. The counts array has ...

  6. 压缩css与js

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

  7. 查看 /var/log目录下文件个数 命令tree 、cut

    查看 /var/log目录下文件个数 方法1. [root@oldboy learn_shell]# tree -L 1 /var/log/ |tail -1 5 directories, 42 fi ...

  8. Java 微信端评论表情处理

    1,工具包下载:https://github.com/vdurmont/emoji-java 2,文本保存时处理:EmojiParser.parseToHtmlHexadecimal(str) 3,文 ...

  9. Spark闭包 | driver & executor程序代码执行

    Spark中的闭包 闭包的作用可以理解为:函数可以访问函数外部定义的变量,但是函数内部对该变量进行的修改,在函数外是不可见的,即对函数外源变量不会产生影响. 其实,在学习Spark时,一个比较难理解的 ...

  10. Linux标准输入、标准输出、错误输出

    Linux中的输入文件.输出文件.错误输出 文件名称 文件描述符 标准输入 0 (默认是键盘) 标准输出 1 (默认是屏幕) 标准错误 2 (默认是屏幕) 输出重定向 Linux中&表示后台运 ...