1 摘要

目前多數推薦系統主要都是根據使用者的興趣去做推薦,但針對教育方面的議題,學生選課時本身就已經是跟著自身興趣、學長姐推薦、受歡迎的老師來做選擇,如果學生想要讓自己在本科系上的核心知識有所進步,就不能一直跟著這些考量去做選課。在這篇論文中我使用臺北大學100學屆到103學屆進來的同學,並截至106年的所有修課資料,先做資料觀察與分析,爾後利用分析後的結果進行特徵萃取與建造。接著模型部分以經濟學系學生為例,以提升學生在本科系上的必修科目的成績排名為目的,根據過去的成績表現、修過的專業必修、專業選修,以及當學期想要選擇的課程、學分數,利用非線性模型來進行權重收斂設置,來預測學生在學期末的專業必修排名,並推薦適當的專業選修課程。

該系統僅需學生提供學號,以及想優先排入的課程(必修、體育、通識、選修),和想加入幾門專業選修的數目,就能推薦能夠讓學生在學期末時專業必修排名正向提升最多的專業選修修課組合,讓學生在選科時除了自身的一些興趣、同儕、老師考量,也能有增進本科系上專業知識的修課可能,減低學生選課的成本。

2 緒論

2.1 研究動機

過往的推薦系統,大多是根據使用者過往點擊過、使用過的紀錄,去做相關的推薦,比方說有課程(產品)與使用者之前修過的某課程屬性相同,它就會推薦給使用者;或是找到與使用者有相同屬性的其它使用者,其它使用者喜歡怎麼樣的課程,也會相對應認為該使用者同樣的課程,而做出推薦,像是近幾年較熱門的推薦系統-協同式過濾推薦系統,即是採用兩種面向的結合,使用者的屬性、課程的屬性,去協同猜測使用者喜歡的東西,進而做出推薦的功能。

這其實面臨到一項問題,該使用者被推薦的課程會被侷限在同一個同溫層裡,在某些領域來說,這不一定會是一件好事,像是本論文的討論-“課程推薦“,當一位成績較差的同學,以相同屬性的學生、課程去做推薦,就會一直在低層成績表現徘徊,雖然學生在選課考量無非就是兩種想法,一種是想要好成績、求過的課程,另一種是依據興趣來做選擇,但我們或許可以不僅僅以學生相關性、興趣來做純粹的推薦,而是以下限制式的推薦系統,或極大化學生的某項選擇,來導入機器學習或深度學習模型中讓學生達到某項目標。

2.2 研究目的

在本篇論文中,我將以極大化學生在專業領域的知識為目的,來做專業選修的課程推薦。以非線性迴歸有效率地萃取特徵,再利用非線性迴歸迭代計算出的參數權重來對未來使用此推薦演算法的學生做預測,預測同學在做出這樣的排課選擇後的可能成績表現,優先以核心知識能力有最大提升的結果來推薦選修課程給同學。在提升專業知識時,我只限制在專業必修還有餘課可以修的年級,對於大一下學期轉系的同學可能較不適用,而雙主修的同學則是專注在極大化他原修系上的核心知識。

而極大化專業領域知識的依據則是專業必修成績排名的進步,也就是正向變動量的高低。相信學生在看過課程推薦後,會對選課有更多考量,增加學生對課程的興趣及信心,也能減少學生期初加退選、期中退選,甚至是期末被當的機率,藉此降低選課成本,對於學生及校方都是有很大的幫助。

2.3 文獻回顧

同學在每學期選課前,通常考量的因素有很多,根據李勁昇(2017)在探討學生的修課習慣時,就有提到幾項可能會影響學生在選課時所考慮的幾個要點,比如一個星期時間上的安排,或是學分數的多寡取捨,並且在與成績表現做關聯時,說到同學的修課總學分與學期平均成績大多呈現負相關,藉此試想,學生自己可能都沒有意識到一些修課時的要點,往往在選課時很常都只是因為同儕關係、興趣來進行選課,但等到開學後試上了一週的課程,才發現課程不是自己想要的內容,或是可能雖然這門課程沒有給修課限制條件,但是其課程內容過於複雜艱深,可能需要先修過某些必修才能夠負荷的了這樣的內容,此時就有所謂的加退選,不過加退選也是時間成本,而且陳紹庭(2017)就在其論文有所提到,其實加退選對於學生的學業表現有著顯著影響關係,尤其是加入課程(加選)時將會導致學業表現下降,不過如果同學沒有在期初對那些自己應付不來的課程做退選,接下來需要面對的是更嚴重的後果,也就是期中預警,根據陳家琪(2017)對期中預警與學期成績的討論,一、二年級的學生被預警人次百分比最高,代表著這樣的大學新鮮人在選課時還無法很明確的理解選課目標及內容,導致期中預警的狀況發生,甚至事態延伸到學生被當或是二一,吳東陽(2018)也說到,對大一新生來說,主要因為大學與高中課程有難度上的落差,導致在大一大二時的成績表現不佳,且他使用了追蹤資料來討論學生二一的情況,雖然雙二一的制度下讓同學有了謹惕與改進的機會,他們在往後學期的不及格學分比例的確有明顯的遞減趨勢,但其成績表現已經有了不好的紀錄,且為了避免被二一,他們也會選擇放棄課程,這些都是選課成本,也都應該要予以避免,所以在學期選課時給予同學正確的建議是必要的。

那麼該藉由什麼樣的資訊才能捕捉到學生訊息以及課程訊息來讓學生有依據來做選課?此時就有所謂的校務研究,根據Saupe, J. L., & Montgomery, J. R. (1970)所說,校務研究即是「透過資料蒐集、分析、報告,以及教職員行動,以促進高等教育機構的運作與決定」,這些校務研究將有助於學生、校方共同進步,而資料的搜集、運用,王麗雲(2014)曾說道,校務研究人員除了具備研究能力,也要具備議題智能(issue intelligence)、分析智能( technical analytical intelligence)、脈絡智能(contextual intelligence),這也就讓許多學者開始利用資料科學、機器學習來做出針對學生的各方面分析。

在校務研究的領域中,都是以提升學生、校方作業效率為總目標,像是張育瑄(2018)利用課程規劃並使用決策樹分析來討論學期成績,作為協助學生的依據;又或是課程推薦系統的討論,如林承輝(2017)利用皮爾森相關係數建立分類預測模型、李揚(2015)採用協同式過濾模型所建立的課程推薦系統,SB Aher, LMR Lobo(2012)甚至做了各個模型如ADTree(Alternating decision tree)、K-means等來比較怎麼樣的推薦模型能夠更準確的讓學生選擇最適的課程,提升學生選課效率、降低選課成本。不過現今這樣的推薦系統,主要都是以學生屬性、課程屬性兩個面向去做推薦,系統所推薦的課程變成是原本就環繞在學生周遭相同性質的課程,這樣的推薦法如果是應用在推薦電影、音樂當然是好事,但在學習及教育上,卻不一定,針對成績較落後的學生,反倒是變相的使他們持續活在同溫層,畢竟學習本是要有所進步與提升,所以在本論文之中,我們將必須先討論,怎麼樣的變因會影響成績表現,後續在未來才能為推薦系統做出一項指標、限制。

3 資料描述

3.1 資料來源

資料來源是台北大學涵蓋100年到106年的學生資料,其中的rows為每一位學生曾經修過的課程,而columns則是該位學生各個課程的表現以及課程的資訊。但我們目前只討論100學年度到103學年度這四個學年度進來的同學,資料中學生都是擁有完整學年度體驗(四個學年含以上),截至他們到106年度末修課的狀況。而其他後來進來的同學將會先予以剔除,在之後推薦課程中可以做測試。

3.2 資料背景

這是一份課程與成績資料,我們可以先了解一個學生在大學四年來的課程,是由哪些課程組成。

學生畢業前會修習的課程包含了必修、選修,其中必修又分為專業必修、校訂必修,選修分為專業選修、自由選修:

  • 專業必修:學生主修系上所規劃的必修課程,學生需要將這些課程修習及格才能畢業。

  • 校訂必修:共同必修、通識

    • 共同必修:各個系別學生都需要修畢的課程,如國文、英文、體育等課程,學生需要修習及格才能畢業。

    • 通識:通識中心將課程分成幾大領域,學生需要修滿六門且不重複的領域才能夠畢業。

  • 專業選修:學生主修系上所規劃的專業選修課程,學生可以依照自身興趣來選擇課程修習。

  • 自由選修:學生主修系上所規定的能夠承認的他系選修課程,學生可選擇外系課程或通識中心所開的通識。

3.3 以提升專業領域知識為目的

我們想做出的課程推薦系統,是為了極大化學生在專業領域的知識,所以我們需要理解説,何謂專業領域知識,那又要怎麼去提升學生的專業領域知識。

專業領域知識,我們將其定義為學生在他的主修系上的“專業課程“,而這些專業課程又分為專業必修與專業選修,由於專業必修是系上對於學生的課程規劃,學生也需要將這些專業必修都拿到及格分數才能夠畢業,所以在推薦上我們會選擇推薦專業選修課程,專業選修課程也是各系上在課程規劃時的選修課程,是學生依照自己的興趣去做選擇修習課程,所以在推薦課程時,我們會針對專業選修課程去做推薦。這兩種專業課程皆屬於專業領域的知識,而專業選修課程是我們推薦的目標,所以我們能夠擁有的極大化條件,會專注於學生在大學四年必須修的專業必修課程。

專業必修課程在各個年級修的都不相同,以經濟系來說,大一時學生會修經濟學原理,到了大二才會修個體經濟學,這是因為系上在規劃課程安排時,隨著年級提升,課程內容會從淺入深、從窄入廣,而能夠在這樣的專業領域成長,我們需要看得是學生在這四年累積修習下來的課程表現,所以我們需要極大化條件的目標變數將是“專業必修累積平均成績“。

i生在T年級的專業必修累積平均成績iT定義如下:

\[ 專業必修累積平均成績_{iT}=\frac{\sum_{t=1}^{T}\sum_{s=1}^{n_{i,t}}專業必修科目成績_{its}*學分數_{its}}{\sum_{t=1}^{T}\sum_{s=1}^{n_{i,t}}學分數_{its}} \]

其中\(n_{i,t}\)為該i生在t年級所修之專業必修科目數。

這個成績計算方式,正是學校在計算每學期學生排名時的成績計算方式,將該學期專業必修科目成績乘上對應學分數後相加,再除以該學期總修習學分,並且以逐年累積的方式,計算同學每個年級累積過去的專業必修科目成績與學分數,做逐年相加,這樣的累積方式,也是因為我們在做推薦時,是針對各個不同學生站在不同年級的角度去做推薦,所以必須以累積的方式去討論。

在這裡,累積平均指得是:針對各年級,將他過去到該年級結束所修之專業必修課程進行不分年級混合的平均成績計算。

以下我們討論四個不同年級的專業必修累積平均成績機率密度分佈:

從圖中可以得知,專業必修累積平均成績在不管哪個年級幾乎都很一致座落在約80分上下,表示專業必修累積平均成績不會隨著年級變動而有太大的變動,但是如果是系別差異,可能對於分數的區間就不一樣了。

圖一是分學院來看各年級的專業必修累積平均成績箱型圖,社會科學院的累積專業科目分數較高,電機資訊學院則較低,已經可以明顯看出各院在給分上的不同。

圖二則是顯示了各個系在各年級的專業必修累積平均成績箱型圖,更明顯可以看出分數的累積變化,以及各系的分數差異。比方說社會工作學系的分數差異較小,中位數也比較高;幾個比較高分的系別如應用外語學系、公共行政暨政策學系與中國文學系,顯示出他們在成績給分上較寬裕。

在以上的兩個圖表中,我們證實了每個系在專業必修平均分數上的差異很大,也因為專業必修課程的安排會因為各系不同,有些系在四年級便沒有專業必修,所以為了使我們定義出的專業領域知識是依據各系所不同而有不同的專業領域知識水準,不能只是單純的極大化專業必修平均成績,而是依據系所不同去做極大化條件,我們最終極大化的目標將會是同屆同班同學的專業必修累積平均成績“排名“,也就是“專業必修累積平均成績PR“,才能夠讓目標變數更有意義。其中為何採用“累積“平均成績來描述PR,是因為若僅使用單年級專業必修課程來進行PR排序,會使得某些學生在某些年級時沒有專業必修成績而出現缺失資料,因此我們才使用“累積“平均成績來進行排序,並以之為極大化條件。

3.4 課程結構

在上一節我們知道推薦專業選修所需要的限制式條件,我們再來進一步去理解學生在排課時,將會受到什麼樣的影響,而去決定它的排課內容。

我們在推薦專業選修課程時,需要基於學生曾經學過的課程,以及新學期課表內容,才能提升他在新的年級時專業必修累積平均成績PR。在每一次推薦出的課表,都可以是學生選課時的參考依據,而這張課表我們能夠先以抽象的方式理解。

一張課表所包含的訊息有很多:

  • 一星期要來上多少小時的課,也就是“時間預算“的概念。

  • 一星期的課程中,有多少是專業課程,如專業必修、專業選修,又有多少是非專業課程,如校訂必修、自由選修,也就是“專業程度“的概念。

  • 與專業核心關連:在專業課程中,有多少課程是與學生主修專業知識有連結。

3.4.1 時間預算

一張課表顯示出一個禮拜七天所需要上的課程時數,而上課時數多寡對於“專業必修累積平均成績PR“會有正反兩面的影響,比方說,一個禮拜上課時數多,以正向影響來說,是可以快速增長知識,對於“專業必修累積平均成績PR“也會因為學生在該領域理解的越多,而提升在班上的排名,因為在學期中會參雜著專業課程,時數越多,專業課程學的越多;但是如果以負面影響來討論上課時數的話,則有可能同學會因為一個禮拜的課程安排太多,導致同學無法有其他時間做複習,而讓所有科目成績低落。由於時數的表示與學分數有很大的關聯,所以我們將考慮“年級修習總學分數“。

由於各個系所每個年級規劃的課程安排不同,所以在修習的時數上,或是給分的分數上也都不同,為此在以下的討論,我會將總學分與專業必修平均成績都針對系別去除學系平均。

從上表“各年級總學分數與專業必修平均成績關係點圖“可以得知,學生各個年級的總學分數多寡與他在各年級專業必修平均成績會隨著年級升高而從正相關變負相關,在一年級時,大部分學生的專業必修普遍修得多,一年級總學分之中的專業必修佔比較大,所以在專業必修平均成績表現上只有些微正相關;到了二年級隨著學生自主排課,這年的課表安插了較多自己有興趣的選修,正相關又再強烈一點,而三年級時兩者已開始呈現負相關,且到了四年級負相關更嚴重,造成此現象的可能原因是,通常學生都會把課集中在一、二年級修完,如果該位學生到了三、四年級的學分還是修很多,將會降低他在專業必修平均成績表現,可能可以顯現出該位學生在專業必修上是因為被當而延修至今。

所以我們在推薦課程時,在他的課表上,學分數的安排需要符合一定的標準,如果到了三、四年級還推薦太多,將會導致同學的“專業必修累積平均成績PR“下降,在專業領域知識表現降低,不過假如學生畢業成績還缺很多才到達門檻,那就無可厚非了,在推薦時一樣會針對提升專業領域能力來推薦專業選修,一、二年級同學會推薦較多專業選修,但到了三、四年級則不會推薦太多,如果學生還不達畢業門檻,可以建議幾門未修過的非專業輕鬆課程。

3.4.2 專業程度

一張課表也可以顯示出課程種類的比例,學生往往在選課時會同時考慮專業必修、專業選修、校訂必修、自由選修,而其中兩種課程即是專業領域知識的組成-專業必修與專業選修,當一學期的課表中,這兩者的比例佔總學期越高,它在專業領域的知識可能因此吸收越多(或反而造成太大的修課壓力),所以我們需要考慮在年級總學分數中,各種類課程的“配置比例“,專業課程與非專業課程(共同必修、通識、體育、軍訓等)的比例。

從上表中我們可以得知,一年級學生的學分安排通常為系上預先給定,所以成績表現上不會有太大相關,不過從二年級開始,學生在自己安排課表時,專業必修學分的比例與專業必修平均成績呈現些微負相關,表示當該學年專業必修學分佔該學年總學分比例越高,會些微的降低專業必修平均成績。

不過必修學分比例也是由其他種類課程學分數所組成,我們可以將此比例拆開討論,主要區分為專業必修、專業選修、非專業課程,下面兩張圖則是單看專業必修、專業選修學分數的高低是否影響專業必修平均成績表現。

圖一討論的是專業必修學分數,二、三、四年級都明顯且逐漸的呈現負相關,這裏比較能看出的是學生是否有重修的情況發生,尤其是四年級的同學還在重修時,它的專業必修平均成績與專業必修學分數是呈現高度負相關;一年級時大部分同學的課程安排是系上給定,所以呈現正相關的關係,且去除系別平均數後,資料點多數集中在零學分的地方。

圖二討論的是針對專業選修學分數,與必修學分數不同的是,在二、三年級時專業選修學分數仍持續與專業必修平均成績呈現正向關係,看得出來每個學年專業選修修得越多,不會干預太多學生在專業必修的表現,只有在四年級時,如果課程安排的專業選修太多,則會明顯讓學生在四年級時的專業必修平均成績下降,其主要原因可能還是學生在接近畢業前,如果仍有專業必修在修,表示學生的表現不太好,且過多的專業選修反而會讓學生分心導致成績更低落。

同一學期所討論的排課問題會影響t期專業核心課程的表現,那過去幾個學期累積下來的專業選修,是不是也會影響到t期專業核心課程的表現呢?

學生一年級時,學分主要是由必修組成,專業選修不會太多,所以與二年級的專業必修平均成績表現僅有些微的正向關係,不過隨著年級提升,隨著學生累積了過往年級在專業選修上的修課時數(學分數),它與t+1期的專業必修平均成績表現出他們之間逐漸提升正向關係,也就是學生專業選修上的累積,的確會正向影響到之後專業核心。

這個章節我們得到的是該學期“所有課程“各自的時間安排(學分數多寡),以及時間所拆出來的專業度(專業必修學分數、專業選修學分數多寡),是如何影響著我們的目標變數。真正以“知識含量“來去討論的話,課程百百種,學生也百百種,如何概化到每一個課程、每一個學生,則是一個問題,在下面的章節則要開始探討“各個專業選修“對於該領域專業核心的影響。

3.4.3 與專業核心關連

在推薦給同學的課表中,除了時間時數的安排、專業必修的學分比例,會影響到學生在專業必修平均成績的表現(進而影響專業必修累積平均成績PR)以外,還有課表中安排“哪些“專業選修,才會真正增進到累積專業領域知識(專業必修累積平均成績PR)。

系上會開所謂的專業選修課程,但並非所有的專業選修課程都與系上專業領域知識核心有關連,有些是影響到核心知識的深化,有些則是著重在廣化(核心知識的延伸),我們無法單純以課程資料去判定專業選修課程是否為影響“核心專業領域“的知識(學校的課程資料僅能表示出該選修是開給哪些系級),所以我們必須衡量出專業選修的深/廣化指標,才能定義清楚影響到專業領域知識的專業選修。

這邊我們可以先提到所謂的“專業領域連結度“,我們以專業選修與專業必修的人數流向比例來作判定,由於專業選修是是基於核心知識(專業必修)的必要基礎考量,往往有些專業選修會有年級限制,導致某些專業選修的學生多數是修完某些年級必修後才會選擇此選修,也有可能是學生需要具備某項專業必修知識後,才會考慮修這門專業選修,這時就有“先“修某些必修課後才流向“後“修此選修課的現象。

為此,我們針對學生i在t年級的課表,計算所選每門專業選修課與他在t-1年級(或更之前)的必修課之先後流向指數,指數越高表示連結度越強。一個可能的連結度計算是用以下的流向機率為基礎:

\[ \Pr(本年級專業選修|之前年級專業必修) \]

我們會以這樣的基礎來建造各個系別的transition_matrix,每個row為專業必修,每個column為專業選修,只要有一位同學在先修了某row的專業必修,後修了某column的專業選修,則在該欄位加一,最終除以總共修過某row的專業必修的人數。在這樣的transition_matrix下,專業必修與專業選修的流向機率值越高,表示專業選修與其專業必修課程的連結度越高,也就是該專業選修可能為該專業必修的延伸課程,是合理的修課順序,不是跳修過深的課。為方便以後討論我們稱此機率為“專業選修流向指數“。

3.4.3.1 專業選修與專業必修的流向機率

同學在每學期安排課表時,通常會先考慮這學期該修多少學分、是否插入體育或通識,接下來就是安插該年級的必修課程,最後會開始考慮專業選修,而我們要幫助學生的,就是建議學生幾門專業選修,並且能夠提升該學期在專業核心領域的表現(專業必修累積排名表現)。

不過專業選修不是想選就能選,有幾項特定因素會讓學生無法選擇這門專業選修:

  • 擋修:該專業選修可能有規定必須要幾年級以上才能修,或是要先修過什麼必修課才能修,而這邊不考慮作法,因為系統可以根據學生年級直接去除掉。

  • 知識不足:這是最常見的問題,該專業選修可能非常願意大家修習,但實際上可能學生必須蘊含某一定程度的專業核心知識,再去修這門專業選修會比較好。

因為專業知識不足而讓學生修得很辛苦或表現不好,是一個很重要需要考慮的原因,這邊可以看出一個關聯,是不是每位同學如果想要在專業選修上修得有意義、有成長,可能需要先得到一些知識背景,比方說要先修過某些特定專業必修核心知識課程,才能夠有不錯的表現,也不會在修課上有太大的壓力存在,進而影響到該學期的專業必修表現。藉此我們可以運用前面所提到的“專業選修流向指數“來討論一個專業選修背後需要先蘊含怎麼樣基礎的專業必修。

這些專業選修流向指數,我們可以清楚知道一個專業選修跟每一項專業必修(核心知識)的關聯度有多少,而這項比例指數,也隱含了每一門專業選修的背後,與專業核心這樣背景的關聯程度,我們可以藉此將所有該專業選修所掛鉤到背景的專業必修的這些比例,做平均值,而得出來的結果,則是這項專業選修所代表的專業核心背景知識,表示著,大部分修這門專業選修的同學,通常具備了多少程度的核心知識背景,也就是使用“專業選修與專業必修的流向機率“作為代表專業選修的知識背景指標。

3.4.3.2 專業選修課程深廣度

但是其實,在上述的專業選修流向指數,有許多可能會影響學生流向比例的高低,除了因為兩課程的相關程度高,也有可能因為該專業選修是熱門課程,是同學大學四年來口碑相傳的好老師所教授的課程,又或是這門專業選修是好拿分、可以提升自身成績排名的課程,所以必須要進一步探討該課程的“深廣度“,有了流向比例,以及完善區分比例的意義,才能得出真正能影響“核心專業知識“的專業選修。

藉此,我們可以以專業選修課程變數,來幫助我們判定課程的種類,觀察那些已經修完該門專業選修課的同學,他們在過往專業必修平均成績PR的表現,可以知道這門專業選修的客群主要是哪一類的學生,在這裡我們找出過去修過這門專業選修的這些學生的“PR平均數“,以之當作該專業選修的主要受客群。

有主要受客群的PR平均數還不夠,有些時候課程的受客群真的如熱門課程一般,不管是成績表現如何的同學,都會想要來修習這門熱門專業選修,此時,我們可以藉由看這門選修受客群的離散程度,如果這門選修課其同學PR離散程度高,則表示該選修課為廣化選修課,可能因為熱門而比例高;如果其PR離散程度越低,則表示該選修是屬於有自己特定族群的學生。這個部分我們則以專業選修課“PR分佈四分位距“來當作課程離散程度。

4 線性迴歸模型

在上一篇章節,我們建構了幾項有可能會影響到我們的目標變數-累積專業必修平均成績PR的一些自變數,接下來,我們開始要來實際去探討這些自變數是否影響、以及如何影響到我們的目標變數,這裡我使用的方法將是OLS。

OLS為一般最小平方法,也就是我們透過使用最小化殘差平方和(SSE)來估計參數,利用目標變數與欲討論有相關的自變數之間的誤差做平方來找出兩變數之間的最大關聯,在前幾項建構出來的自變數中,皆是線性迴歸,可以先一一看出每項自變數是如何影響我們的目標變數,而在最後討論與專業核心關聯的部分時,則會使用非線性迴歸。

4.1 過去PR的關係

在目前的迴歸模型中,我們帶入的資料先僅以經濟系的學生來做討論。

在求i學生在該學期的專業必修PR表現時,一個很重要的變數則是該學生i過去的PR,以前的表現對於新的學年是一很重要的影響,學生i在過去的表現,可以是新學期的基石,且由於我們的\(PR_{it}\)是過去累積出來的平均成績表現,而後做出班級內部排名,所以新一期的\(PR_{it}\)也將會與過去的\(PR_{it-1}\)有很大的相關,所以我們在此先將之加入迴歸式,並討論輸入變數對輸出變數的解釋程度。

\[ PR_{it}= \beta_0 +\rho PR_{it-1}+\epsilon_{it} \]

Dependent variable:
累積專業必修PR
前一期累積專業必修PR 0.772***
(0.016)
Constant 11.418***
(0.871)
Observations 1,560
R2 0.609
Adjusted R2 0.608
F Statistic 2,421.787*** (df = 1; 1558)
Note: p<0.1; p<0.05; p<0.01

從初始結果來看,可以得到Adjusted R-squared為0.608,由於該值以panel data來說是相當地高,也就是目前僅需一項解釋變數\(PR_{it-1}\)即可充分解釋我們的目標變數\(PR_{it}\),所以我們對目標變數做一階差分來去消除自身的偏向趨勢,並且這樣在未來新增解釋變數到迴歸中時,Adjusted R-squared 的進步也比較能夠看得出來,所以此時我們的迴歸模型改寫成:

\[ PR_{it}-PR_{i,t-1}= \beta_0 +\rho PR_{i,t-1}+\epsilon_{it} \]

Dependent variable:
PR變動量
前一期累積專業必修PR -0.056***
(0.006)
Constant 4.456***
(0.331)
Observations 1,560
R2 0.053
Adjusted R2 0.052
F Statistic 86.544*** (df = 1; 1558)
Note: p<0.1; p<0.05; p<0.01

在新的迴歸模型中可以看到 Adjusted R-squared已經降至0.052,接著我們可以在下面章節繼續討論加入欲觀測的變量。

4.2 與上課時數(學分數)的關係

在2.4.1時間預算的章節中,我們討論了新學期的課表安排(時數上),與專業領域表現的關係,且在新學期的學分數配置上,也往往與之前的成績表現也有相關,能夠反映出學生是否對於畢業有困擾,比方說過往在專業必修的PR排名較差,可能表示出學生有被當過的必修課,必須在之後的年級重新修過,導致該學年的學分數增加,故除了加入該學年的學分數變數,我們還需要加入\(學分數_{it}\)\(PR_{it-1}\)的交叉相乘項,來表示學生有畢業學分的困擾,迴歸如下:

\[ PR_{it}-PR_{i,t-1}= \beta_0 +\rho PR_{i,t-1} + \beta_1*學分數_{it}+\beta_2*學分數_{it}*PR_{it-1}+\epsilon_{it} \]

4.2.1 學分數內容

不過如果單單討論該學年的學分數,僅能知道學分數對該學生的畢業影響,但在資料中,我們知道一學年的總學分數是包含了專業必修、專業選修以及非專業課程,我們在這裡可以先將學分數做拆開討論。

\[ \begin{array}{lcl} PR_{it}-PR_{i,t-1} = \beta_0 +\rho PR_{it-1}&+&\beta_1*(必修學分+非必修學分)_{it}+\beta_2*(必修學分+非必修學分)_{it}*PR_{it-1}+\epsilon_{it}\\ PR_{it}-PR_{i,t-1} = \beta_0 +\rho PR_{it-1}&+&\beta_1*(必修學分/學分數+非必修學分/學分數)學分數_{it}\\ &+& \beta_2*(必修學分/學分數+非必修學分數/學分數)學分數_{it}*PR_{it-1}+\epsilon_{it}\\ \end{array} \]

在2.4.2專業度的章節,我們有把學分數拆開來對其中各類型課程來做討論,可以看出專業必修與非專業必修對於必修平均成績的單一影響,所以在迴歸式的變數我們也將學分數拆成“必修學分“與“非必修學分“,新增後的迴歸如下:

\[ \begin{array}{lcl} PR_{it}-PR_{i,t-1} = \beta_0 +\rho PR_{it-1} &+& \beta_{1a}*必修學分_{it}+\beta_{1b}*非必修學分_{it}\\ &+&\beta_2*(必修學分+非必修學分)_{it}*PR_{it-1} + \epsilon_{it}\\ \end{array} \]

Dependent variable:
PR變動量
前一期累積專業必修PR -0.004
(0.013)
必修學分 0.065**
(0.029)
非必修學分 0.157***
(0.025)
當期總修課學分x過去PR表現 -0.002***
(0.0003)
Constant 0.347
(0.717)
Observations 1,560
R2 0.080
Adjusted R2 0.078
F Statistic 34.032*** (df = 4; 1555)
Note: p<0.1; p<0.05; p<0.01

在加入學分數內容的這些變數後,我們首先看到調整後R-Squared上升到0.078,表示對於變數的加入可以更好解釋目標變數,而且不管是必修學分,或是非必修學分,都是與目標變數有正向關係,表示新學年的學分數修得多,對於排名增加有正向影響,尤其是非必修學分越多,更能讓必修排名上升,不過主要的可能原因應該是學生在非必修學分修得越多,也間接表示了學生在必修課程上修得順利,所以有額外時間去修非專業必修課程。

這是一個學生在過往成績表現上與新學年學分數關聯所反映出來的效果,所以後面我們加入這兩項變數的交叉相乘項來做解釋,能夠獨立出他們之間影響的效果。可以看出的是,如果過去排名高且新學年選的學分也多,對於新學年的排名可能因為課業壓力大所以有反向效果;如果過去排名低且新學年學分也低,反而容易在新學年的必修排名上提升排名(低排名要做提升比較容易)。

4.3 過去專業選修學分數內容

2.4.2圖三的討論,即是過去專業選修的累積時數,過去的專業選修是否會影響到我們在專業核心上的排名,從圖三中我們可以看到隨著過去累積越多的專業選修學分,的確是會提升我們在專業核心上的排名,因此在迴歸式子中多了這項解釋變數,應該是會增強解釋力,所以這裏也需將其加入迴歸式做討論,並且來討論三個迴歸式子的差異:

\[ \begin{array}{lcl} PR_{it}-PR_{i,t-1} = \beta_0 +\rho*PR_{it-1} &+& \beta_{1a}*必修學分_{it}+\beta_{1b}*非必修學分_{it}\\ &+&\beta_2*(必修學分+非必修學分)_{it}*PR_{it-1}\\ &+& \beta_{3}*專業選修學分_{it-1} + \epsilon_{it}\\ \end{array} \]

Dependent variable:
PR變動量
簡單線性迴歸 新增學分內容 新增過去選修關聯
(1) (2) (3)
前一期累積專業必修PR -0.056*** -0.004 -0.020
(0.006) (0.013) (0.014)
必修學分 0.065** 0.105***
(0.029) (0.031)
非必修學分 0.157*** 0.131***
(0.025) (0.026)
當期總修課學分x過去PR表現 -0.002*** -0.001***
(0.0003) (0.0004)
累積專業選修學分 0.086***
(0.023)
Constant 4.456*** 0.347 -0.503
(0.331) (0.717) (0.751)
Observations 1,560 1,560 1,560
R2 0.053 0.080 0.088
Adjusted R2 0.052 0.078 0.085
F Statistic 86.544*** (df = 1; 1558) 34.032*** (df = 4; 1555) 30.136*** (df = 5; 1554)
Note: p<0.1; p<0.05; p<0.01

我們可以看到,在Adjusted R-squared隨著我們加入的變數,其解釋力也逐漸提升,其中在第三式所新增過去專業選修對專業必修排名的變動,是有正向關係存在,表示過去的專業選修的確會增加同學的核心排名,而且還提升了新學年必修學分的解釋力,讓新學年必修學分的多寡不僅僅是討論同學的過去在核心專業的表現,而是能夠真正解釋了學分多寡對於核心排名的影響。

在討論完專業選修對核心排名的關聯性後,我們已經可以知道專業選修的重要性,不單單只是修得多修得少的問題,所以在下一節我們要接續討論百百種專業選修課程對核心課程的內容關聯。

5 非線性迴歸模型

5.1 核心關聯

有了時間預算的內容後,接下來就是加入真正與核心課程內容的課程,由於每一門專業選修都有其我們在2.4.3建構的幾項特徵,這些特徵代表了一項專業選修與核心課程的關聯性,我們先稱之為「課程特徵」變數群,並且用\(\textbf{W}_j\)來表示第j門選修課的課程特徵變數群,它包含:

  • 專業選修與專業必修的流向機率加總:此項變數代表的是,該專業選修背後與所有專業必修的流向機率加總。

  • 專業選修客群的PR平均數:由此課程特徵我們可以得知過往修過該專業選修的客群學生之PR平均數。

  • 修課學生PR四分位差:該專業選修的客群學生PR四分位差能夠解釋該課程的學生程度差異。

\[ W_j = \begin{bmatrix} 專業選修與專業必修的流向機率加總_j \\ 專業選修客群的PR平均數_j \\ 修課學生PR四分位差_j\\ \end{bmatrix} \]

假設存在一映射函數\(f\)能將上述3個特徵映射到一維實數,而且這樣轉換後的特徵函數\(f(\textbf{W}_j)\)將使得它能夠代表該課對修課者的專業必修PR成長充分影響的一項充分效能值:

\[ f:\mathbb{R}^{+3}\rightarrow\mathbb{R}\\ \alpha'W_j = f(W_j) \]

有了每一代表專業選修的充分效能值,接著我們就需要將i學生在t期所修的所有專業選修概化成能夠代表學生在t期結束後專業選修對於專業必修之總影響,即是,若一名學生在t期修了\(j∈(1,3,5)\)三門專業選修,則他會獲得f(Wt1),f(Wt3),f(Wt5)三個課程效能值,並將所有專業選修的充分效能值以一個g函數形成最終對專業必修PR成長的效果,則迴歸式可寫成:

\[ \begin{array}{lcl} PR_{it}-PR_{i,t-1} = \beta_0 +\rho*PR_{it-1} &+& \beta_{1a}*必修學分_{it}+\beta_{1b}*非必修學分_{it}\\ &+&\beta_2*(必修學分+非必修學分)_{it}*PR_{it-1}\\ &+& \beta_{3}*專業選修學分_{it-1} + g(f(\textbf{W}_1),f(\textbf{W}_3),f(\textbf{W}_5)) + \epsilon_{it}\\ \end{array} \]

5.1.1 對數函數的假設

\(\mathcal{S}\)代表i同學選的專選課程集合,則上面的\(g(f(\textbf{W}_j) \forall j\in\mathcal{S})\)我們需要先做分開討論,針對g()函數的假設,由於是代表某同學在t期所有修的專業選修課程,但是專業選修修得越多,核心知識並不會以線性持續增長,僅在一定的修課數量底下,學生的表現可能會因為課程修得多而快速增長知識,但過了這樣的修課數量,其效用將不會那麼的高。所以針對專業選修課程與專業必修的核心關聯,我們會對其取log函數,因為log函數擁有concave性質,故可以消除課程修得多不能代表知識線性增長的問題,使得充分效能值對知識核心成長有邊際遞減的效果。我們可將\(g(f(\textbf{W}_j) \forall j\in\mathcal{S})\)改寫成:

\[ g(f(\textbf{W}_j) \forall j\in\mathcal{S})=\beta_w* \log(\sum_{j\in\mathcal{S}} f(\textbf{W}_j) \]

假設\(\mathcal{S}_i\)為同學\(i\)修選的專選集合,則由前述可得迴歸式如下:

\[ \begin{array}{lcl} PR_{it}-PR_{i,t-1} = \beta_0 +\rho*PR_{it-1} &+& \beta_{1a}*必修學分_{it}+\beta_{1b}*非必修學分_{it}\\ &+&\beta_2*(必修學分+非必修學分)_{it}*PR_{it-1}\\ &+& \beta_{3}*專業選修學分_{it-1} \\ &+& \beta_w* \log(\sum_{j\in\mathcal{S_i}} f(\textbf{W}_j) + \epsilon_{it}\\ \end{array} \]

5.1.2 線性函數的假設

上面的f()作為降維映射函數,我們進一步寫成:

\[ \begin{array}{lcl} \sum_{j\in\mathcal{S_i}}f(\textbf{W}_j) &=& \sum_{j\in\mathcal{S_i}}\alpha'\textbf{W}_j \\ &=& \alpha'\sum_{j\in\mathcal{S_i}}\textbf{W}_j \\ &=& \alpha'\sum_{j\in\mathcal{S_i}}\begin{bmatrix} 專業選修與專業必修的流向機率加總_j \\ 專業選修客群的PR平均數_j \\ 修課學生PR四分位差_j\\ \end{bmatrix} \end{array} \]

使用線性假設主要是因為,每個學生\(i\)的專業選修集合\(\mathcal{S}_i\)都不一樣,利用線性函數可以允許我們將他們在t期個別所選的專業選修課程特徵做加總後放入迴歸式中,直覺的能夠將特徵明顯代表各個學生的在該學期的專業選修對於專業必修排名的影響。

則迴歸模型可寫成:

\[ \begin{array}{lcl} PR_{it}-PR_{i,t-1} &=& \beta_0+\rho*PR_{it-1} +\\ & & \beta_{1a}*必修學分_{it}+\beta_{1b}*非必修學分_{it}+\\ & &\beta_2*(必修學分+非必修學分)_{it}*PR_{it-1}+\\ & & \beta_{3}*專業選修學分_{it-1} +\\ & & \beta_w* \log(\sum_{j\in\mathcal{S}_i} \alpha'\textbf{W}_j) + \epsilon_{it}\\ &=& \beta_0+\rho*PR_{it-1} +\\ & & \beta_{1a}*必修學分_{it}+\beta_{1b}*非必修學分_{it}+\\ & &\beta_2*(必修學分+非必修學分)_{it}*PR_{it-1}+\\ & & \beta_{3}*專業選修學分_{it-1} +\\ & & \beta_w* \log( \alpha'\sum_{j\in\mathcal{S}_i}\textbf{W}_j)+ \epsilon_{it}\\ \end{array} \]

5.1.3 認定條件問題

由於在針對專業選修核心關聯加入concave性質的log函數後,使得原本迴歸從線性變成非線性的性質,所以在接下來的ols中,雖然也是以極小化殘差平方和來估計迴歸參數,但由於是非線性迴歸,所以每一次的計算都以不同的、新計算出來的模型來迭代估計參數,演算法會預測下次迭代所估計出的參數要比前一次的殘差平方和還小來進行收斂,直到得出最小的殘差平方和或是迭代終止,而中止的情況發生則有幾項可能,比如迭代達到最大的次數,演算法無法繼續計算下去,或是出現無法收斂的情況,此時我們在給定參數初始值時,就是一個很重要的步驟,一來是可以讓收斂有效率地進行,二來是使得收斂能夠達到我們預想的真正的最小殘差平方和。

簡化上面的非線性迴歸:

\[ y=\beta_0+\beta'x+\beta_w\log(\alpha'W)+\epsilon \] 並先單純針對模型後面專業選修的部分\(\beta_0+\beta_w\log(\alpha'W)\)做討論:

\[ \begin{array}{lcl} \beta_0+\beta_w\log(\alpha'W)&=& (\beta_0-\eta)+\beta_w\frac{\eta}{\beta_w}+\beta_w\log(\alpha'W)\\ &=& (\beta_0-\eta)+\beta_wlog(\exp(\frac{\eta}{\beta_w}))+\beta_w\log(\alpha'W)\\ &=& (\beta_0-\eta)+\beta_wlog(\exp(\frac{\eta}{\beta_w})\alpha'W) \end{array} \]

從這部分的推導可以看出\(\beta_0\)的加減改變,也就是迴歸模型在原點部分收斂時的平移狀態,會同時跟著後面的\(\alpha\)乘除時迴歸伸縮影響來達到相同效果,此時\((\beta_0,\alpha)\)之間具有認定條件問題,其中一個參數必須一般化,才能讓非線性迴歸進行收斂時,能夠有個初始標準,讓它能夠收斂。所以我們令\(\alpha’\)中的第一個係數值\(\alpha_1\)為1,並對後續的\(\alpha_i\)做一般化。

5.1.4 內生狀態特徵變數

目前的迴歸式子讓選課推薦系統在做推薦時,是根據當期課表”外生“變動來預測“PR變動”的效果,如果沒有根據學生個別條件做不同的設定,可能在大二時,同學都會被推薦出一樣的結果,故需要在log函數中加入學生前一期狀態有關的變數。這裡我將針對選擇課表時的”充分效能值“內的”客群之PR平均“以及”客群之PR程度差異“乘上前一期累積專業必修PR的表現,使得學生會因為過去表現的高低,產生與之後選課的關聯。直覺的想法為,學生如果過去表現不好,會連帶影響到未來選擇的選修課程難度,在推薦課程上將不會一直推薦課程受眾為學生PR高的課程,即便大部分的學生修習這樣的課程會提升PR。

在此討論之下我將迴歸改寫成:

\[ \begin{array}{lcl} PR_{it}-PR_{i,t-1} = & &\beta_0+\rho*PR_{it-1} +\\ & & \beta_{1a}*必修學分_{it}+\beta_{1b}*非必修學分_{it}+\\ & &\beta_2*(必修學分+非必修學分)_{it}*PR_{it-1}+\\ & & \beta_{3}*專業選修學分_{it-1} +\\ & & \beta_w* \log(\alpha'\sum_{j\in\mathcal{S_i}}\begin{bmatrix} 專業選修與專業必修的流向機率加總_j \\ 專業選修客群的PR平均數_j*PR_{it-1} \\ 修課學生PR四分位差_j*PR_{it-1}\\ \end{bmatrix}) + \epsilon_{it}\\ \end{array} \]

5.2 研究結果

最後利用上節最終的非線性迴歸所跑出的模型結果如下:

\[ \begin{array}{c|lcr} \text{Parameters} & \text{Estimate} & \text{Pr(>| t |)} \\ \hline \text{Constant} & \text{-4.0525119} & \text{0.015371 *} \\ \text{前一期累積專業必修PR} & \text{-0.1009029} & \text{4.04e-05 ***} \\ \text{必修學分} & \text{0.0987956} & \text{0.021944 *} \\ \text{非必修學分} & \text{0.0675439} & \text{0.070668 .} \\ \text{當期總修課學分x過去PR表現} & \text{-0.0007890} & \text{0.145373} \\ \text{累積專業選修學分} & \text{0.1074739} & \text{0.000151 ***} \\ \text{流向機率加總} & \text{1.0000000} & \text{} \\ \text{客群之PR平均x過去PR表現} & \text{0.0028358} & \text{0.737231} \\ \text{客群之PR程度差異x過去PR表現} & \text{0.0073506} & \text{0.536791} \\ \end{array}\\ \text{------------------------------------------------------------------------------}\\ \text{Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1}\\ \text{Residual standard error: 7.24 on 1424 degrees of freedom}\\ \text{註:前一期累積專業必修PR=過去PR表現} \]

其中,該非線性迴歸的殘差表現如下:

可以看到模型在預測殘差的部分都接近於零,表示此模型在預測PR變動量時可以有不錯的表現。

我們進一步計算非線性迴歸預測模型的RMSE,該數值為52.09027。

非線性迴歸的研究結果我們可以知道,為了提升專業必修的成績排名,也就是對於自己系上的核心知識表現,我們選課的方向與目標,不僅是課表上的安排,雖然從一開始在線性迴歸的部分可以看出,時間上、專業度固然對於核心知識表現有一定所影響,同學大部分選課時也都是依照這樣的考量去做出課程選擇,但其實當我們加入專業選修與專業必修核心關連知識所跑出來的非線性迴歸結果後,可以發現其實在每一次選課的安排,該學期除了固定的必修課程之外,搭配的選修課程是一個需要很大考量的因素,兩者之間呈現顯著的相關程度。

由於我們將流向機率加總的參數標準化為1,專業選修的流向機率對於專業必修的PR排名有正向關係,表示如果專業必修的學生流向到此專業選修的比例較多,會提升專業必修的PR排名;而專業選修的客群之PR平均與過去PR表現的交叉相乘項也與排名有正向關係,專業選修的學生組成如果通常為排名較前面的學生,則對於該學期的必修成績排名也會有所提升;專業選修的客群之PR程度差異與過去PR表現的交叉相乘項亦是正向關係,該專業選修的學生程度差異如果較大,會提升學生在專業必修的排名。

5.3 類神經網路

利用簡單類神經網路,所計算出來的RMSE為47.647,其值較非線性迴歸較低,表示類神經網絡預測PR變動更準確。

6 專業選修推薦系統

由第四章節的研究結果,我們已經計算出每一個我們所選擇的變數的估計參數,而這樣的參數設定可以針對同學在過去的各項成績表現、修課時數,以及新學年的排課選擇,做出專業必修成績PR排名進步或退步的預測,學生只要輸入其學號,以及想優先排入的課程(必修、體育、通識、選修),和想加入幾門專業選修的數目,前幾項特徵“前一期累積專業必修PR“、“必修學分“、“非必修學分“、“當期總修課學分x過去PR表現“、“累積專業選修學分“,將會由系統自動捕捉補上,此時我們所要做的則是根據“專業選修與核心關聯“此項變數去安排計算如何選擇會對同學的專業必修排名有最大的進步,接下來則是此推薦系統的演算法。

6.1 演算法步驟

RS(ID, R_CREDIT, CREDIT, N)

Input: 學生的ID;已經確定的必修學分數R_CREDIT;這學年想要的總學分數CREDIT;想要添加的專業選修數量N

note: 以學生資料、課程資料、預測模型皆事先儲存於資料庫為例

step1: 我們可以藉由學生輸入的學號,來先從資料庫抓取其系別資料,包含系上的課程資料、已從過往學生資料建構好的預測模型。
step2: 利用學生過去的必修成績表現以及學分數,計算出“前一期PR”。
step3: 計算學生之前的“累積專業選修學分數”。
step4: 篩選出學生尚未修習過的專業選修課程,並隨機抽取N個專業選修,形成不重複的組合,並令之為“可能修課集合”。
step5: 有了以上計算出的幾項變數,即可帶入預先估計好的非線性迴歸模型,藉以計算出每個修課組合的各種“排名可能”。
step6: 得出排名進步最多的專業選修修課組合,即是我們欲推薦給學生的專業選修課程。

Output: 專業選修課程Course_ID
Algorithm RS(ID, R_CREDIT, CREDIT, N)

python code:

Input: 學生的ID;已經確定的必修學分數R_CREDIT;這學年想要的總學分數CREDIT;想要添加的專業選修數量N
Output: 專業選修課程ID


以學生資料、系別資料、預測模型皆事先儲存於MYSQL為例


def RS(ID, R_CREDIT, CREDIT, N):

    # 藉學生id抓取MYSQL課程資料及模型
    database = MySQLdb.connect('database')
    cursor = database.cursor()

    sql = """select '系別專業選修名單及特徵變數','系別的排名預測模型','學生過去修過的課程資料' from database"""  # 抓取學生的資料庫

    cursor.execute(sql)

    predict_model = 系別的排名預測模型
    elective_subject_df = 系別專業選修名單及特徵變數

    done_elective_subject_list = 已完成的該系別專業選修名單
    done_required_subject_df = 已修過的必修科目及成績表現

    db.close()

    # 資料處理
    past_PR = PR_data_processing(done_required_subject_df)  # 計算前一期PR
    past_elective_subject_CREDIT = elective_subject_PR_data_processing(done_elective_subject_list)  # 計算累積專業選修學分數
    elective_subject_df = elective_subject_df[~elective_subject_df['科目名稱'].isin(done_elective_subject_list)]  # 排除已修過之課程

    # 帶入模型預測核心排名
    elective_subject_set = 'elective_subject_df'隨機選取N個專業選修排列組合

    result_list = []
    for set in elective_subject_set:
        model = past_PR + R_CREDIT + (CREDIT - R_CREDIT) + CREDIT * past_PR + past_elective_subject_CREDIT + set  # 建立暫時欲預測之模型
        result = model.predict_model()  # 預測之結果
        result_list.append(set, result)

    best_set = max(result_list)  # 選取預測之最好的結果

    return best_set

7 結論與未來建議

7.1 結論

學生往往在選擇非必修的課程時,都是跟著自身興趣、同儕關係、老師知名程度、課程營養與否來做選擇,卻忽視了這些專業選修課程與專業必修課程背後的關聯程度,也就降低了學生提升自己對系上專業核心知識的可能。所以在未來學生選課時,我們可以藉此演算法給予專業選修選課時的建議,讓他們能夠提升自身的專業核心知識。

7.2 未來建議

由於此論文主要針對自己系上的表現以及推薦自己系上的專業選修,其實在未來我們可以擴大領域,製作出跨系所修課的可能,因為許多系所其實他們的課程也會與自己系上的主修課程有所關聯,也會是許多人在考慮選課時的選擇,所以在未來如果能擴大考慮到課系所課程之間的安排,產生跨修的可能,對於學生在專業核心的發展也許也是一件更好的事情。老師的知名度,也是影響學生選課時的一個重大考量,在未來或許也能夠將教學評鑑加入,用以廣泛探討學生選課時的考量。

在推薦演算法的部分,也可以從推薦套餐式組合,改成將每一項專業選修合併附上對於提升排名的分數影響,學生可以針對這樣的分數,混合自己的想法去做更自由的選課。

8 參考文獻

8.1 中文文獻

李勁昇(2017)。探討學生的選課身分別、修課習慣與成績之關聯性-以臺北市立大學為例。臺北市立大學數學系數學教育碩士在職專班碩士論文。

陳紹庭(2017)。選課行為與學業表現-以國立中央大學為例。國立中央大學經濟學系碩士論文。

陳家琪(2017)。從期中預警與學期成績之關係談預警成效—以臺北市立大學為例。臺北市立大學數學系數學教育碩士在職專班碩士論文。

吳東陽(2018)。大學雙二一退學與學生行為。東吳大學經濟學系碩士論文。

王麗雲(2014)。透過校務研究進行自我評鑑與自我改進,評鑑雙月刊,47期,2014年1月。

張育瑄(2018)。應用決策樹分析於學期成績必修科目在資管系大一學生之學習成效分析-以某大學 2014-2016 年為例。中華大學資訊管理學系碩士論文。

林承輝(2017)。整合協同過濾和人工免疫系統的混合課程推薦系統。元智大學資訊管理學系博士論文。

李揚(2015)。利用協同式過濾模型建立考慮隱私的課程推薦系統。國立臺灣大學資訊工程學研究所碩士論文。

8.2 西文文獻

Saupe, J. L., & Montgomery, J. R. (1970). The nature and role of institutional research: Memo to a college or university (ED049672). Tallahassee, FL: Association for Institutional Research.

Sunita B Aher, LMRJ Lobo (2012).A comparative study of association rule algorithms for course recommender system in e-learning. International Journal of Computer Applications.

9 附錄

9.1 估計參數初始值

我們首先將專業選修的充分效能值加入線性迴歸做初步的參數估計:

Dependent variable:
PR變動量
前一期累積專業必修PR -0.059**
(0.024)
必修學分 0.067
(0.044)
非必修學分 0.062
(0.038)
當期總修課學分x過去PR表現 -0.001
(0.001)
累積專業選修學分 0.136***
(0.028)
流向機率加總 0.668***
(0.160)
客群之PR平均 0.0003
(0.0002)
客群之PR程度差異 -0.0003
(0.0002)
Constant -0.654
(1.438)
Observations 1,433
R2 0.112
Adjusted R2 0.107
Residual Std. Error 7.276 (df = 1424)
F Statistic 22.523*** (df = 8; 1424)
Note: p<0.1; p<0.05; p<0.01

利用線性迴歸估計出來的參數\(\hat\alpha_{lm}'\),帶入線性迴歸\(\hat\alpha_{lm}'W_j\)中來得出的\(\hat W_j\)的估計效果,也就是f()函數映射後得到的充分效能值。我們拿此代表專業選修的估計充分效能值\(\hat W_j\)來作為非線性迴歸\(\beta_0+\beta_w\log(\alpha'W)\)的目標變數,用這樣初步收斂過的\(\hat\alpha_{nls}'\),可以有效使得最終非線性迴歸能夠收斂,而且還可以針對\((\beta_0,\alpha)\)的identification問題做normalize。