0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用Python進行線性回歸 用Python中的mlxtend包實現(xiàn)關(guān)聯(lián)規(guī)則挖掘

冬至子 ? 來源:yvonxin ? 作者:yvonxin ? 2023-08-09 14:37 ? 次閱讀

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ù)測目標),建立回歸方程,預(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ù))和對矩陣求導的函數(shù)dj,求導的結(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)梯度越來越大的問題。

圖片

圖四 每次迭代之后梯度反而上升

當我修改eta從0.01至0.000001后下降的數(shù)據(jù)恢復正常,在迭代后逐漸減小。

圖片

圖五 在修改公式中的eta后數(shù)據(jù)恢復正常

2.結(jié)果時間對比

圖片

圖六 結(jié)果時間對比

3.結(jié)果評估

在回歸任務(wù)(對連續(xù)值的預(yù)測)中,常見的評估指標(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,說明估計的準確性“確定系數(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ù),當引入新的變量時可以提高確定系數(shù),我們引入修正系數(shù)相當于給變量個數(shù)的增加添加懲罰項。

圖片

圖八 使用Statsmodels.OLS的一元線性回歸結(jié)果可視化

從圖片中來看,Const 和 wt 分別意味截距和斜率。

圖片

圖九 DIY一元線性回歸結(jié)果

圖片

圖十 多元線性回歸summary

圖片

圖十一 多元線性回歸參數(shù)列表

圖片

圖十二 根據(jù)DIY多元數(shù)據(jù)模型預(yù)測出出來的房價(部分)

圖片

圖十三 DIY多元數(shù)據(jù)評估指標

對比來看,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)分析(部分)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SSR
    SSR
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    17696
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4758

    瀏覽量

    84293
  • MSE
    MSE
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6558
  • 線性回歸
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    4288
  • SST仿真
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1027
收藏 人收藏

    評論

    相關(guān)推薦

    python數(shù)據(jù)分析基礎(chǔ)之使用statasmodels進行線性回歸

    python 數(shù)據(jù)分析基礎(chǔ) day16-使用statasmodels進行線性回歸
    發(fā)表于 06-19 11:22

    基于用戶興趣導向的關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘

    本文在針對關(guān)聯(lián)規(guī)則的Apriori 算法的基礎(chǔ)上,為了提高用戶數(shù)據(jù)挖掘的人機交互性能,解決關(guān)聯(lián)規(guī)則挖掘
    發(fā)表于 08-26 11:41 ?11次下載

    關(guān)聯(lián)規(guī)則挖掘在數(shù)據(jù)錄入、校對系統(tǒng)的應(yīng)用

    本文介紹了關(guān)聯(lián)規(guī)則挖掘在數(shù)據(jù)錄入、校對系統(tǒng)的設(shè)計思路、體系結(jié)構(gòu)和實現(xiàn)要點。關(guān)鍵詞:數(shù)據(jù)挖掘關(guān)聯(lián)
    發(fā)表于 09-03 11:55 ?6次下載

    基于最大模式的關(guān)聯(lián)規(guī)則挖掘算法研究

    提出了一種基于最大模式的關(guān)聯(lián)規(guī)則挖掘算法,探討了它的實現(xiàn)步驟,最后通過實例說明它是數(shù)據(jù)挖掘中一種有效的關(guān)
    發(fā)表于 09-16 10:44 ?12次下載

    基于MapReduce的并行關(guān)聯(lián)規(guī)則挖掘算法

    挖掘、分類、聚集、離群點檢測等。關(guān)聯(lián)規(guī)則挖掘是最重要的數(shù)據(jù)挖掘任務(wù)之一,由Agrawal等人提出,其目的是發(fā)現(xiàn)事務(wù)(項)之間存在的隱含
    發(fā)表于 01-10 15:22 ?1次下載
    基于MapReduce的并行<b class='flag-5'>關(guān)聯(lián)</b><b class='flag-5'>規(guī)則</b><b class='flag-5'>挖掘</b>算法

    8種Python實現(xiàn)線性回歸的方法對比分析_哪個方法更好?

    說到如何用Python執(zhí)行線性回歸,大部分人會立刻想到sklearn的linear_model,但事實是,Python至少有8種執(zhí)行
    的頭像 發(fā)表于 06-28 09:53 ?4320次閱讀

    Python做幾個表情

    今天制作表情用到的技術(shù)還是之前提到的Turtle庫,可以從之前的文章除了畫佩奇我們還要玩點更高級的,去學習Turtle的常用語法,然后就是PIL庫,之前通過這篇文章:Python騷操作|P
    的頭像 發(fā)表于 02-11 11:13 ?5132次閱讀

    Logistic回歸數(shù)學推導以及python實現(xiàn)

    Logistic回歸數(shù)學推導以及python實現(xiàn)
    發(fā)表于 02-25 14:48 ?7次下載

    Python寫網(wǎng)絡(luò)爬蟲

    Python寫網(wǎng)絡(luò)爬蟲的方法說明。
    發(fā)表于 06-01 11:55 ?21次下載

    在Anaconda安裝pythonseaborn

    在Anaconda安裝pythonseaborn(現(xiàn)代電源技術(shù)題庫)-在Anaconda安裝python
    發(fā)表于 09-18 15:01 ?5次下載
    在Anaconda<b class='flag-5'>中</b>安裝<b class='flag-5'>python</b><b class='flag-5'>包</b>seaborn

    Python學習科學編程

    Python學習科學編程,Python經(jīng)典教材。
    發(fā)表于 03-09 15:00 ?0次下載

    python數(shù)據(jù)挖掘與機器學習

    python數(shù)據(jù)挖掘與機器學習 Python是一個非常流行的編程語言,被廣泛用于數(shù)據(jù)挖掘和機器學習領(lǐng)域。在本篇文章,我們將探討
    的頭像 發(fā)表于 08-17 16:29 ?1249次閱讀

    Python SDK的使用

    之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章: 超詳細Python安裝指南 進行安裝。 (可選1) 如果你P
    的頭像 發(fā)表于 10-30 15:51 ?695次閱讀
    <b class='flag-5'>Python</b> SDK<b class='flag-5'>包</b>的使用

    線性回歸模型的基礎(chǔ)知識

    詳細Python安裝指南 進行安裝。 **(可選1) **如果你Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda: Python
    的頭像 發(fā)表于 10-31 10:54 ?483次閱讀
    <b class='flag-5'>線性</b><b class='flag-5'>回歸</b>模型的基礎(chǔ)知識

    python變量命名規(guī)則

    Python是一種高級編程語言,廣泛應(yīng)用于軟件開發(fā)、數(shù)據(jù)分析和科學計算等領(lǐng)域。在Python,變量是用來存儲數(shù)據(jù)的容器,它們具有名稱以及與之關(guān)聯(lián)的值。然而,變量的命名并不是隨意的,而
    的頭像 發(fā)表于 11-23 15:44 ?1125次閱讀