當前位置:
首頁 > 知識 > 30分鐘學會用scikit-learn的基本回歸方法

30分鐘學會用scikit-learn的基本回歸方法

前言:本教程主要使用了numpy的最最基本的功能,用於生成數據,matplotlib用於繪圖,scikit-learn用於調用機器學習方法。如果你不熟悉他們(我也不熟悉),沒關係,看看numpy和matplotlib最簡單的教程就夠了。我們這個教程的程序不超過50行。


1. 數據準備

為了實驗用,我自己寫了一個二元函數,y=0.5*np.sin(x1)+ 0.5*np.cos(x2)+0.1*x1+3。

其中x1的取值範圍是0~50,x2的取值範圍是-10~10,x1和x2的訓練集一共有500個,測試集有100個。其中,在訓練集的上加了一個-0.5~0.5的雜訊。生成函數的代碼如下:

其中訓練集(y上加有-0.5~0.5的隨機雜訊)和測試集(沒有雜訊)的圖像如下:


2. scikit-learn最簡單的介紹

scikit-learn非常簡單,只需實例化一個演算法對象,然後調用fit()函數就可以了,fit之後,就可以使用predict()函數來預測了,然後可以使用score()函數來評估預測值和真實值的差異,函數返回一個得分。例如調用決策樹的方法如下:

下來,我們可以根據預測值和真值來畫出一個圖像。畫圖的代碼如下:

然後圖像會顯示如下:


3. 開始試驗各種不同的回歸方法

為了加快測試, 這裡寫了一個函數,函數接收不同的回歸類的對象,然後它就會畫出圖像,並且給出得分.

函數基本如下:


3.1 常規回歸方法

常規的回歸方法有線性回歸,決策樹回歸,SVM和k近鄰(KNN)

3.1.1 線性回歸

3.1.2數回歸

然後決策樹回歸的圖像就會顯示出來:

3.1.3 SVM回歸

結果圖像如下:

3.1.4 KNN

竟然KNN這個計算效能最差的演算法效果最好


3.2 集成方法(隨機森林,adaboost, GBRT)

3.2.1隨機森林

3.2.2 Adaboost

圖像如下:


3.2.3 GBRT


4. scikit-learn還有很多其他的方法,可以參考用戶手冊自行試驗.

5.完整代碼

我這裡在pycharm寫的代碼,但是在pycharm裡面不顯示圖形,所以可以把代碼複製到ipython中,使用%paste方法複製代碼片.

然後參照上面的各個方法導入演算法,使用try_different_mothod()函數畫圖.

完整代碼如下:

- 加入AI學院學習 -


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI講堂 的精彩文章:

用 Keras 編寫你的第一個人工神經網路
基於區塊鏈的機器學習模型創建方案

TAG:AI講堂 |