python線性回歸試驗(yàn)_第1頁(yè)
python線性回歸試驗(yàn)_第2頁(yè)
python線性回歸試驗(yàn)_第3頁(yè)
python線性回歸試驗(yàn)_第4頁(yè)
python線性回歸試驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

實(shí)驗(yàn)算法python線性回歸實(shí)驗(yàn)【實(shí)驗(yàn)名稱】Python線性回歸實(shí)驗(yàn)【實(shí)驗(yàn)要求】掌握Python線性回歸模型應(yīng)用過(guò)程,根據(jù)模型要求進(jìn)行數(shù)據(jù)預(yù)處理,建模,評(píng)價(jià)與應(yīng)用;【背景描述】線性回歸是利用數(shù)理統(tǒng)計(jì)中回歸分析,來(lái)確定兩種或兩種以上變量間相互依賴的定量關(guān)系的一種統(tǒng)計(jì)分析方法,運(yùn)用十分廣泛。其表達(dá)形式為y=w'x+e,e為誤差服從均值為0的正態(tài)分布?!局R(shí)準(zhǔn)備】了解線性回歸模型的使用場(chǎng)景,數(shù)據(jù)標(biāo)準(zhǔn)。了解Python/Spark數(shù)據(jù)處理一般方法。了解spark模型調(diào)用,訓(xùn)練以及應(yīng)用方法【實(shí)驗(yàn)設(shè)備】Windows或Linux操作系統(tǒng)的計(jì)算機(jī)。部署Python,本實(shí)驗(yàn)提供centos6.8環(huán)境?!緦?shí)驗(yàn)說(shuō)明】采用成績(jī)數(shù)據(jù)集作為算法數(shù)據(jù),對(duì)模型進(jìn)行訓(xùn)練和回歸?!緦?shí)驗(yàn)環(huán)境】Pyrhon3.X,實(shí)驗(yàn)在命令行python中進(jìn)行,或者把代碼寫在py腳本,由于本次為實(shí)驗(yàn),以學(xué)習(xí)模型為主,所以在命令行中逐步執(zhí)行代碼,以便更加清晰地了解整個(gè)建模流程。【實(shí)驗(yàn)步驟】第一步:?jiǎn)?dòng)python:

命令行鍵入python,啟動(dòng)python終端第二步:導(dǎo)人用到的包,并讀取數(shù)據(jù):.導(dǎo)入包:importnumpyasnpimportpandasaspdimportstatsmodels.formula.apiassmfimportscipy.讀取數(shù)據(jù)并隨機(jī)打亂,文件路徑為:/opt/algorithm/scoreset/scoregather.txtdf=pd.read_csv("/opt/algorithm/scoreset/scoregather.txt",index_col=0,header=0).sample(frac=1)⑶.展示數(shù)據(jù)df.head()mpDirtnumpyasnpinportpandssmspdimportstatsmodels.formula?^pimssmfimportscipy#餒眼防指并演機(jī)打走.sampIfrac-1]d1-pd.read_csv(i7opt/a'lgDrithni/scoreset/scoraqath9r.t:<ti'rindex_col-&r.sampIfrac-1]df.Iieadf)己梅初1己譙現(xiàn)2己健科3己能科4己建科5己般現(xiàn)B己譙科7己能科8己住科9號(hào)?3)3苧煙51也登而{8657377^-35939號(hào)?3)3苧煙51也登而{8657377^-359398789前朝S]彌9258封堯明第4656688889266948S766EgB5◎87S00窕電77805;5657S494&69567535?圓-虧1610

些1GES162481C三他科】g76348894989587S76D88已修科2094728D8585已除科監(jiān)967669g客09已修科21已修科221395H32OJ71t3Q-9w-67C90B&7&982的附圜騏已修科2蕓已情科24已佳科25目標(biāo)學(xué)科07 9088 7586 7092 9506 97第三步:數(shù)據(jù)預(yù)處理說(shuō)明,數(shù)據(jù)集包含25門已修學(xué)科,以及一門目標(biāo)學(xué)科.劃分訓(xùn)練集網(wǎng)試集PP=0.8df_train=df.iloc[:int(np.ceil(len(df)*PP))]df_test=df.iloc[int(np.ceil(len(df)*PP)):].數(shù)據(jù)標(biāo)準(zhǔn)化獲取每列均值標(biāo)準(zhǔn)差avg_col=df_train.mean()td_col=df_train.std()⑶.標(biāo)準(zhǔn)化結(jié)果df_train_norm=(df_train-avg_col)/td_coldf_train_norm.head()>?#說(shuō)明,數(shù)據(jù)集包含25門三修學(xué)科,以及一門目標(biāo)學(xué)科...#劃分訓(xùn)練集,測(cè)試集...PP=0.8?>df_t^ai.n=df.iloc[:int(np.ceil(len(df)*PP))]?>df_test=df.iloc[int(np.ceil(len(df)*PP)):]善敲菇標(biāo)法化,帙取每列總值,標(biāo)法叁...avg_col=df_train.mean()?>td_col=df_train.std()>?#后唯化給京...df_t^ain_norm=(df_train-a^g_col)/td_colaaadf[-^[門nnnr.hEmd[I -三修科1 m修科2m修科3三修科4 三倍科5己修科6三修科7\學(xué)號(hào)1Q60.5517751.1488970.8613750.026243-0.402354-0.2643591.09617251G.698563-G.123947-G.L64699.G.51S745G.527762G.561132G.262222629.273194■0.972510-0.018117-0.140890-1.7975270.1484129,679252480.2781940.5831880.7147930.7269431.2253490.561182-1.4953491G39.5517761.007470-0.0181171.4276430.0627041.3867231.304632三棒科8 三■慘科9三譙科1。???三悔和17 三:誨科18學(xué)號(hào)?...1G61.,0078130.5D64490.9707931.2996131.091047-0.617823510.0596590.458437-0.632930-1.052337-0.5327520.97984062-1.,267752-1.5&11&4-1.234326-2.3L2311-1.1310811.246117480.4389190.3686081.3717246.9030201.2534270.84G7Q11G20.8161930.9199721.1712580.7116250.522717-0.085269三修科20 三愉科21m修科22E.W23 3誨科24三修那25目標(biāo)學(xué)科學(xué)號(hào)106-0.0594721.376713-0.784379-0.5L&38S1.3872310.3317780.50C336511.,222414■0.9551291.9439171.32262B0.Q5660D0.5Q0510-1.592913621.4727G301971046.338996-1.502725-1,2740320.163045-2,292662400.3583940.422781-0.1424500.1599911.1020961.17544D1.2060851G30.4976830.4227811.1414070.9975891.2921850.1630451.485935第四步:特征提取及線性回歸儂訓(xùn)練基于F檢驗(yàn)的特征選擇(1).由于建模需要標(biāo)準(zhǔn)化字符串,故需重命名表頭list_columns_to_train=df_train_norm.columnschange_columns=['A'+str(zr+1)forzrinnp.arange(len(list_columns_to_train))]df_train_norm.columns=change_columnsco=dict(zip(change_columns,list_columns_to_train))defR_transform(data=口,k=0):r_L=data[k][k]shape=np.mat(data).shapeR_t=np.zeros(shape)foriinnp.arange(shape[0]):forjinnp.arange(shape[1]):if(i==k)&(j!=k):R_t[i][j]=data[k][j]/r_Lelif(i!=k)&(j==k):R_t[i][j]=-1*data[i][k]/r_Lelif(i==k)&(j==k):R_t[i][j]=1.0/r_Lelif(i!=k)&(j!=k):R_t[i][j]=data[i][j]-data[i][k]*data[k][j]/r_LreturnR_tdefforward_step(data,response="",F_in=0.01,F_out=0.5):remaining=list(data.columns)last_drop=""Vld="mark"n=len(data)#因變量選擇列selected=[]l=len(selected)#計(jì)算相關(guān)系數(shù)矩陣corr_R=data.corr()mark=1while(mark):#首次變量選擇ifl!=(len(data.columns)-1):r_taget=pd.Series(np.diagonal(np.mat(corr_R)))r_taget.index=remainingVi=corr_R[response]**2/r_tagetVc=Vi.drop(selected+[response],axis=0).sort_values()[-1]Vl=Vi.drop(selected+[response],axis=0).sort_values().index[-1]ifVld==last_drop:mark=0elifVld!=last_drop:Fi=Vc*(n-l-2)/(r_taget[response]-Vc)F_test=scipy.stats.f.isf(F_in,1,(n-l-2))ifFi>F_test:selected.append(Vl)l=len(selected)#協(xié)方差矩陣轉(zhuǎn)換corr_R=pd.DataFrame(R_transform(np.array(corr_R),remaining.index(Vl)))corr_R.index=data.columnscorr_R.columns=data.columnsifl>=2:#考慮剔除變量foriinnp.arange(len(selected)):rd_taget=pd.Series(np.diagonal(np.mat(corr_R)))rd_taget.index=remainingVid=corr_R[response]**2/rd_tagetVcd=Vid[selected].sort_values(ascending=False)[-1]Vld=Vid[selected].sort_values(ascending=False).index[-1]Fd=Vcd*(n-(l-1)-2)/rd_taget[response]F_test_out=scipy.stats.f.isf(F_out,1,(n-(l-1)-2))if(Fd<F_test_out):selected.remove(Vld)last_drop=Vldcorr_R=pd.DataFrame(R_transform(np.array(corr_R),remaining.index(Vld)))corr_R.index=data.columnscorr_R.columns=data.columnsl=len(selected)else:mark=0else:mark=0returnselectedselect_list=forward_step(df_train_norm,response=change_columns[-1])select_list=change_columns[:2]#線性回歸儂訓(xùn)練formula="{}~{}+1".format(change_columns[-1],'+'.join(select_list))model=smf.ols(formula,df_train_norm).fit()print(model.summary())

DLSRegressionRssultsDep.Variatile:A26R-squared:0.1.96Model:OLSAdj.R-squared:0.1.77Method;LeastSquaresF-statistic;ia.46Date; Thu」18即「2019Prab{F-statistic);8,57405Time:15:34:12Log-Likelihood:-116.09No.Observations:89AIC:238.2DfRasidualE:86BIC:245.6DfModel:2CavarianceType:nonrobustcoefstderr1 P>|t|[95.0%€onf.Dkt.]Intercept-9.489e-150.096-9.37e-15 1.000-9.1910.1.91Al Q.G116B.&9S&,118 0.9G6-9.1830.206A2 Q.440&G.&984.5G8 0.BG0日.2460.625□mnibus:7.062Durbin-Watson:2.192Prob(Cmnibjs)i0.029JmrquE-由「口(JE);7.155Skew:■fl.094Prob(JB):0.0279Kurtosis:2.965Cond.No.1.16第五步:儂預(yù)測(cè)展示與結(jié)果對(duì)比#儂預(yù)測(cè)展示#利用訓(xùn)練集的統(tǒng)計(jì)信息標(biāo)準(zhǔn)化測(cè)試數(shù)據(jù)df_test_norm=(df_test-avg_col)/td_coldf_test_norm.columns=change_columnsdftestnorm.head

?>#模型預(yù)測(cè)展示#利用/喀集的虢計(jì)倍皂標(biāo)準(zhǔn)化測(cè)運(yùn)萼艙df_te5t_nann={df_test-avg_GDl>/td_coldf_te&t_narm.columns=change_CDlumnsdftestnonn.headaboundnethodNDFrame.head口+ AlA2A3MA5A6A7\學(xué)號(hào)15-0.952928-0.540229-0.010117-D.516745-0.4023540.1404120.05907299-0.2699(72-1.396792-2.216&46-D.518745-2.0900560.561132-0.960420e9.263972-3.2353M-2.656592D.9605100.0527042.212264-1.196068&60.551776Qb15S9D70.275G47D.259610-0.159625-G.6771291.096172&Q0.27B1940.4417611.5942641.7290661.4570780.9729520.867712@60.6095691.GC747D0.861275D.101955-0.169025G.146412-0.779966300.6995680.156907-0.010117-0.6301600.295233-1.5G267D-0.369046650B141402G.300334-0.010117-O.44069G-0.4023540.140412-0.36904613-0.91S137Qb2CO334-1,337354-D.051612-0.159025-3.1537510.0530722Q-0.132180-0.eaiQB20.714792D.026243-2.03DO56G.1484120.57150B69-1.5099931.4317510.457063-0.5107450.295222-1.069999-0.363046609.263972Qb15S9D70.1204651.2719220.295222G.1464120.867712220.4L4995-0.9725100.560211D.6047990.2952330.9739S30.47075221-1.953902Q.G174BD0.120465D.5712321.4570700.5611320.05907294-2.320841-0.97251D-0.010117-D.6744570.5277620.5611320.8677121010.8252591.5721780.714752-0.12946S1.4578780.9720621.09617270.5517761BM西步Q.56S2111.1162211.457878-G.6771250.67925222-4.272711-Qn4G^02-0.751G26-1.998001-2.020056-G.264955fl.57150852-B.1221801.GG747D1,5942S41.1940771.457878G.5611821.096172550.551776GB2GG224-G.S576GSD.1S19550.295233G.5611820.679252740.U1402-1.538SL9S.01B117-1.608722G.527762-G.2642591.996172269.551776GB2G62241.4477G2-瓦4408&QG.295223G.9720620.47G7G2#模型預(yù)測(cè)展示#利用訓(xùn)練集的統(tǒng)計(jì)信息標(biāo)準(zhǔn)化測(cè)試數(shù)據(jù)df_test_norm=(df_test-avg_col)/td_coldf_test_norm.columns=change_columns#預(yù)測(cè)結(jié)果還原百分制predict=model.predict(df_test_norm)predict_df=predict*td_col[-1]+avg_col[-1]#被選擇特征反編碼select_list_old=[co[z]forzinselect_list]print(predict_df)[84.5774525681.9626126276,1747252286.9278470487.79569417M.6104782285.9291455887.2291735287.2&Q0827582.75479969M.765367986,360655883,3547716486,32444537S3,12880&849114026651990.0444017934,7402111739,5426869SS7.3730691581.5512S51487.37306915]print(select_list_old[0]);print(select_list_old[1])

?print[select_list_old[0]);print(selectlistald[1]J三倍斛1三信科2#結(jié)果對(duì)比F=pd.DataFrame(df_test[E標(biāo)學(xué)科"]).join(pd.DataFrame(predict_df))回歸殘差,以及結(jié)^相關(guān)系數(shù)corr=F.corr()[E標(biāo)學(xué)科"][0]stds=abs(F[地標(biāo)學(xué)科"]-F[0]).sum()/len(F)輸出程序^行摘要print("程序選擇特征%s,預(yù)測(cè)結(jié)果相關(guān)系數(shù)is%s,回歸殘差is%s分"%(","join(select_list_old),corr,stds))AAA#哥果對(duì)EEF=「九口口匕1:「加白(葉_1蚪七「目標(biāo)學(xué)越1)/口訕@(1.[>31:肝「3110[P「初近1:_"”A* 日區(qū)差.中及型果痣關(guān)奈數(shù)...cnrr=F.srHU■目標(biāo)學(xué)科"田]stds=流5仟:’目標(biāo)孚程-F[0D.surf)/an(Fjf才神出程序運(yùn)行搞要...p「int「'租用途座持證郵,直到鑿果相關(guān)至性15%5.回歸殘及15加分"*t"□"rjoii(3elect_list_olik匚”「.stds)}理序選擇畤征三修科修科2.云測(cè)注果相關(guān)系數(shù)L9。.嫻47打毒打41,叵左成芝is1.O918677240&359G7分第六步通過(guò)以下命令執(zhí)行python文偉直接查看運(yùn)行結(jié)果python/opt/algorithm/scorese

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論