1.分类
上节课我们学习到,机器学习的最基本目标是理解自变量和因变量之间的关系。具体地说,我们感兴趣于潜在的数学公式,它用汽车的特性来形成一些标签。在监督式机器学习中,我们使用训练数据集,他包含接近这个函数的每一行标签。
在之前的任务中,我们探索了监督式机器学习技术中的线性回归。当我们尝试预测目标列:因变量,是有序且连续的,那么这个线性回归就是很好的。如果目标列被离散的数据取代,那么这个线性回归拟合的并不好。
在这个任务中,我们会探索对于以下几种类型的问题怎样建立预测模型,哪些是众所周知的分类问题。在分类中,我们的目标列是一个有限的集合,它可能存在的值代表着一行数据中不同类型值属于什么类别。我们使用许多整数型来代表各种不同的类别,使得我们可以继续使用数据公式来描述自变量到因变量之间的映射关系。这里有一些关于分类问题的例子:
问题 | 示例的特征 | 类型 | 种类 | 数字种类 |
我们应该根据这个学生的研究生申请表来决定是否录取吗? | 大学GPA,SAT分数,推荐信的质量 | 双向的 | 不录取,录取 | 0.1 |
一对父母的后代最有可能的血型是? | 母亲的血型,父亲的血型 | 多重 | A,B,AB,O | 1,2,3,4 |
从现在开始,我们将专注于二元分类,即仅有两个值作为选择:
0 错误的结果
1 正确的结果
当我们开始钻研分类之前,先对于我们将要研究的数据做一个了解。
2、数据的介绍
每年高中生、大学生会申请各种大学和项目。每个学生有唯一的 考试分数、年级、身份背景 资料。通过某种方式,录取委员会必须决定哪个申请人从他们的项目中被录取或被拒绝。在这个案例中,录取和拒绝申请人的决定可以通过二元分类算法来解决。为了抓住分类概念的精髓,我们尝试预测是否申请人将会被美国的大学录取为研究生。
我们将会研究一个包含644 个申请人的数据集,它有如下一些列:
gre--申请人在研究生入学考试的分数,对于准研究生的一个普遍的测试。
分数范围是200-800
gpa--大学的平均分
介于0.0-4.0之间的连续分数
admit---二元值
二元值,0或1,1代表申请人被录取,0代表申请人被拒绝。
下面是数据集的缩略版
录取 | gpa | gre |
o | 3.177277 | 594.102992 |
0 | 3.412655 | 631.528607 |
0 | 2.728097 | 553.714399 |
0 | 3.093559 | 551.089985 |
0 | 3.141923 | 537.184894 |
我们会使用gpa、gre两列的值来预测admit列的情况,我们将仅仅聚焦于gpa列使问题变得简单。让我们通过Pandas 来读取数据,将gpa、admit之间的关系视图化。
练习:
读取admissions.csv文件,并赋值给admissions.
使用Matplotlib方法的scatter来形成一个散点图:
X轴是gpa列
Y轴是admit列
使用plt.show() 来显示散点图。
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
admissions = pd.read_csv("admissions.csv")
plt.scatter(admissions['gpa'], admissions['admit'])
plt.show()
3.逻辑回归
在之前的散点图中,你注意到,在gpa,admit这两列之间并没有一个很清晰的线性关系。重新调用admit列,这个包含0,1的值,代表二元值,但是元素本身并没有数学含义。当数字用来代表不同的选择和类别时,他们被成为分类值。分类是聚焦于自变量和因变量之间关系的方法,分类变量。
在这个任务中,我们会专注于被称为 逻辑回归的分类计数。当线性回归模型输出一个真实的数字作为标签,一个逻辑回归模型就会输出一个概率值。在二元分类问题中,如果概率值比既定的阈值概率大,我们将会给这行标签赋值为1或0.
这个阈值概率是我们选择的,对于上个任务我们将会学习怎样选择一个好的阈值概率。从现在开始,让我们开始深入研究逻辑回归吧。