Py学习  »  Python

Python+sklearn使用逻辑回归算法预测期末考试能否及格

Python小屋 • 4 年前 • 567 次点击  

封面图片:Python程序设计实验指导书》,董付国编著,清华大学出版社

=================

虽然名字中带有“回归”二字,但实际上逻辑回归是一个用于分类的线性模型,通常也称作最大熵分类或对数线性分类器。在该模型中,描述单个可能输出结果的概率通过一个逻辑函数进行建模。

逻辑回归的因变量既可以是二分类的,也可以是多分类的,但是二分类更常用一些。逻辑回归常用于数据挖掘、疾病自动诊断、经济预测等领域,例如可以挖掘引发疾病的主要因素,或根据这些因素来预测发生疾病的概率。

扩展库sklearn.linear_model中的LogisticRegression类实现了逻辑回归算法,其构造方法语法如下:

__init__(self, penalty='l2', dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='liblinear', max_iter=100, multi_class='ovr', verbose=0, warm_start=False, n_jobs=1)

其中,比较常用的参数及含义如下表所示。

表  LogisticRegression类构造方法常用参数及含义

参数名称

含义

penalty

用来指定惩罚时的范数,默认为'l2',也可以为'l1',但求解器'newton-cg''sag''lbfgs'只支持'l2'

C

用来指定正则化强度的逆,必须为正实数,值越小表示正则化强度越大(这一点和支持向量机类似),默认值为1.0

solver

用来指定优化时使用的算法,该参数可用的值有'newton-cg''lbfgs''liblinear''sag''saga',默认值为'liblinear',不同求解器的区别如下:

'liblinear'使用坐标下降算法,对于小数据集是个不错的选择,而'sag''saga'对于大数据集的速度要快一些

对于多分类问题,只有'newton-cg''sag''saga''lbfgs'能够处理多项式损失,而'liblinear'局限于一对多问题(one-versus-rest schemes

'newton-cg''sag''lbfgs'只支持'l2'正则化或者没有正则化,对于某些高维数据的收敛速度也更快一些,而'liblinear''saga'也能处理'l1'惩罚

'sag'使用随机平均梯度下降算法,对于样本数量和特征数量都很大的数据集,速度比其他求解器更快一些

multi_class

取值可以为'ovr''multinomial',默认值为'ovr'。如果设置为'ovr' ,对于每个标签拟合二分类问题,否则在整个概率分布中使用多项式损失进行拟合,该参数不适用于'liblinear'求解器

n_jobs

用来指定当参数multi_class='ovr'时使用的CPU核的数量,值为-1时表示使用所有的核


LogisticRegression类对象常用方法如下表所示。

表 LogisticRegression类对象常用方法

方法

功能

fit(self, X, y, sample_weight=None)

根据给定的训练数据对模型进行拟合

predict_log_proba(self, X)

对数概率估计,返回的估计值按分类的标签进行排序

predict_proba(self, X)

概率估计,返回的估计值按分类的标签进行排序

predict(self, X)

预测X中样本所属类的标签

score(self, X, y, sample_weight=None)

返回给定测试数据和标签的平均准确率

densify(self)

把系数矩阵转换为密集数组格式

sparsify(self)

把系数矩阵转换为稀疏格式


下面的代码演示了逻辑回归算法的原理,可以调整其中的参数以便对工作原理有更深入的了解。


代码运行结果为:


代码绘制结果为:

在接下来的例子中,我们根据学生某门课程的复习时长和效率预测期末考试是否能够及格。首先构建逻辑回归模型并使用往年的调查结果数据训练模型,然后对本届学生的复习情况做出预测,并给出特定学习状态时考试及格和不及格的概率。在实际中,复习的越好通过考试的概率越大,但是由于心理素质强弱不同会对临场发挥有所影响,再加上考试题目对知识点的覆盖率也会影响最终成绩,所以复习的好也不能保证百分之百通过考试。


运行结果为:




温馨提示

关注本公众号“Python小屋”,通过菜单“最新资源”==>“历史文章”可以快速查看分专题的800篇技术文章列表(可根据关键字在页面上搜索感兴趣的文章),通过“最新资源”==>“微课专区”可以免费观看300节Python微课,通过“最新资源”==>“培训动态”可以查看近期Python培训安排,通过“最新资源”==>“教学资源”可以查看Python教学资源。


--------董付国老师Python系列图书--------

友情提示:不建议购买太多,最好先通过京东、当当、天猫查阅图书了解目录和侧重点,然后再选择购买适合自己的书。

1)《Python程序设计(第2版)》清华大学出版社,2016年8月


2)《Python可以这样学》清华大学出版社,2017年2月


3)《Python程序设计基础(第2版)》清华大学出版社,2018年1月

4)《中学生可以这样学Python》 清华大学出版社,配套微课:《中学生可以这样学Python》84节微课免费观看地址


5)《Python程序设计开发宝典》清华大学出版社,2018年10月


6)《玩转Python轻松过二级》清华大学出版社,2018年5月


7)《Python程序设计基础与应用》机械工业出版社,2018年9月


8)《Python程序设计实验指导书》清华大学出版社,2019年4月


9)《Python编程基础与案例集锦(中学版)》电子工业出版社,2019年4月

10)《大数据的Python基础》机械工业出版社,预计2019年5月出版

11)译作《Python程序设计》,机械工业出版社(华章),2018年11月出版

12)繁体版《Python也可以这样学》,台湾博硕文化股份有限公司,2017年10月出版,本书为《Python可以这样学》在台湾发行的繁体版,两本书内容一样,不建议重复购买


《中学生可以这样学Python》84节微课免费观看地址

非计算机专业《Python程序设计基础》教学参考大纲

计算机相关专业“Python程序设计”教学大纲(参考)

《Python程序设计》实验指导书(30个实验)

《Python程序设计基础与应用》课后习题答案

Python课程期末考试编程题自动批卷原理与实现模板

“Python小屋”免费资源汇总(截至2018年11月28日)

Python课堂上我与学生斗智斗勇已8个学期

技术要点|Python监控学生端电脑屏幕自动识别学习状态


课后习题答案

《Python程序设计基础(第2版)》习题答案

《Python程序设计基础与应用》课后习题答案


实验指导书

《Python程序设计》实验指导书(30个实验)

Python实验项目1例:使用进程池统计指定范围内素数的个数


教学大纲

非计算机专业《Python程序设计基础》教学参考大纲

计算机相关专业“Python程序设计”教学大纲(参考)


课件

1900页Python系列PPT分享一:基础知识(106页)

1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)

1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

1900页Python系列PPT分享四:字符串与正则表达式(109页)

1900页Python系列PPT分享五:函数设计与应用(134页)

1900页Python系列PPT分享六:面向对象程序设计(86页)

1900页Python系列PPT分享七:文件操作(132页)

1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)

2000页Python系列PPT分享九:(GUI编程)(122页)


报告PPT

报告PPT(163页):基于Python语言的课程群建设探讨与实践

报告PPT(123页):Python编程基础精要

(PPT)Python程序设计课程教学内容组织与教学方法实践



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/33314
 
567 次点击