当前位置:   article > 正文

机器学习笔记(二):回归分析_通过分析不同的因素对研究生录取的影响来预测一个人是否会被录取。其中自变量入学

通过分析不同的因素对研究生录取的影响来预测一个人是否会被录取。其中自变量入学

线性模型

1、基本形式

给定由 d个属性描述的示例 x= (x1; x2;…;xd ) 其中均是 在第 i个属性上的取值,线性模型(linear model) 试图学得一个通过属性的线性组合来进行预测的函数,即
在这里插入图片描述
一般用向量形式写成
在这里插入图片描述
其中 ω=(ω12;…;ωd) ω 和 d 学得之后,模型就得以确定。

线性模型形式简单、易于建模,但却蕴涵着机器学习中一些重要的基本思想.许多功能更为强大的非线性模型
(nonlinear model) 可在线性模型的基础上通过引入层级结构或高维映射而得.此外,由于 直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释’性 (comprehensibility) .

形式简单,易于建模
蕴含机器学习的基本思想
是其他非线性模型的基础
权重体现出各属性重要性,可解释性强

2、线性回归

在这里插入图片描述
均方误差是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化
在这里插入图片描述
在线性回归中,最小乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小.

sklearn.linear_model中的LinearRegression可实现线性回归
LinearRegression 的构造方法:

LinearRegression(
fit_intercept=True, #默认值为 True,表示 计算随机变量,False 表示不计算随机变量  
normalize=False, #默认值为 False,表示在回归前是否对回归因子X进行归一化True 表示,
copy_X=True
)
  • 1
  • 2
  • 3
  • 4
  • 5

LinearRegression 的常用方法有:

decision_function(X) #返回 X 的预测值 y
fit(X,y[,n_jobs]) #拟合模型
get_params([deep]) #获取 LinearRegression 构造方法的参数信息
predict(X) #求预测值 #同 decision_function

3、回归练习

使用Python实现下面输入与输出的线性回归

输入:[[0, 0], [1, 1], [2, 2]]——两个输入
输出:[0, 1, 2]
预测:[3, 3]

from sklearn.linear_model import LinearRegression
clf = LinearRegression()
clf.fit([[0,0],[1,1],[2,2]],[0,1,2])  #模型训练
pre = clf.predict([[3,3]])  #模型预处
clf.coef_
clf.intercept_
print(pre)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

4、利用波士顿房价数据构造一个线性回归模型,其中房间数为自变量,房价为目标变量,并求出回归系数。

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
bosten = load_boston()   #实例化
x = bosten.data[:,5:6]
clf = LinearRegression()
clf.fit(x,bosten.target)   #模型训练
clf.coef_   #回归系数
y_pre = clf.predict(x) #模型输出值
plt.scatter(x,bosten.target) #样本实际分布
plt.plot(x,y_pre,color='red' )   #绘制拟合曲线
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

5、逻辑回归

分类和回归二者不存在不可逾越的鸿沟。就波士顿房价预测作为例子:如果将房价按高低分为“高级”、“中级”和“普通”三个档次,那么这个预测问题也属于分类问题。
准确地说,逻辑回归(Logistic Regression)是对数几率回归,属于广义线性模型(GLM),它的因变量一般只有0或1。
需要明确一件事情:线性回归并没有对数据的分布进行任何假设,而逻辑回归隐含了一个基本假设 :每个样本均独立服从于伯努利分布(0-1分布)。
伯努利分布属于指数分布族,这个大家庭还包括:高斯(正态)分布、多项式分布、泊松分布、伽马分布、Dirichlet分布等。

6、例子:通过分析不同的因素对研究生录取的影响来预测一个人是否会被录取。

数据的格式如下:

在这里插入图片描述

  • admit :表示是否被录取(目标变量)
  • gre:标准入学考试成绩,预测变量
  • gpa:学业平均绩点,预测变量
  • rank:母校排名(预测变量)
数据集划分

sklearn. model_selection随机划分训练集和测试集

  • train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取train data和testdata,形式为:
    X_train,X_test,y_train,y_test=cross_validation.train_test_split(train_data,train_target,test_size=0.4,random_state=0)
train_test_split参数解释:
  • train_data:所要划分的样本特征集
  • train_target:所要划分的样本结果
  • test_size:样本占比,如果是整数的话就是样本的数量
  • random_state:是随机数的种子。
  • 随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。
  • 随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:
  • 种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。
算法实现

在入门时建议首先掌握scikit-learn中的逻辑回归实现算法。

import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
# 导入数据并观察
data = pd.read_csv('LogisticRegression.csv')
print(data.tail(5))    # 查看数据框的最后五行
X_train,X_test,y_train,y_test = train_test_split(data.iloc[:, 1:],data.iloc[:,0],test_size=.1,random_state=5)
lr = LogisticRegression()    # 建立LR模型
lr.fit(X_train,y_train)    # 用处理好的数据训练模型
print('逻辑回归的准确率为:{0:.2f}%'.format(lr.score(X_test, y_test)*100))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

7、研究生入学考试录取预测,构建一个逻辑回归模型对学生是否会被录取为研究生进行预测,并对构建出的模型进行简单评价

import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report  #导入分类报告
data = pd.read_csv('LogisticRegression.csv')
data_tr,data_te,label_tr,label_te= train_test_split(data.iloc[:,1:],data['admit'],test_size=0.2) #所有样本的自变量,所有样本的因变量,test_size测试样本20个
clf = LogisticRegression()
clf.fit(data_tr,label_tr) #拟合训练
pre = clf.predict(data_te)   #测试样本
res = classification_report(label_te,pre)
print(res)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述
笔记来源:泰迪云课堂的python机器学习实战

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/109390
推荐阅读
相关标签
  

闽ICP备14008679号