文档章节

机器学习--第四讲-评估二元分类的简介

Betty__
 Betty__
发布于 2016/10/26 17:16
字数 837
阅读 136
收藏 0

1.数据的介绍

在之前的任务中,我们学习了有关分类,逻辑回归,并且学习对于研究生入学申请的数据,来怎么使用scikit-learn 来拟合一个逻辑回归模型。我们将持续使用这个包含644 个申请人的数据集合,它有以下几列:

gre---申请人研究生入学申请考试成绩,即对于准备读研究生的一种考试

          分数在200-800之间

gpa---大学平均分

          0.0-4.0之间的连续数

admit--二元值

          二元值,0或1,1代表申请人被录取了,0代表申请人被拒绝。

下面是数据集的缩略版:

admit gpa gre
0 3.177277 594.102992
0 3.614655 631.528607
0 2.728097 533.714399
0 3.093559 551.089985
0 3.141923 537.184894

 

开始吧,让我们使用上个任务中的逻辑回归模型来拟合数据中每个人的分类标签,然后将这些全部加入到数据框架的分好的列中。

对于数据中显示的值使用逻辑回归中的predict方法来返回标签。把返回的结果列表赋值给labels

给admissions数据框架添加新的一列命名为predicted_label,它用来存储labels的值

使用Series里的value_counts方法和print函数来显示label列值的分布。

使用dataframe框架中的head方法和print函数来显示admissions前五行.

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.linear_model import LogisticRegression

admissions = pd.read_csv("admissions.csv")

model = LogisticRegression()
model.fit(admissions[["gpa"]], admissions["admit"])
labels = model.predict(admissions[["gpa"]])
admissions["predicted_label"] = labels
print(admissions["predicted_label"].value_counts())
print(admissions.head())

 

2.精确性

在admissions数据框架中包含了,predicted_label列,它是预测值;和admit列,它是实际值。这种格式可以让我们轻而易举的找到训练数据中模型有效性的程度。确定分类模型有效性最简单的方法就是:预测精度。精度帮助我们回答以下问题:

     哪些是正确被预测的部分(实际标签匹配预测标签)?、

预测标签正确的数量除以总的预测量,归结为预测精度。

精度=预测正确量/ 总预测量

在逻辑回归中,重新调用输出概率值是介于0,1之间的模型。为了决定谁被录取,我们设置了一个阈值,接受所有通过计算后超过阈值的学生。这个阈值被称作鉴别灵敏度。当预测标签时,scikit-learn默认设置阈值为0.5,如果预测概率超过0.5,标签被归为1;如果预测值小于0.5,标签被归为0

精度为1.0代表鉴别灵敏度预测模型值百分百正确。精度0.2代表模型预测学生被录取,预测正确的概率是20%

练习

   把admissions数据框架中admit列名改为actual_label.让我们可以更易同预测标签(predicted_label)做对比。

   将predicted_label 、actual_label两列做对比。

         使用双等号(==)来比较两个series对象,并将结果赋值给matches

   使用过滤条件将admissions里matches列里True的值挑选出来,并赋值给数据框架中的correct_predictions

          显示correct_predictions的前5行。确保predicted_label和actual_label两列值相等。

    计算精度,并将浮点数结果赋值给accuracy

         使用print函数显示accuracy 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

本文转载自:dataquest.io

Betty__
粉丝 7
博文 360
码字总数 46678
作品 0
武汉
私信 提问
文本分类又来了,用 Scikit-Learn 解决多类文本分类问题

雷锋网按:本文为雷锋字幕组编译的技术博客,原标题 Multi-Class Text Classification with Scikit-Learn,作者为 Susan Li 。 翻译 | 朱茵 整理 | 余杭 MY 在商业领域有很多文本分类的应用,...

雷锋字幕组
2018/07/25
0
0
ML.NET教程之情感分析(二元分类问题)

机器学习的工作流程分为以下几个步骤: 理解问题 准备数据 加载数据 提取特征 构建与训练 训练模型 评估模型 运行 使用模型 理解问题 本教程需要解决的问题是根据网站内评论的意见采取合适的...

Ken.W
2018/12/09
0
0
Python数据处理从零开始----第四章(可视化)(11)多分类ROC曲线

目录 Python数据处理从零开始----第四章(可视化)① Python数据处理从零开始----第四章(可视化)② Python数据处理从零开始----第四章(可视化)③ Python数据处理从零开始----第四章(可视...

夜神moon
2018/11/25
0
0
5 - 训练与测试(重新理解机器学习的可靠性)

回顾与预览 基于统计的学习流程: --- 如果备选函数集的大小|H|=M,M有限,训练数据量N足够大,则对于学习算法A选择的任意备选函数h,都有 E-out(h)≈E-in(h) --- 如果A找到了一个备选函数,...

Lee的白板报
2014/03/27
0
0
【ML系列】简单的二元分类——Logistic回归

对于了解机器学习中二元分类问题的来源与分析,我认为王树义老师这篇文章讲的非常好,通俗且易懂: http://blog.sciencenet.cn/blog-377709-1121098.html 但王树义老师的这篇文章并未详细的展...

JinyuBlog
2018/09/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Feign输出Info级别日志

背景   spring cloud netfix组件中,feign相关的日志默认是不会输出的,需要自定义配置才能输出,并且Feign只对Debug基本的日志做出响应, 实际业务需要输出Info级别的日志,所以需要做自定...

xiaomin0322
15分钟前
3
0
面向解决问题的java编程,spring boot,mybatis generator和坑-1starter

1、start一个spring boot项目 第一课我们也不能免俗,要从starter开始,spring boot的起始项目脚手架可以从spring boot官方starter生成地址开始:https://start.spring.io/ 这张图列出了一个...

wphmoon
15分钟前
1
0
Linux虚拟化技术—CentOS7.4下KVM虚拟化一 安装配置及基本操作

Linux虚拟化技术—CentOS7.4下KVM虚拟化一 安装配置及基本操作 0行云流水00人评论61017人阅读2018-04-11 19:57:20 KVM的安装配置与基本操作 目录 第一部分 实验环境 第二部分 安装图形界面 ...

linjin200
18分钟前
1
0
php获取网站favicon.ico图标 api源码

 通常情况下,做网站的都会给自己的网站添加一个Icon,浏览器上一长排的标签页,用Icon来区分就显得更加醒目。现在想找一个没有Icon的网站并不好找,可见没有Icon的网站是多么的业余啊。"什...

xiaogg
21分钟前
1
0
双亲委派的认识

首先JVM中有三种类加载器 Bootstrap启动类加载器 Extension扩展类加载器(ExtClassLoader) System系统类加载器(AppClassLoader) 某个特定的类接到加载类的请求时候,首先将加载任务委托给...

最胖的瘦子
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部