1.簡單線性回歸
讀取Case1.csv,其中wt列為病人體重,volume列為病人腎臟容積,試建立回歸方程,用病人體重預(yù)測病人腎臟容積。
2.多元線性回歸
讀取Case2.csv,其中CRIM列為城鎮(zhèn)人均犯罪率,ZN為住宅用地超過25,000平方英尺以上的比例,INDUS為城鎮(zhèn)非零售商用土地的比例(即工業(yè)或農(nóng)業(yè)等用地比例),CHAS為查爾斯河虛擬變量(邊界是河,則為1;否則為0),NOX為一氧化氮濃度(百萬分之幾),RM為每個住宅的平均房間數(shù),AGE為1940 年之前建成的自用房屋比例,DIS為到波士頓五個中心區(qū)域的加權(quán)距離(與繁華鬧市的距離,區(qū)分郊區(qū)與市區(qū)),RAD為高速公路通行能力指數(shù)(輻射性公路的靠近指數(shù)),TAX為每10,000美元的全額財產(chǎn)稅率,PTRATIO為按鎮(zhèn)劃分的城鎮(zhèn)師生比例,B為1000(Bk-0.63)^2其中Bk是城鎮(zhèn)黑人比例,LSTAT為人口中地位低下者的百分比,MEDV為自有住房的中位數(shù)價值(單位:千美元)。以MEDV為因變量(預(yù)測目標(biāo)),建立回歸方程,預(yù)測房價,并評價模型性能。
3.關(guān)聯(lián)規(guī)則挖掘
讀取Case3.csv,試挖掘出支持度>=0.02,置信度>=0.35的關(guān)聯(lián)規(guī)則。
4.梯度下降法實現(xiàn)多元線性回歸(選做)
自行實現(xiàn)梯度下降法,實現(xiàn)多元線性回歸中的參數(shù)計算。記錄自己實現(xiàn)的梯度下降法的運算時間,與statsmodels中的方法進行比較。
5.Apriori算法實現(xiàn)關(guān)聯(lián)規(guī)則挖掘(選做)
自行實現(xiàn)Apriori算法,實現(xiàn)關(guān)聯(lián)規(guī)則挖掘。記錄自己實現(xiàn)的Apriori算法的運算時間,與mlxtend中的方法進行比較。
三、實驗過程及步驟
1.一元線性回歸&多元線性回歸
1.0實現(xiàn)思路
一元線性回歸近似于用一條直線來擬合數(shù)據(jù)和結(jié)果,y = a·x + b。我們會希望數(shù)據(jù)的分布和擬合曲線之間的誤差越小而且符合正態(tài)分布。
1.1基于Statsmodels.OLS的一元線性回歸
在進行多元回歸的時候需要將excel中多列參數(shù)值讀到stark中,然后再調(diào)用相關(guān)函數(shù)。
1.2 DIY一元線性回歸
定義矩陣乘法函數(shù)J(梯度下降函數(shù))和對矩陣求導(dǎo)的函數(shù)dj,求導(dǎo)的結(jié)果決定了x的方向。
具體實現(xiàn):使用numpy包中的dot函數(shù)實現(xiàn)點乘
2.相關(guān)分析
2.1將數(shù)據(jù)庫中數(shù)據(jù)讀成購物清單的格式
圖二 格式轉(zhuǎn)換
2.2遍歷得到所有商品,放到C1中;
2.3假定支持度是0.2,計算每個商品的支持度(出現(xiàn)的頻率),如果支持度超過0.2則放入L1層;
2.4將L1層中商品進行兩兩組合,得到C2,計算C2中每個組合的支持度,將支持度大于0.02的組合放入L2層;最終得到的L就類似是一個柜子,如下圖所示,最后通過遍歷可以得到支持度大于0.2的組合;
圖三 實驗結(jié)果效果圖
四、實驗結(jié)果及分析
1.出現(xiàn)的問題
·在使用自己寫得多元線性回歸遞歸的時候出現(xiàn)梯度越來越大的問題。
圖四 每次迭代之后梯度反而上升
當(dāng)我修改eta從0.01至0.000001后下降的數(shù)據(jù)恢復(fù)正常,在迭代后逐漸減小。
圖五 在修改公式中的eta后數(shù)據(jù)恢復(fù)正常
2.結(jié)果時間對比
圖六 結(jié)果時間對比
3.結(jié)果評估
在回歸任務(wù)(對連續(xù)值的預(yù)測)中,常見的評估指標(biāo)(Metric)有:平均絕對誤差(Mean Absolute Error,MAE)、均方誤差(Mean Square Error,MSE)、均方根誤差(Root Mean Square Error,RMSE)和平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE),其中用得最為廣泛的就是MAE和MSE。
圖七 一元線性回歸summary
從圖中我們可以看出樣本數(shù)量(No.Observation)為24;
殘差自由度 (DF Residuals,殘差指的是實際觀察值與估計值之間的差)為22,;
參數(shù)數(shù)量(DF Residuals)為1;
確定系數(shù) (R-squared,說明估計的準(zhǔn)確性“確定系數(shù)”是通過數(shù)據(jù)的變化來表征一個擬合的好壞。由上面的表達式可以知道“確定系數(shù)”的正常取值范圍為[0 1],越接近1,表明方程的變量對y的解釋能力越強,這個模型對數(shù)據(jù)擬合的也較好)為0.986,確定系數(shù)與SSR(Sum of squares of the regression,即預(yù)測數(shù)據(jù)與原始數(shù)據(jù)均值之差的平方和)和SST(Total sum of squares,即原始數(shù)據(jù)和均值之差的平方和)相關(guān),R-squared = SSR/SST;
修正確定系數(shù)( Adj.R-squared)為0.981,這里修正確定系數(shù)公式為,p為模型中變量的個數(shù),當(dāng)引入新的變量時可以提高確定系數(shù),我們引入修正系數(shù)相當(dāng)于給變量個數(shù)的增加添加懲罰項。
圖八 使用Statsmodels.OLS的一元線性回歸結(jié)果可視化
從圖片中來看,Const 和 wt 分別意味截距和斜率。
圖九 DIY一元線性回歸結(jié)果
圖十 多元線性回歸summary
圖十一 多元線性回歸參數(shù)列表
圖十二 根據(jù)DIY多元數(shù)據(jù)模型預(yù)測出出來的房價(部分)
圖十三 DIY多元數(shù)據(jù)評估指標(biāo)
對比來看,DIY模型效果不是很好呀,這里的R2即左邊多元線性回歸summary中的R-squared,R2 是多元回歸中的回歸平方和占總平方和的比例,它是度量多元回歸方程中擬合程度的一個統(tǒng)計量,反映了在因變量y的變差中被估計的回歸方程所解釋的比例。R2 越接近1,表明回歸平方和占總平方和的比例越大,回歸線與各觀測點越接近,用x的變化來解釋y值變差的部分就越多,回歸的擬合程度就越好。
圖十二 基于mlxtend.frequent_patterns的關(guān)聯(lián)分析
圖十三 DIY關(guān)聯(lián)分析(部分)
-
SSR
+關(guān)注
關(guān)注
0文章
84瀏覽量
17827 -
python
+關(guān)注
關(guān)注
56文章
4811瀏覽量
85076 -
MSE
+關(guān)注
關(guān)注
0文章
6瀏覽量
6586 -
線性回歸
+關(guān)注
關(guān)注
0文章
41瀏覽量
4317 -
SST仿真
+關(guān)注
關(guān)注
0文章
2瀏覽量
1074
發(fā)布評論請先 登錄
相關(guān)推薦
python數(shù)據(jù)分析基礎(chǔ)之使用statasmodels進行線性回歸
基于用戶興趣導(dǎo)向的關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘
關(guān)聯(lián)規(guī)則挖掘在數(shù)據(jù)錄入、校對系統(tǒng)中的應(yīng)用
基于最大模式的關(guān)聯(lián)規(guī)則挖掘算法研究
基于MapReduce的并行關(guān)聯(lián)規(guī)則挖掘算法
![基于MapReduce的并行<b class='flag-5'>關(guān)聯(lián)</b><b class='flag-5'>規(guī)則</b><b class='flag-5'>挖掘</b>算法](https://file.elecfans.com/web2/M00/49/8B/poYBAGKhwMaAYyQAAAAUlfvGltE089.jpg)
8種用Python實現(xiàn)線性回歸的方法對比分析_哪個方法更好?
用Python做幾個表情包
Logistic回歸數(shù)學(xué)推導(dǎo)以及python實現(xiàn)
在Anaconda中安裝python包seaborn
![在Anaconda<b class='flag-5'>中</b>安裝<b class='flag-5'>python</b><b class='flag-5'>包</b>seaborn](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論