閱讀595 返回首頁    go 人物


學生考試成績預測__案例_機器學習-阿裏雲

(本文數據為實驗用例)

一、背景

母親是老師反而會對孩子的學習成績造成不利影響?能上網的家庭,孩子通常能取得較好的成績?影響孩子成績的最大因素居然是母親的學曆?本文通過機器挖掘算法和中學真實的學生數據為您揭秘影響中學生學業的關鍵因素有哪些。

本文的數據采集於某中學在校生的家庭背景數據以及在校行為數據。通過邏輯回歸算法生成離線模型和學業指標評估報告,並且可以對學生的期末成績進行預測。同時,生成在線預測API,可以通過API把訓練好的離線模型應用到在線的業務場景中。

二、數據集介紹

數據集由25個特征和一個打標數據構成,

具體字段如下:

字段名 含義 類型 描述
sex 性別 string F是女,M表示男
address 住址 string U表示城市,R表示鄉村
famsize 家庭成員數 string LE3表示少於三人,GT3多於三人
pstatus 是否與父母住在一起 string T住在一起,A分開
medu 母親的文化水平 string 從0~4逐步增高
fedu 父親的文化水平 string 從0~4逐步增高
mjob 母親的工作 string 分為教師相關、健康相關、服務業
fjob 父親的工作 string 分為教師相關、健康相關、服務業
guardian 學生的監管人 string mother,father or other
traveltime 從家到學校需要的時間 double 以分鍾為單位
studytime 每周學習時間 double 以小時為單位
failures 掛科數 double 掛科次數
schoolsup 是否有額外的學習輔助 string yes or no
fumsup 是否有家教 string yes or no
paid 是否有相關考試學科的輔助 string yes or no
activities 是否有課外興趣班 string yes or no
higher 是否有向上求學意願 string yes or no
internet 家裏是否聯網 string yes or no
famrel 家庭關係 double 從1~5表示關係從差到好
freetime 課餘時間量 double 從1~5從少到多
goout 跟朋友出去玩的頻率 double 從1~5從少到多
dalc 日飲酒量 double 從1~5從少到多
walc 周飲酒量 double 從1~5從少到多
health 健康狀況 double 從1~5從狀態差到好
absences 出勤量 double 0到93次
g3 期末成績 double 20分製

數據截圖:

三、離線訓練

首先,實驗流程圖:

數據自上到下流入,先後經曆了數據數據預處理、拆分、訓練、預測與評估。

1.SQL腳本-數據預處理

  1. select (case sex when 'F' then 1 else 0 end) as sex,
  2. (case address when 'U' then 1 else 0 end) as address,
  3. (case famsize when 'LE3' then 1 else 0 end) as famsize,
  4. (case Pstatus when 'T' then 1 else 0 end) as Pstatus,
  5. Medu,
  6. Fedu,
  7. (case Mjob when 'teacher' then 1 else 0 end) as Mjob,
  8. (case Fjob when 'teacher' then 1 else 0 end) as Fjob,
  9. (case guardian when 'mother' then 0 when 'father' then 1 else 2 end) as guardian,
  10. traveltime,
  11. studytime,
  12. failures,
  13. (case schoolsup when 'yes' then 1 else 0 end) as schoolsup,
  14. (case fumsup when 'yes' then 1 else 0 end) as fumsup,
  15. (case paid when 'yes' then 1 else 0 end) as paid,
  16. (case activities when 'yes' then 1 else 0 end) as activities,
  17. (case higher when 'yes' then 1 else 0 end) as higher,
  18. (case internet when 'yes' then 1 else 0 end) as internet,
  19. famrel,
  20. freetime,
  21. goout,
  22. Dalc,
  23. Walc,
  24. health,
  25. absences,
  26. (case when G3>14 then 1 else 0 end) as finalScore
  27. from ${t1};

這裏SQL腳本主要處理的邏輯是將文本數據結構化。比如說源數據分別有yes和no的情況,我們可以通過0表示yes,1表示no將文本數據量化。一些多種類的文本型字段,比如說Mjob,我們可以結合業務場景來抽象,比如說如果工作是teacher就表示為1,不是teacher表示為0,抽象後這個特征的意義就是表示工作是否與教育相關。對於目標列,我們按照大於18分設為1,其它為0,擬在通過訓練,找出可以預測分數的模型。

2.歸一化

去量綱,將所有的字段都轉換成0~1之間,去除字段間大小不均衡帶來的影響。結果圖:

3.拆分

將數據集按照8:2拆分,百分之八十用來訓練模型,剩下的用來預測。

4.邏輯回歸

通過邏輯回歸算法訓練生成離線模型。具體算法詳情可以https://en.wikipedia.org/wiki/Logistic_regression

5.結果分析和評估

通過混淆矩陣可以查看模型預測的準確率。

可以看到預測準確率為82.911%。根據邏輯回歸算法的特性,我們可以通過模型係數挖掘出一些比較有意思的信息,首先查看模型:

根據邏輯回歸算法的算法特性,權重越大表示特征對於結果的影響越大,權重是正數表示對結果1(期末高分)正相關,權重負數表示負相關。於是我們可以挑選幾個權重較大的特征進行分析。

字段名 含義 權重 分析
mjob 母親的工作 -0.7998341777833717 母親是老師對於孩子考高分是不利的
fjob 父親工作 1.422595764037065 如果父親是老師,對於孩子取得好的成績是非常有利的
internet 家裏是否聯網 1.070938672974736 家裏聯網不但不會影響成績,還會促進孩子的學習
medu 母親的文化水平 2.196219307541352 母親的文化水平高低對於孩子的影響是最大的,母親文化越高孩子學習越好。

以上結論隻是從實驗的很小的數據集得到的結論,僅供參考。

四、在線預測部署

生成離線模型之後,可以將離線模型部署到線上,通過調用restful-api來進行在線預測。

1.部署

右鍵模型-》在線部署模型-》選擇cpu、memory-》部署完成

部署成功後顯示

之後在API調試頁即可通過填寫body信息調用API,並拿到預測結果。

四、其它

參與討論:雲棲社區公眾號

免費體驗:阿裏雲數加機器學習平台

聯係我們: aohai.lb@alibaba-inc.com

往期文章:

【玩轉數據係列一】人口普查統計案例

【玩轉數據係列二】機器學習應用沒那麼難,這次教你玩心髒病預測

【玩轉數據係列三】利用圖算法實現金融行業風控

【玩轉數據係列四】聽說啤酒和尿布很配?本期教你用協同過濾做推薦

【玩轉數據係列五】農業貸款發放預測

【玩轉數據係列六】文本分析算法實現新聞自動分類

最後更新:2016-09-02 10:57:43

  上一篇:go 人口普查統計案例__案例_機器學習-阿裏雲
  下一篇:go 在線預測功能介紹___機器學習-阿裏雲