乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      機(jī)器學(xué)習(xí) | 使用statsmodels和sklearn進(jìn)行回歸分析

       育種數(shù)據(jù)分析 2021-11-18

      記錄一下使用Python進(jìn)行的單變量回歸分析的操作流程。另外推薦一個(gè)sklearn機(jī)器學(xué)習(xí)的嗶哩嗶哩視頻(文末閱讀原文,進(jìn)行觀看)。

      python不像R中,默認(rèn)的函數(shù)可以做回歸分析lm,可以做方差分析aov,python中進(jìn)行統(tǒng)計(jì)分析需要載入外在的包,這里經(jīng)常用到的是statsmodelssklearn包,statsmodels風(fēng)格還是和R語言類似,sklearn則偏向機(jī)器學(xué)習(xí)了,是機(jī)器學(xué)習(xí)的入門包。

      「statsmodels包介紹:」

      statsmodels官方文檔:https://www./stable/

      statsmodels主要是偏向傳統(tǒng)統(tǒng)計(jì)分析,比如回歸分析,方差分析,時(shí)間序列等。

      • 回歸模型:線性回歸 ,通用線性回歸,魯邦線性模型  ,線性混合效應(yīng)模型等
      • 方差分析(ANOVA)
      • 時(shí)間序列分析:AR , ARMA , ARIMA , VAR等
      • 非參數(shù)方法:核密度估計(jì) , 核回歸
      • 統(tǒng)計(jì)模型結(jié)果可視化

      「sklearn包介紹:」

      sklearn官方文檔:https:///stable/

      sklearn 是一個(gè)機(jī)器學(xué)習(xí)包,包括各種機(jī)器學(xué)習(xí)的方法。

      • 分類 :SVM , K近鄰 ,隨機(jī)森林 , 邏輯回歸等
      • 回歸 :Lasso ,嶺回歸 等
      • 聚類 :K-means ,譜聚類等
      • 降維 :PCA ,特征選擇 ,矩陣分解等
      • 模型選擇 :網(wǎng)格搜索, 交叉驗(yàn)證 ,指標(biāo)矩陣
      • 預(yù)處理:特征提取,正態(tài)化

      「來自R語言用戶轉(zhuǎn)python數(shù)據(jù)分析的毒打」

      ?

      這毒打甚是酸爽,簡單的回歸分析,R中一行代碼的事情,在python中差點(diǎn)勸退,這是學(xué)藝不精然后丟人現(xiàn)眼的感慨??!用法不太一樣,習(xí)慣很難改,不過隨著python語法的熟悉,套路了解之后,就淡定很多,感覺python進(jìn)行分析時(shí),更偏向底層,R分析時(shí)更友好,但是python中的sklearn,通過建立一套規(guī)則,之后無論回歸分析,還是隨機(jī)森林,還是嶺回歸,套路都是一樣的。

      ?

      「sklearn機(jī)器學(xué)習(xí)的一般流程包括:」

      • 數(shù)據(jù)的獲取

      • 特征的提取

      • 特征的選擇

      • 數(shù)據(jù)預(yù)處理

      • 模型的訓(xùn)練

      • 模型的評估

      • 模型的優(yōu)化

      • 模型持久化


      「進(jìn)入正題」


      這里,使用Python中的statsmodels和sklearn進(jìn)行回歸分析。

      1. 數(shù)據(jù)來源:women

      women是R中的一個(gè)數(shù)據(jù)集,我們把它保存到csv文件中:

      > data(women)
      > write.csv(women,"women.csv",row.names = F)

      「數(shù)據(jù)預(yù)覽:」

      2. statsmodels的矩陣的形式

      ?

      statsmodels有兩種方法,一種是通過numpy矩陣操作的形式運(yùn)算,這里的OLS都是大寫,另一種是formula形式,ols是小寫,風(fēng)格類似R。

      ?
      import pandas as pd
      import statsmodels.api as sm
      dat = pd.read_csv("women.csv")
      dat.head()
      dat.describe()

      x = dat['height']
      X = x.values.reshape(-1,1# 轉(zhuǎn)化為矩陣形式
      y = dat['weight']

      # 增加常數(shù)項(xiàng)
      X1 = sm.add_constant(X)
      X1
      re = sm.OLS(y,X1).fit() # 注意,這里y在前面,X在后面
      print(re.summary())

      「代碼思路:」

      • 載入pandas,為了讀取數(shù)據(jù)
      • 載入statsmodels為了分析數(shù)據(jù)
      • 提取height一列,將其變?yōu)榫仃嚨男问?,作為x變量
      • 提取weight一列,作為y變量
      • 增加常數(shù)(截距)
      • 使用OLS進(jìn)行模型擬合
      • 查看結(jié)果

      結(jié)果:結(jié)果可以看出,截距為-87.5167,回歸系數(shù)為3.45,兩者都達(dá)到極顯著水平。R方為0.991,調(diào)和R方為0.990.

      3. statsmodels的formula的形式

      ?

      statsmodels也可以使用類似R語言,公式的方法進(jìn)行建模。

      ?
      import statsmodels.formula.api as smf
      smf.ols("weight ~ height",data=dat).fit().summary()

      結(jié)果:可以看出,formula和前者的結(jié)果完全一致。

      4. sklearn的形式

      ?

      sklearn是非常強(qiáng)大的包,包括很多機(jī)器學(xué)習(xí)的方法,是機(jī)器學(xué)習(xí)的入門包,這里使用其分析回歸分析。

      ?
      from sklearn.linear_model import LinearRegression

      mod = LinearRegression()

      re = mod.fit(X1,y) # 注意,這里X在前面,y在后面。
      re.coef_
      re.intercept_

      「結(jié)果:」結(jié)果可以看出,回歸系數(shù)和截距和之前的分析完全一致。

      「一個(gè)坑:」

      statsmodels中,進(jìn)行分析時(shí),都是y變量在前面,X變量在后面,比如:

      re = sm.OLS(y,X1).fit() # 注意,這里y在前面,X在后面
      smf.ols("weight ~ height",data=dat).fit().summary()

      但是sklearn中,X在前面,y在后面,比如:

      re = mod.fit(X1,y) # 注意,這里X在前面,y在后面。

      5. R語言作為對比

      > mod = lm(weight ~ height ,data=women)
      > summary(mod)

      結(jié)果:

      在這里插入圖片描述

      可以看出,截距為-87.51667,回歸系數(shù)為3.45,R方為0.991,調(diào)和R方為0.9903,和之前的結(jié)果完全一致。

      6. sklearn用于GWAS和GS的實(shí)施

      sklearn中機(jī)器學(xué)習(xí)的應(yīng)用,非常具有代表性,這里總結(jié)sklearn擬合模型三部曲:

      • 第一步:實(shí)例化,建立評估模型對象
      • 第二步:通過模型接口訓(xùn)練模型
      • 第三步:通過模型接口提取需要的信息

      「以回歸分析為例,sklearn是這樣做的:」

      from sklearn.linear_model import LinearRegression # 載入回歸分析
      mod = LinearRegression() # 第一步:實(shí)例化,我們后面就可以用mod去建模了
      re = mod.fit(X1,y) # 第二步:通過接口,訓(xùn)練模型
      re.coef_ # 第三步:提取結(jié)果信息
      re.intercept_ # # 第三步:提取結(jié)果信息

      上面是回歸分析,也可以很容易的變?yōu)殡S機(jī)森林,決策樹之類的方法,舉一反三的感覺不要太爽喔!

      「然后呢?GWAS和GS什么鬼?」

      然后我就想到,通過這種形式去將GWAS和GS的分析放進(jìn)去,像GS也包括貝葉斯啊,嶺回歸啊(RRBLUP),參考群,候選群,交叉驗(yàn)證之類的概念,本質(zhì)上也是機(jī)器學(xué)習(xí)的一種形式,通過這種形式調(diào)用,包括后面什么卷積神經(jīng)網(wǎng)絡(luò)等前沿性的算法考慮在內(nèi),然后封裝成一個(gè)庫,對外提供接口API,提供參考群數(shù)據(jù),預(yù)測候選群,然后跑各種各樣的模型,出一個(gè)最優(yōu)模型的結(jié)果,前景不要太美好……哈哈哈……

      ?

      我知道,已經(jīng)有不少研究這樣做了,但是想著自己以后能把比較前沿成熟的算法放到自己工作中,感覺好像已經(jīng)跨行成功進(jìn)入人工智能的樣子,套用茂茂的話:“好嗨喲”……

      ?

      7. 怎么能少得了嗶哩嗶哩?

      「推薦書籍」,之前寫了一篇西瓜書的讀后感:如何學(xué)習(xí)GWAS以及安利西瓜書,沒有給出書名,差評!這里貼出書名,據(jù)說網(wǎng)上有電子版的,但是對于買書當(dāng)作防身的我,紙質(zhì)書還是更有安全感。

      上面這兩本書,我是在嗶哩嗶哩上面,看到這個(gè)up主推薦的,她是個(gè)妹子,還把課講得這么好,不推薦良心很痛的……

      「快來關(guān)注我吧,看我是如何在進(jìn)軍機(jī)器學(xué)習(xí)的路上:」

      • 信心滿滿離開家,
      • 備受打擊咬著牙,
      • 以為堅(jiān)持能入門,
      • 成功勸退臉被打。 

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多