
用R語言建立學生的學習表現(xiàn)和性格特征數(shù)據(jù)模型
一、項目介紹:
方法包括以下步驟
S1:將個體表現(xiàn)數(shù)據(jù)輸入到數(shù)據(jù)庫;
S2:建立學習者的學習表現(xiàn)數(shù)據(jù)庫和性格特征數(shù)據(jù)庫;
S3:建立學習者的學習表現(xiàn)數(shù)據(jù)模型和性格特征數(shù)據(jù)模型;
S4:使用數(shù)據(jù)算法計算學習表現(xiàn)數(shù)據(jù);
S5:輸出個體性格特征。
步驟(S1)中的個體表現(xiàn)數(shù)據(jù)為諸如以下類型且不局限于以下類型的個體表現(xiàn):
曠課、請假、遲到、早退;
課堂紀律、上課說話、上課玩手機、上課吃東西、上課看與學科內(nèi)容無關(guān)的書、上課期間隨意進出、上課手機響鈴、上課做其他科作業(yè)、上課睡覺、上課坐姿不端正;
課堂上搶答舉手、表達清楚性、觀點清晰性、內(nèi)容正確性;
小組討論時主題明確性、討論氣氛活躍性、是否組織者、是否積極發(fā)言;
實驗前儀器樣品狀況確認與否、破損儀器數(shù)量、破損儀器時間、儀器破損上報情況、儀器賠償、儀器整理情況、實驗完成用時長短、實驗過程操作規(guī)范程度、實驗過程中的紀律遵守情況、實驗后衛(wèi)生打掃情況、原始實驗數(shù)據(jù)準確度、原始實驗數(shù)據(jù)有無抄襲現(xiàn)象、實驗報告的質(zhì)量;
預習、作業(yè)的完成的時間點,預習、作業(yè)的完成的時間段;
預習、作業(yè)的質(zhì)量,預習、作業(yè)的次數(shù);
作業(yè)誠信、考試誠信;
測驗、考試成績、考試用時;
當通過設備交互答題,使用鼠標、鍵盤、體感設備、觸摸屏、模擬設備時;
完成的時間點的早晚、完成的時間段的長短、操作的頻率的多少、重復的頻率的多少、設備位移的長度長短、設備位移的速度大小、設備位移的精度大小、操作的質(zhì)量高低;
當通過設備交互答題,使用語音輸入設備時;
響度、音調(diào)、音品或音色、語速。
步驟(S2)中的學習表現(xiàn)數(shù)據(jù)庫和性格特征數(shù)據(jù)庫具有學生通過性格測驗所獲得的性格特征數(shù)據(jù)以及通過學習系統(tǒng)所獲得學習數(shù)據(jù),這些數(shù)據(jù)都是所獲得的原始數(shù)據(jù)。其中,性格測驗包含卡特爾16PF人格測驗、大五人格測驗,卡特爾16PF人格測驗包含16個維度的性格特征,而大五人格測驗包含五個維度的性格特征。
步驟(S3)中建立學習者的學習表現(xiàn)數(shù)據(jù)模型和性格特征數(shù)據(jù)模型,主要是通過學習表現(xiàn)與性格特征的原始數(shù)據(jù),通過計算其中的相關(guān)系數(shù),輸出學習者的新的性格特征的穩(wěn)定模型。
步驟(S4)中使用的數(shù)據(jù)數(shù)學算法為包含聚類分析算法(S41)、關(guān)聯(lián)規(guī)則法(S42)、回歸分析法(S43)、BP神經(jīng)網(wǎng)絡模型(S44)、決策樹(S45)、支持向量機(S46)的數(shù)據(jù)挖掘算法。
采用聚類分析算法(S41)將學習者的表現(xiàn)數(shù)據(jù)類型進行相似性比較,將比較相似的個體性格特征歸為同一組數(shù)據(jù)庫,采用以下步驟:
(2)輸入學習者的學習表現(xiàn)數(shù)據(jù)和性格特征的測試結(jié)果;
(3)計算學習表現(xiàn)數(shù)據(jù)類型與各個性格特征聚類中心之間的距離,使誤差平方和局部最小,并將距離用統(tǒng)一量化的手段給出,把學習表現(xiàn)數(shù)據(jù)類型與性格特征之間距離小于閾值的分配給相應的性格特征聚類中心,得到的學習表現(xiàn)數(shù)據(jù)與性格特征之間的分配關(guān)系與距離;
(4)用新的數(shù)據(jù)重復(1)、(2)、(3)的操作,待相關(guān)系數(shù)穩(wěn)定后,得到穩(wěn)定的數(shù)學模型;
(5)然后將新的學習者的學習表現(xiàn)數(shù)據(jù)輸入到性格特征評估系統(tǒng),可得出新學習者的性格特征。
采用關(guān)聯(lián)規(guī)則法(S42)將不同的性格特征關(guān)聯(lián)起來,當個體表現(xiàn)出一種性格特征時,則可推斷其他性格特征,其方法為:
補充用這種方法的核心步驟
采用回歸分析法(S43)建立數(shù)學模型,用最小二乘法估計確定同類型的學習表現(xiàn)數(shù)據(jù)與某些性格特征之間的定量關(guān)系式,采用逐步回歸、向前回歸和向后回歸方法計算某個學習表現(xiàn)數(shù)據(jù)與某個性格特征的相關(guān)性參數(shù)來判斷某個學習表現(xiàn)數(shù)據(jù)與某個性格特征之間的影響是否顯著。
采用BP神經(jīng)網(wǎng)絡法(S44)對所有的學習表現(xiàn)數(shù)據(jù)與性格特征綜合分析,采用最速下降法,沿距離梯度下降的方向求解極小值,經(jīng)過不斷的迭代與修正得出所有的學習表現(xiàn)數(shù)據(jù)與性格特征之間存在的最短距離,最端距離代表與學習表現(xiàn)數(shù)據(jù)相關(guān)的性格特征。
采用決策樹(S45)法對學習表現(xiàn)數(shù)據(jù)分類,將不同類型學習表現(xiàn)數(shù)據(jù)更清楚地表示出來。
采用步驟(S4)中的支持向量機(S46)算法計算出某一性格特征與其相關(guān)的學習表現(xiàn)數(shù)據(jù)所產(chǎn)生的“最短距離方式”,經(jīng)過不斷的迭代運算,得出性格特征相關(guān)性較強的學習表現(xiàn)數(shù)據(jù)。
有益的效果是:
使用本方法,性格特征評估系統(tǒng)可以使用新學習者的學習表現(xiàn)數(shù)據(jù)來評價其性格特征,從而對學生日后的發(fā)展進行科學指導,有利于教師把握學生的性格。
方法包括以下步驟:S1:將個體表現(xiàn)數(shù)據(jù)輸入到數(shù)據(jù)庫;S2:建立學習者的學習表現(xiàn)數(shù)據(jù)庫和性格特征數(shù)據(jù)庫;S3:建立學習者的學習表現(xiàn)數(shù)據(jù)模型和性格特征數(shù)據(jù)模型;S4:使用數(shù)據(jù)算法計算學習表現(xiàn)數(shù)據(jù);S5:輸出個體性格特征。
針對步驟S1,步驟(S1)中的個體表現(xiàn)數(shù)據(jù)為諸如以下類型且不局限于以下類型的個體表現(xiàn):
曠課、請假、遲到、早退;
課堂紀律、上課說話、上課玩手機、上課吃東西、上課看與學科內(nèi)容無關(guān)的書、上課期間隨意進出、上課手機響鈴、上課做其他科作業(yè)、上課睡覺、上課坐姿不端正;
課堂上搶答舉手、表達清楚性、觀點清晰性、內(nèi)容正確性;
小組討論時主題明確性、討論氣氛活躍性、是否組織者、是否積極發(fā)言;
實驗前儀器樣品狀況確認與否、破損儀器數(shù)量、破損儀器時間、儀器破損上報情況、儀器賠償、儀器整理情況、實驗完成用時長短、實驗過程操作規(guī)范程度、實驗過程中的紀律遵守情況、實驗后衛(wèi)生打掃情況、原始實驗數(shù)據(jù)準確度、原始實驗數(shù)據(jù)有無抄襲現(xiàn)象、實驗報告的質(zhì)量;
預習、作業(yè)的完成的時間點,預習、作業(yè)的完成的時間段;
預習、作業(yè)的質(zhì)量,預習、作業(yè)的次數(shù);
作業(yè)誠信、考試誠信;
測驗、考試成績、考試用時;
當通過設備交互答題,使用鼠標、鍵盤、體感設備、觸摸屏、模擬設備時;
完成的時間點的早晚、完成的時間段的長短、操作的頻率的多少、重復的頻率的多少、設備位移的長度長短、設備位移的速度大小、設備位移的精度大小、操作的質(zhì)量高低;
當通過設備交互答題,使用語音輸入設備時;
響度、音調(diào)、音品或音色、語速。
針對步驟S2,學習表現(xiàn)數(shù)據(jù)庫和性格特征數(shù)據(jù)庫的獲得可以通過以下方式實現(xiàn):在學習開始時,先對學習者進行常規(guī)的性格測驗,獲得學習者的性格特征,并將其儲存進入數(shù)據(jù)庫,然后讓學習者使用學習系統(tǒng),產(chǎn)生學習表現(xiàn)數(shù)據(jù),也將其儲存進入數(shù)據(jù)庫,建立學習者的學習表現(xiàn)數(shù)據(jù)和性格特征數(shù)據(jù)庫。其中,性格測驗包含卡特爾16PF人格測驗、大五人格測驗,卡特爾16PF人格測驗包含16個維度的性格特征,分別是因素A-樂群性、因素B-聰慧性、因素C-穩(wěn)定性、因素E-恃強性、因素F-興奮性、因素G-有恒性、因素H-敢為性、因素I-敏感性、因素L-懷疑性、因素M-幻想性、因素N-世故性、因素O-憂慮性、因素Q1--實驗性、因素Q2--獨立性、因素Q3--自律性、因素Q4--緊張性;而大五人格測驗包含五個維度的性格特征,分別是外傾性、神經(jīng)質(zhì)或情緒穩(wěn)定性、開放性、隨和性、盡責性。
針對步驟S3,建立學習者的學習表現(xiàn)數(shù)據(jù)模型和性格特征數(shù)據(jù)模型可以通過以下方式實現(xiàn):將學習者的學習表現(xiàn)數(shù)據(jù)與性格測評結(jié)果作為性格特征評估系統(tǒng)的訓練集,性格特征評估系統(tǒng)使用訓練集進行學習,調(diào)整各種類型的學習表現(xiàn)數(shù)據(jù)與不同類型的性格特征的相關(guān)系數(shù),產(chǎn)生新的各種類型的學習表現(xiàn)數(shù)據(jù)與不同類型的性格特征的相關(guān)關(guān)系與相關(guān)系數(shù),形成學習表現(xiàn)數(shù)據(jù)與性格特征相互關(guān)系的穩(wěn)定模型,并將其儲存進入數(shù)據(jù)庫。當相關(guān)系數(shù)穩(wěn)定后,性格特征評估系統(tǒng)根據(jù)新學習者的學習表現(xiàn)數(shù)據(jù)輸出新學習者的性格特征。
針對步驟S4,的數(shù)據(jù)數(shù)學算法為包含聚類分析算法S41、關(guān)聯(lián)規(guī)則法S42、回歸分析法S43、BP神經(jīng)網(wǎng)絡模型S44、支持向量機S46的數(shù)據(jù)挖掘算法,實施步驟可以通過以下方式實現(xiàn):
針對步驟S41,在進行聚類分析算法運算時,聚類分析算法將學習者的表現(xiàn)數(shù)據(jù)類型進行相似性比較,將比較相似的個體性格特征歸為同一組數(shù)據(jù)庫,采用以下步驟:
(2)輸入學習者的學習表現(xiàn)數(shù)據(jù)和性格特征的測試結(jié)果;
(3)計算學習表現(xiàn)數(shù)據(jù)類型與各個性格特征聚類中心之間的距離,使誤差平方和局部最小,并將距離用統(tǒng)一量化的手段給出,把學習表現(xiàn)數(shù)據(jù)類型與性格特征之間距離小于閾值的分配給相應的性格特征聚類中心,得到的學習表現(xiàn)數(shù)據(jù)與性格特征之間的分配關(guān)系與距離;
(4)用新的數(shù)據(jù)重復(1)、(2)、(3)的操作,待相關(guān)系數(shù)穩(wěn)定后,得到穩(wěn)定的數(shù)學模型;
(5)然后將新的學習者的學習表現(xiàn)數(shù)據(jù)輸入到性格特征評估系統(tǒng),可得出新學習者的性格特征。
比如:首先計算學習表現(xiàn)數(shù)據(jù)中遲到的次數(shù),早退的次數(shù),破損儀器數(shù)量多少等與各類性格特征之間的距離,其中對于“敢為性”這種性格來說只有遲到的次數(shù),早退的次數(shù),損儀器數(shù)量多少,作業(yè)誠信度,上課玩手機,上課睡覺,儀器賠償及時與否之間的距離小于閾值,所以認定“敢為性”只與這些學習表現(xiàn)數(shù)據(jù)存在相關(guān)性關(guān)聯(lián),并且根據(jù)算出的距離按照比例得到對于“敢為性”遲到次數(shù)占25%,早退的次數(shù)占20%,作業(yè)誠信度占5%,上課玩手機占8%,損壞儀器數(shù)量多少占13%,儀器賠償及時與否占15%,上課睡覺12%,其余學習表現(xiàn)數(shù)據(jù)均小于2%的閾值,所以不作為考慮因素。
同理,對于遲到的次數(shù)這一學習表現(xiàn)數(shù)據(jù),計算其與各類性格特征之間的距離,其中對于遲到次數(shù)這一學習表現(xiàn)數(shù)據(jù)來說,只有敢為性,恃強性,穩(wěn)定性,有恒性,實驗性,自律性之間的距離小于閾值,所以認為遲到次數(shù)只與這些性格特征有關(guān),并且根據(jù)算出的距離按照比例得到對于遲到次數(shù)這一學習表現(xiàn)數(shù)據(jù)得到敢為性占35%,恃強性占25%,穩(wěn)定性占15%,有恒性8%,實驗性占5%,自律性6%,其余性格特征均小于2%的閾值,所以不作為考慮因素。
以此為例可以找到任意一個學習表現(xiàn)數(shù)據(jù)與其余性格特征之間的相關(guān)性關(guān)系,也可以找到任意一個性格特征與其余學習表現(xiàn)數(shù)據(jù)之間的相關(guān)性關(guān)系。
針對步驟S42,可以通過以下方式實現(xiàn):關(guān)聯(lián)規(guī)則法將不同的性格特征關(guān)聯(lián)起來,當個體表現(xiàn)出一種性格特征時,則可推斷其他性格特征,關(guān)聯(lián)規(guī)則法數(shù)據(jù)之間的簡單的聯(lián)系規(guī)則,是指數(shù)據(jù)之間的相互依賴關(guān)系,比如性格特征敢為性與遲到的次數(shù),早退的次數(shù),損儀器數(shù)量多少,作業(yè)誠信度,上課玩手機,上課睡覺,儀器賠償及時與否這些學習表現(xiàn)數(shù)據(jù)有著很強的關(guān)聯(lián)特征,也就是當這些學習表現(xiàn)數(shù)據(jù)有著很高的特點是,則被測者是有著敢為性的性格特征的。對于遲到的次數(shù)這一學習表現(xiàn)數(shù)據(jù),與其相關(guān)聯(lián)的性格特征為敢為性,恃強性,穩(wěn)定性,有恒性,實驗性,自律性。當被測者遲到次數(shù)較多時,我們認為他的性格特征與敢為性,恃強性,穩(wěn)定性,有恒性,實驗性,自律性有關(guān)。
補充用這種方法的核心步驟
針對步驟S43,可以通過以下方式實現(xiàn),首先數(shù)學模型,用最小二乘法估計確定同類型的學習表現(xiàn)數(shù)據(jù)與某些性格特征之間的定量關(guān)系式,采用逐步回歸、向前回歸和向后回歸方法計算某個學習表現(xiàn)數(shù)據(jù)與某個性格特征的相關(guān)性參數(shù)來判斷某個學習表現(xiàn)數(shù)據(jù)與某個性格特征之間的影響是否顯著。具體地來說,利用一組同類型學習表現(xiàn)數(shù)據(jù),確定其與某些性格特征之間的定量關(guān)系式,即建立數(shù)學模型用最小二乘法估計其中的相關(guān)性參數(shù);在許多學習表現(xiàn)數(shù)據(jù)共同影響著一個性格特征的關(guān)系中,用逐步回歸、向前回歸和向后回歸方法判斷哪個(或哪些)學習表現(xiàn)數(shù)據(jù)的影響是顯著的,哪些學習表現(xiàn)數(shù)據(jù)的影響是不顯著的,將影響顯著的學習表現(xiàn)數(shù)據(jù)帶入模型中,而剔除影響不顯著的變量;用新的數(shù)據(jù)對這些關(guān)系式的可信程度進行檢驗,檢驗結(jié)果在誤差允許范圍內(nèi)即可利用所求的關(guān)系式對新的學習表現(xiàn)數(shù)據(jù)得到的性格特征進行預測或控制。
比如:對于無故曠課,多次請假,遲到,早退,上課說話,上課玩手機,上課吃東西,上課看與學科內(nèi)容無關(guān)的書,上課睡覺,上課坐姿不端正,預習答題狀況是否良好,答題用時長短,預習答題時間的早晚,實驗前儀器樣品狀況確認與否,破損儀器數(shù)量多少,破損儀器時間,儀器破損上報情況,儀器賠償及時與否,儀器歸放情況,實驗完成用時長短,實驗過程操作規(guī)范程度,實驗過程中的紀律遵守情況,試驗后衛(wèi)生打掃情況,原始實驗數(shù)據(jù)準確度,原始實驗數(shù)據(jù)有無抄襲現(xiàn)象,實驗報告的質(zhì)量高低,作業(yè)成績,作業(yè)用時,上交時間,上交次數(shù),作業(yè)誠信,考試成績,考試用時,考試誠信等學習表現(xiàn)數(shù)據(jù),這些共同影響著敢為性這一性格特征,將這些數(shù)據(jù)用逐步回歸、向前回歸和向后回歸方法計算這些學習表現(xiàn)數(shù)據(jù)與敢為性這一性格特征的相關(guān)性參數(shù),從而判斷這些學習表現(xiàn)數(shù)據(jù)與敢為性這一性格特征之間的影響是否顯著,經(jīng)計算相關(guān)性參數(shù),發(fā)現(xiàn)只有遲到的次數(shù),早退的次數(shù),損儀器數(shù)量多少,作業(yè)誠信度,上課玩手機,上課睡覺,儀器賠償及時與否存在明顯的相關(guān)關(guān)系,其余學習表現(xiàn)數(shù)據(jù)并未有顯著相關(guān)關(guān)系,所以僅考慮遲到的次數(shù),早退的次數(shù),損儀器數(shù)量多少,作業(yè)誠信度,上課玩手機,上課睡覺,儀器賠償及時與否與敢為性這一性格特征之間的相關(guān)性。同理,我們可以做出任意一個性格特征所對應的與其顯著的學習表現(xiàn)數(shù)據(jù)。
針對步驟S44,BP神經(jīng)網(wǎng)絡法對所有的學習表現(xiàn)數(shù)據(jù)與性格特征綜合分析,采用最速下降法,沿距離梯度下降的方向求解極小值,經(jīng)過不斷的迭代與修正得出所有的學習表現(xiàn)數(shù)據(jù)與性格特征之間存在的最短距離,最端距離代表與學習表現(xiàn)數(shù)據(jù)相關(guān)的性格特征。具體地來說,將所有的學習表現(xiàn)數(shù)據(jù)與性格特征綜合分析,由之前算法可以得到所有的數(shù)據(jù)與特征之間存在的距離,并且相關(guān)性越近,距離越短,所以在綜合分析時,我們采用最速下降法,沿距離梯度下降的方向求解極小值,經(jīng)過不斷的迭代與修正得到對于某一性格特征與其相關(guān)的學習表現(xiàn)數(shù)據(jù)所產(chǎn)生的“最短距離方式”,也可以求出對與某一學習表現(xiàn)數(shù)據(jù)與其對應的性格特征產(chǎn)生的“最短距離方式”,比如對于敢為性,所產(chǎn)生的最短距離代表的學習表現(xiàn)數(shù)據(jù)為遲到的次數(shù),早退的次數(shù),損儀器數(shù)量多少,作業(yè)誠信度,上課玩手機,上課睡覺,儀器賠償及時與否。對于遲到的次數(shù)這一學習表現(xiàn)數(shù)據(jù),所產(chǎn)生的最短距離代表的性格特征為敢為性,恃強性,穩(wěn)定性,有恒性,實驗性,自律性。
針對步驟S45,可以通過以下方式實現(xiàn),比如,我們已經(jīng)得到各個學習表現(xiàn)數(shù)據(jù)與性格特征之間的概率,判斷取哪些學習表現(xiàn)數(shù)據(jù)與其中某一個性格特征合適。我們想得到獨立性相關(guān)的學習表現(xiàn)數(shù)據(jù),則獨立性為決策點,這些學習表現(xiàn)數(shù)據(jù)為狀態(tài)節(jié)點,并標明每一數(shù)據(jù)特征與其之間的概率,用遞歸式對數(shù)進行修剪,得到最優(yōu)的路徑。我們得到與獨立性相關(guān)的學習表現(xiàn)數(shù)據(jù)為早退,上課看與學科內(nèi)容無關(guān)的書,上課睡覺,上課坐姿不端正,預習答題時間的早晚,儀器歸放情況,實驗過程操作規(guī)范程度這些學習表現(xiàn)數(shù)據(jù)有著最優(yōu)的關(guān)系,其將學習表現(xiàn)數(shù)據(jù)分類,將不同類型學習表現(xiàn)數(shù)據(jù)更清楚地表示出來。
比如這樣的:
針對步驟S46,可以通過以下方式實現(xiàn),其能夠建立起與相關(guān)的學習算法有關(guān)的監(jiān)督學習模型,可以根據(jù)有限的樣本信息在模型的復雜性(即對特定訓練樣本的學習精度)和學習能力(即無錯誤地識別任意樣本的能力)之間尋求最佳折中,以求獲得最好的推廣能力。比如:我們有很多學習表現(xiàn)數(shù)據(jù),以及提煉出的性格特征,確定他們之間的映射關(guān)系,與神經(jīng)網(wǎng)絡類似,計算某一性格特征與其相關(guān)的學習表現(xiàn)數(shù)據(jù)所產(chǎn)生的“最短距離方式”,經(jīng)過不斷的迭代運算,最終得到比如對于獨立性這一性格特征來說,與其相關(guān)性較強的學習表現(xiàn)數(shù)據(jù)為早退,上課看與學科內(nèi)容無關(guān)的書,上課睡覺,上課坐姿不端正,預習答題時間的早晚,儀器歸放情況,實驗過程操作規(guī)范程度。
二、非負矩陣分解
把一個學期10名同學的請假、曠課、遲到、上課說話和上課睡覺的數(shù)據(jù)匯總為一個訓練集,統(tǒng)計數(shù)據(jù)如表1所示:
表1訓練集
問題描述:就是建立100個不同類型的定量參數(shù)和10個另外類型的定量參數(shù)的相關(guān)關(guān)系和強度。那100個參數(shù)之間和那10個參數(shù)是多對多關(guān)系。但是不知道具體的相關(guān)關(guān)系和強度。有數(shù)據(jù)集用來學習和驗證,相關(guān)關(guān)系和強度穩(wěn)定后進行應用。
前五列數(shù)據(jù)屬于100個不同類型的定量參數(shù),后四列數(shù)據(jù)屬于10個另外類型的定量參數(shù),找前五列數(shù)據(jù)和后四列數(shù)據(jù)的相關(guān)關(guān)系和強度。
要求:進行一個聚類分析。只需要寫清過程,不需要具體計算。
問題分析:根據(jù)問題描述,可以使用非負矩陣分解算法來解決這個問題。
具體分析過程:
1.非負矩陣分解算法發(fā)展歷史
它是一種新的矩陣分解算法,最早是1994年由Paatero和Tapper等人提出的,當時這個算法叫正矩陣分解,直到1999年, Lee和Seung在Nature上發(fā)表了他們對矩陣分解的研究,才逐漸引起廣大研究學者的興趣,發(fā)展到現(xiàn)在,矩陣分解方法已經(jīng)應用到很多領域。
2.矩陣分解理論
假定給定一個原數(shù)據(jù),用非負的數(shù)據(jù)矩陣(差異矩陣)進行表示,將其分解為兩個非負矩陣(基矩陣)和(系數(shù)矩陣)的乘積,并且乘積要盡可能的逼近原來的矩陣,即(k << m, n)。非負矩陣分解模型可以表示為以下的優(yōu)化問題:
需要使用一下迭代公式來求得W和H
3.非負矩陣分解算法應用到以上問題中
(1)首先是原始矩陣的構(gòu)造:在這個問題中,我們構(gòu)建矩陣數(shù)據(jù)矩陣(屬性-對象矩陣),10行5列的數(shù)據(jù)矩陣。如下所示:
其中,一行代表一名學生(對象),一列代表一個屬性(是否請假、無故曠課、遲到、上課說話、上課睡覺)。
(2)對這個矩陣進行矩陣分解,其中k值選擇為4,W和H用隨機初始化,其中每個值都在0-1之間。W和H按照上面的迭代公式進行求解,迭代次數(shù)設置為1000。
(3)矩陣分解之后,用矩陣W和H進行聚類分析。
迭代1000次之后,得到基矩陣和系數(shù)矩陣
基矩陣:
由系數(shù)矩陣可得到前五列和后四列關(guān)系,權(quán)重可以看作是強度。
三、來源于創(chuàng)青春比賽
1、apriori關(guān)聯(lián):
>library(arules)
>xingge=read.csv("guanlian.csv",header=T)
#值得注意的是,"guanlian.csv"從一個數(shù)值矩陣轉(zhuǎn) #換為0-1矩陣,再從0-1矩陣轉(zhuǎn)為邏輯型矩陣,即 #0:FALSE,1:TRUE。
[1]"QJ" "KK" "CD" "SH" "SJ""Q1"
>data(list=xingge)
Therewere 30 warnings (use warnings() to see them)
>mode(xingge)
[1]"list"
>rules=apriori(xingge,parameter=list(support=0.3,confidence=0.4))
Parameterspecification:
confidence minval smax aremaval originalSupport maxtime support minlen
0.40.11 none FALSETRUE50.31
maxlen targetext
10rules FALSE
Algorithmiccontrol:
filter tree heap memopt load sort verbose
0.1 TRUE TRUEFALSE TRUE2TRUE
Absoluteminimum support count: 3
set itemappearances ...[0 item(s)] done [0.00s].
settransactions ...[9 item(s), 10 transaction(s)] done [0.00s].
sortingand recoding items ... [9 item(s)] done [0.00s].
creatingtransaction tree ... done [0.00s].
checkingsubsets of size 1 2 3 4 5 6 done [0.00s].
writing... [320 rule(s)] done [0.00s].
creatingS4 object... done [0.00s].
>summary(rules)
set of320 rules
rulelength distribution (lhs + rhs):sizes
123456
748108 106456
Min. 1st Qu.MedianMean 3rd Qu.Max.
1.0003.0003.0003.4754.0006.000
summaryof quality measures:
supportconfidencelift
Min.:0.3000Min.:0.4000Min.:0.8163
1st Qu.:0.30001st Qu.:0.69171st Qu.:1.0000
Median :0.4000Median :1.0000Median :1.0000
Mean:0.4363Mean:0.8366Mean:1.0489
3rd Qu.:0.50003rd Qu.:1.00003rd Qu.:1.0179
Max.:1.0000Max.:1.0000Max.:1.4286
mininginfo:
data ntransactions support confidence
xingge100.30.4
>frequentsets=eclat(xingge,parameter=list(support=0.3,maxlen=10))
Eclat
parameterspecification:
tidLists support minlen maxlentargetext
FALSE0.3110 frequent itemsets FALSE
algorithmiccontrol:
sparse sort verbose
7-2TRUE
Absoluteminimum support count: 3
createitemset ...
settransactions ...[9 item(s), 10 transaction(s)] done [0.00s].
sortingand recoding items ... [9 item(s)] done [0.00s].
creatingbit matrix ... [9 row(s), 10 column(s)] done [0.00s].
writing... [111 set(s)] done [0.00s].
CreatingS4 object... done [0.00s].
>inspect(frequentsets[1:10])
itemssupport
[1]{QJ=TURE,KK=TURE,CD=TURE,SH=TURE,Q1=TURE} 0.3
[2]{QJ=TURE,KK=TURE,SH=TURE,Q1=TURE}0.3
[3]{KK=TURE,CD=TURE,SH=TURE,Q1=TURE}0.3
[4]{QJ=TURE,KK=TURE,CD=TURE,Q1=TURE}0.3
[5]{QJ=TURE,KK=TURE,Q1=TURE}0.3
[6]{KK=TURE,CD=TURE,Q1=TURE}0.3
[7]{KK=TURE,SH=TURE,Q1=TURE}0.3
[8]{QJ=TURE,CD=TURE,SH=TURE,Q1=TURE}0.3
[9]{QJ=TURE,SH=TURE,Q1=TURE}0.3
[10] {CD=TURE,SH=TURE,Q1=TURE}0.3
2、Bayes
>data<-matrix(c("A1","B2","B3","B4","B5","no",
+"B1","A2","B3","B4","B5","no",
+"B1","B2","B3","B4","A5","no",
+"B1","B2","B3","A4","B5","no"),byrow=TRUE,
+nrow=4,ncol=6)
> data
[,1] [,2] [,3] [,4] [,5][,6]
[1,] "A1" "B2" "B3" "B4""B5" "no"
[2,] "B1" "A2" "B3" "B4""B5" "no"
[3,] "B1" "B2" "B3" "B4""A5" "no"
[4,] "B1" "B2" "B3" "A4""B5" "no"
> library("e1071")
> library("foreign")
>prior.yes=sum(data[,6]=="yes")/length(data[,6])
> prior.yes
[1] 0
>prior.no=sum(data[,6]=="no")/length(data[,6])
> prior.no
[1] 1
(第一種函數(shù))
> naive.bayes.prediction<-function(condition.vec){
+G.yes<-sum((data[,1]==condition.vec[1])&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+sum((data[,1]==condition.vec[2])&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+sum((data[,1]==condition.vec[3])&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+sum((data[,1]==condition.vec[4])&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+sum((data[,1]==condition.vec[5])&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+prior.yes
+G.no<-sum((data[,1]==condition.vec[1])&(data[,5]=="no"))/sum(data[,5]=="no")*
+sum((data[,1]==condition.vec[2])&(data[,5]=="no"))/sum(data[,5]=="no")*
+sum((data[,1]==condition.vec[3])&(data[,5]=="no"))/sum(data[,5]=="no")*
+sum((data[,1]==condition.vec[4])&(data[,5]=="no"))/sum(data[,5]=="no")*
+sum((data[,1]==condition.vec[5])&(data[,5]=="no"))/sum(data[,5]=="no")*
+prior.no
+return(list(post.pr.yes=G.yes,post.pr.no=G.no,prediction=ifelse(G.yes>=G.yes,"yes","no")))
+}
>naive.bayes.prediction(c("A1","B2","B3","B4","B5"))
$post.pr.yes
[1] NaN
$post.pr.no
[1] NaN
$prediction
[1] NA
>naive.bayes.prediction(c("A1","A2","A3","A4","A5"))
$post.pr.yes
[1] NaN
$post.pr.no
[1] NaN
$prediction
[1] NA
(第二種函數(shù))
>naive.bayes.prediction<-function(condition.vec){
+ + +G.yes<-sum((data[,1]=="A1")&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+ + +sum((data[,1]=="A2")&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+ + +sum((data[,1]=="A3")&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+ + +sum((data[,1]=="A4")&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+ + +sum((data[,1]=="A5")&(data[,5]=="yes"))/sum(data[,5]=="yes")*
+ + +prior.yes
+ + +G.no<-sum((data[,1]=="B1")&(data[,5]=="no"))/sum(data[,5]=="no")*
+ + +sum((data[,1]=="B2")&(data[,5]=="no"))/sum(data[,5]=="no")*
+ + +sum((data[,1]=="B3")&(data[,5]=="no"))/sum(data[,5]=="no")*
+ + +sum((data[,1]=="B4")&(data[,5]=="no"))/sum(data[,5]=="no")*
+ + +sum((data[,1]=="B5")&(data[,5]=="no"))/sum(data[,5]=="no")*
+ + +prior.no
+ + +return(list(post.pr.yes=G.yes,post.pr.no=G.no,prediction=ifelse(G.yes>=G.yes,"yes","no")))
+}
>naive.bayes.prediction(c("A1","A2","A3","A4","A5"))
Error in ++G.yes <- sum((data[, 1] == "A1") &(data[, 5] == "yes"))/sum(data[,:
找不到對象'G.yes'
>naive.bayes.prediction(c("A1","B2","B3","B4","B5"))
Error in ++G.yes <- sum((data[, 1] == "A1") &(data[, 5] == "yes"))/sum(data[,:
找不到對象'G.yes'
3、K-means:
> data(iris)
> head(iris,n=6)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
15.13.51.40.2setosa
24.93.01.40.2setosa
34.73.21.30.2setosa
44.63.11.50.2setosa
55.03.61.40.2setosa
65.43.91.70.4setosa
> install.packages("fpc")
> library(fpc)#估計輪廓系數(shù)
>norm<-function(x){(x-mean(x))/(sqry(var(x)))}
>norm<-function(x){(x-mean(x))/(sqrt(var(x)))}
> raw.data<-iris[,1:4]
>norm.data<-data.frame(sl=norm(raw.data[,1]),sw=(raw.data[,2]),pl=(raw.data[,3]),pw=(raw.data[,4]))
>k<-2:10
> round<-40
> rst<-sapply(k,function(i)#輪廓系數(shù)
+ {
+ print(paste("k=",i))
+ mean(sapply(1:round,function(r){
+ print(paste("Round",r))
+ result<-kmeans(norm.data,i)
+stats<-cluster.stats(dist(norm.data),result$cluster)
+ stats$avg.silwidth
+ }))
+ })
[1] "k= 2"
[1] "Round 1"
[1] "Round 2"
[1] "Round 3"
[1] "Round 4"
[1] "Round 5"
[1] "Round 6"
[1] "Round 7"
[1] "Round 8"
[1] "Round 9"
[1] "Round 10"
[1] "Round 11"
[1] "Round 12"
[1] "Round 13"
[1] "Round 14"
[1] "Round 15"
[1] "Round 16"
[1] "Round 17"
[1] "Round 18"
[1] "Round 19"
[1] "Round 20"
[1] "Round 21"
[1] "Round 22"
[1] "Round 23"
[1] "Round 24"
[1] "Round 25"
[1] "Round 26"
[1] "Round 27"
[1] "Round 28"
[1] "Round 29"
[1] "Round 30"
[1] "Round 31"
…….
> plot(k,rst,type='l',main='輪廓系數(shù)與k的關(guān)系',ylab='輪廓系數(shù)')
> plot(k,rst)
> old.par<-par(mfrow=c(1,2))
> k=2
> clu<-kmeans(norm.data,k)
>mds=cmdscale(dist(norm.data,method="euclidean"))
> plot(mds,col=clu$cluster,main='kmeans聚類k=2',pch=19)
> plot(mds,col=iris$Species,main='原始聚類',pch=19)
> par(old.par)
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調(diào)研數(shù)據(jù)中的深度應用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03