python 逻辑回归准确率是1_python数据分析(三)——逻辑回归之学生成绩预测

0cf2cd634cd7e370132ce22efd87da24.png

Python数据分析项目

——学生成绩预测

一.数据源

阿里云天池公开数据集:学生成绩预测数据集

https://tianchi.aliyun.com/dataset/dataDetail?dataId=6785

特征(Features)介绍:

  • Gender: 性别
  • Nationality: 国籍
  • PlaceofBirth:出生地
  • StageID:学校级别(小学,中学,高中)
  • GradeID:年级 (G01 - G12)
  • SectionID: 班级
  • Topic:学科科目
  • Semester: 学期 (春学期,秋学期)
  • Relation: 孩子家庭教育负责人(父亲,母亲)
  • RaisedHands: 学生该学期上课举手的次数
  • VisitedResources: 学生浏览在线课件的次数
  • AnnoucementsView: 学生浏览学校公告的次数
  • Discussion: 学生参与课堂讨论的次数
  • ParentAnsweringSurvey: 家长是否填写了关于学校的问卷调查 (是,否)
  • ParentSchoolSatisfaction: 家长对于学校的满意度 (好,不好)
  • StudentAbsenceDays: 学生缺勤天数 (大于7天,低于7天)

结果(Response Variable)介绍:

  • Class: 根据学生最后的学术评测分数,学生会被分为3个等级
  • Low-Level: 分数区间在0-60
  • Middle-Level:分数区间在70-89
  • High-Level:分数区间在90-100

二.数据预览

import pandas as pd

df=pd.read_csv('datalab/6785/students_data.csv')

df.head()

读了前五行,看看数据情况

2133ccefc0202194580c42b5f944f320.png

三.数据预处理

看看数据是否有缺失值

df.isnull().sum()

2d4f0140ec2cec30b4f7601a52c0fa33.png

没有缺失值

四.描述性统计

df.describe(include='all')

daf6b1014e728f1f108f657ac8eac2d4.png

看看类别变量包含的内容:

print('gender',df.gender.unique())

1c0f8741a5c0433db115684d1ca7fc13.png

看看数据集结果是否平衡:

import seaborn as sns

sns.countplot(x='Class',data=df)

0ed775505801f91a918e9e046c44dc7e.png

五.可视化

可视化的目的是为了探索数据规律,发现数据之间的关系,比如特征与目标变量之间的相关性。

可视化可以使用seaborn和matplotlib库进行,不过我不喜欢编程,所有比较喜欢用tableau,类别变量的可视化结果为tableau做的效果。

首先看看类别变量:

性别与得分:

7cd2dd92899f61719cd512d9ee974b28.png

国籍与得分:

c98003e2e5cfb0d2c53b8d0cc9b00d71.png

班级与得分:

1aa9f7e646cfaf91bde857e336a996c2.png

数值型变量:

相关性分析:

corr=df[['raisedhands','VisITedResources','AnnouncementsView','Discussion']].corr()

corr

4a85450624ef1dcf4791d0b4da1363ae.png

Discussion与其他三个相关性较低,其他三个变量的相关性都比较高

以上结论从热力图也可以看出来:

sns.heatmap(corr, xticklabels=corr.columns,yticklabels=corr.columns)

dafdc948afd3b130944568405c5d33c6.png

六.模型建立

使用逻辑回归模型进行预测,并计算准确率

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LogisticRegression

from sklearn.metrics import accuracy_score

#建立特征和目标变量

x=df.drop('Class',axis=1)

x= pd.get_dummies(x)#对类别变量进行one-hot编码,即建立虚拟变量

y=df['Class']

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size = 0.2,random_state = 10)#建立训练集和测试集

#模型训练

logit=LogisticRegression()

logit.fit(x_train,y_train)

#预测

predict=logit.predict(x_test)

print('predict',predict)

#准确率评分

Score = accuracy_score(y_test, predict)

Score

0d1a2a210fe9cfe9976431dc3520fe8c.png

七.模型优化

从可视化图表探索发现SectionID与Class关系不大,所以尝试剔除再进行建模:

x=df.drop(['Class','SectionID'],axis=1)

x= pd.get_dummies(x)

y=df['Class']

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size = 0.2,random_state = 10)

logit=LogisticRegression()

logit.fit(x_train,y_train)

predict=logit.predict(x_test)

print('predict',predict)

Score = accuracy_score(y_test, predict)

Score

5d3af2f09615c9be5b6cd78dfb0576b5.png

可以看到准确率得到提升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

向量数量积公式_多法 | 向量数量积相关最值问题的常见处理方法

近日QQ群更新的部分内容如下高中11大类86个易错点全梳理(185页Word)恒成立涉及10大类40小类题型梳理(100页Word)高中数学10大专题100个考点配例题全梳理2020高考真题分类汇编理科(14讲Word)2019年江苏高考数学题根系列(50份Word)2020届江苏高三上期中期末分类汇编(12讲Word)202…

kettle增加字段报错_【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中

每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。放弃不难,但坚持很酷~最近有一个将 mysql 数据导入到 MongoDB 中的需求,打算使用 Kettle 工具实现。本文章记录了数据导入从 0 到 1 的过程,最终实现了每秒钟快速导入约 …

coreldraw错误代码14001_CorelDRAW文件损坏的几种解决方法

以前做好的CorelDRAW文件突然打不开了,或者是死机、非法操作等原因造成CorelDRAW文件损坏,有时打开源文件发现一片空白,源文件保存损坏无法打开怎么办?此时不要着急,你可以试试以下几种办法帮你解决问题!解决方法一、…

垂直梯形校正画质损失多少_投影小常识 梯形矫正竟会影响清晰度

我们在日常使用投影机时,经常会用到梯形矫正这个功能,梯形矫正确实在我们的日常使用中可以起到很好的效果,当环境因素不允许我们去将投影机本身摆正的时候,梯形矫正往往可让我们得到方正的画面,但是梯形矫正也是存在一…

增量同步_使用Kettle工具进行增量数据同步

增量同步的方式有很多种,我使用的是: 快照表 触发器需求:当主库库表发生增删改时,从库库表与主库库表数据保持一致。环境:1、Mysql2、kettle 7.1思路:1、在主库中,将需要同步的库表新建快照表,…

python架构图教程_Python 五分钟绘制漂亮的系统架构图

Diagrams 是一个基于Python绘制云系统架构的模块,它能够通过非常简单的描述就能可视化架构,并支持以下6个云产品的图标:AWS、Azure、GCP、K8s、阿里云 和 Oracle 云基于Diagrams提供的节点,你只需要指定一个云产品(实际上选哪个都…

python可视窗口_Python数据可视

1.显现用到的包Pyecharts 是一个用于生成 Echarts 图表的类库。常规的Echarts 是由百度开源的一个数据可视化 JS 库,主要用于数据可视化。简单来说,Pyecharts是一款将python与echarts结合的强大的数据可视化工具。使用 Pyecharts 可以生成独立的网页&…

用极大似然法估计因子载荷矩阵_[转载]第三十六课         因子分析

第三十六课因子分析因子分析(FactorAnalysis)是主成分分析的推广,它也是从研究相关矩阵内部的依赖关系出发,把一些具有错综复杂关系的变量归结为少数几个综合因子的一种多变量统计分析方法。具体地说,就是要找出某个问题中可直接测量的、具有…

mysql in优化_MySQL的一次优化记录 (IN子查询和索引优化)

这两天实习项目遇到一个网页加载巨慢的问题(10多秒),然后定位到是一个MySQL查询特别慢的语句引起的:SELECT *FROM (SELECT DISTINCT t.vc_date, t.c_bankno, t.vc_bankacco, t.vc_moneytype, t.en_totalbala, t.en_usablebala, t1.vc_nameinbank, date_f…

创建mysql的表怎么显示00_Mysql sql_mode设置 timestamp default 0000-00-00 00:00:00 创建表失败处理...

往数据库里创建新表的时候报错:[Err] 1067 - Invalid default value for updateTimeDROP TABLE IF EXISTS passwd_reset;CREATE TABLE passwd_reset (id int(11) NOT NULL AUTO_INCREMENT,staffId int(11) DEFAULT NULL,toEmail varchar(50) DEFAULT NULL,token var…

mysql sqlite转换_数据库转换工具(SqliteToMysql)

SqliteToMysql是一款用于SQLITE和MYSQL之间的数据库转换工具。它能够将SQLITE数据转换成MYSQL数据库,让用户自主配置转换条件,满足用户的数据库格式需要。。相关软件软件大小版本说明下载地址SqliteToMysql是一款用于SQLITE和MYSQL之间的数据库转换工具。…

mysql 查看集群状态_MySQL数据库集群正确配置步骤

类型:电子教程大小:8.5M语言:中文 评分:8.3标签:立即下载对MySQL数据库集群进行正确配置的实际操作步骤,以及对其概念的讲述,如果你对其相关的实际操作有兴趣了解的话,以下的文章将会…

oschina mysql limit_MySQL 用 limit 为什么会影响性能?

点击上方“武培轩”,选择“设为星标”技术文章第一时间送达!一,前言首先说明一下MySQL的版本:mysql> select version();-----------| version() |-----------| 5.7.17 |-----------1 row in set (0.00 sec)表结构:m…

mysql外键教程_关于MySQL外键的简单学习教程

在MySQL中,InnoDB引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);2.外键列必须建立了索引,MySQL 4.1.2以后的版…

mybatis mysql 分页sql语句_MySql实现分页查询的SQL,mysql实现分页查询的sql语句(转)...

http://blog.csdn.net/sxdtzhaoxinguo/article/details/51481430摘要:MySQL数据库实现分页查询的SQL语句写法!一:分页需求:客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据&#…

mysql索引详细介绍简书_Mysql索引介绍

数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据&a…

在mysql中建立聚簇索引_给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引...

推荐阅读:吊打面试官!MySQL灵魂100问,你能答出多少?MySQL的InnoDB索引数据结构是B树,主键索引叶子节点的值存储的就是MySQL的数据行,普通索引的叶子节点的值存储的是主键值,这是了解聚簇索引和非…

根据从日期控件选定的时间以表格形式显示数据_VB项目开发FlexGrid控件使用讲解...

FlexGrid控件使用介绍大家好,在VB开发管理系统中,FlexGrid控件使用是非常普遍的。用FlexGrid ActiveX控件可以在 Visual Basic的窗体中创建一个电子数据表格,也可称之为网格。FlexGrid ActiveX控件可以在网格中显示任何类型的表格式数据&…

arduino无源蜂鸣器歌曲编码_Arduino加无源蜂鸣器,播放音乐《葫芦娃》

Arduino加无源蜂鸣器,播放音乐《葫芦娃》#define NOTE_D0 -1#define NOTE_D1 294#define NOTE_D2 330#define NOTE_D3 350#define NOTE_D4 393#define NOTE_D5 441#define NOTE_D6 495#define NOTE_D7 556#define NOTE_DL1 147#define NOTE_DL2 165#define NOTE_DL3…

mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决

本文主要向大家介绍了线上MySQL数据库机器内存爆掉原因分析与解决,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。现象:阿里金融某业务的MySQL机器的内存每隔几天就会增长,涨上去后,却不下来。累积后内…