日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/10 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 逻辑回归准确率是1_python数据分析(三)——逻辑回归之学生成绩预测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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()

讀了前五行,看看數據情況

三.數據預處理

看看數據是否有缺失值

df.isnull().sum()

沒有缺失值

四.描述性統計

df.describe(include='all')

看看類別變量包含的內容:

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

看看數據集結果是否平衡:

import seaborn as sns

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

五.可視化

可視化的目的是為了探索數據規律,發現數據之間的關系,比如特征與目標變量之間的相關性。

可視化可以使用seaborn和matplotlib庫進行,不過我不喜歡編程,所有比較喜歡用tableau,類別變量的可視化結果為tableau做的效果。

首先看看類別變量:

性別與得分:

國籍與得分:

班級與得分:

數值型變量:

相關性分析:

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

corr

Discussion與其他三個相關性較低,其他三個變量的相關性都比較高

以上結論從熱力圖也可以看出來:

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

六.模型建立

使用邏輯回歸模型進行預測,并計算準確率

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

七.模型優化

從可視化圖表探索發現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

可以看到準確率得到提升。

總結

以上是生活随笔為你收集整理的python 逻辑回归准确率是1_python数据分析(三)——逻辑回归之学生成绩预测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。