真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

隨機森林java代碼 隨機森林 代碼

統(tǒng)計-可能是最豐富的隨機森林攻略+代碼放送

a) 先用臨近值填補缺失值

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、云和ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的云和網(wǎng)站制作公司

iter: 迭代數(shù) breiman說4-6次就好,過多的迭代數(shù)不會讓OOB error變小

set.seed:保證抽取的過程是隨機的

hd~: 我們想通過所有參數(shù)預(yù)測hd

紅框部分為每次迭代的OOB error

b) 構(gòu)建隨機森林模型

mtry:

如果我們想預(yù)測的是連續(xù)變量,該值為總的變量值/3

如果想預(yù)測的是factor,該值為總變量數(shù)的根號

本例子中,hd是factor,mtry的默認(rèn)值為sqrt(13)=3.6約等于3

number of tree :500 種樹個數(shù),默認(rèn)500個

no. of variables tried at each split : 3 (即mtry)節(jié)點個數(shù)

OOB誤差 :17.82% 這個很重要

cofusion matrix的意義 :

22個unhealthy被分入healthy中

32個healthy被分入unhealthy中

c) 更換mtry和number of trees的數(shù)量,使隨機森林達(dá)到最優(yōu)

核心思想:使OOB,healthy, unhealthy的error rate達(dá)到最低

橫行:種的第i顆樹,i=1:500,依次類推

縱行:OOB error rate; healthy error rate; unhealthy error rate

可以看出:當(dāng)樹種到400以后,三者的誤差基本不變了

500-1000之間,誤差基本不變,因此選500顆樹就好

可以看出, mtry在3左右就很好,再低容易引起過擬合

具體原理參照我之前的帖子

可見我們的隨機森林效果不錯, healthy分成一類,unhealthy分成一類

注意:importance=TRUE必須得打開,否則沒法進行重要性評分

求問隨機森林算法的簡單實現(xiàn)過程?

隨機森林(Random forest)指的是利用多棵樹對樣本進行訓(xùn)練并預(yù)測的一種分類器。 并且其輸出的類別是由個別樹輸出的類別的眾數(shù)而定。在機器學(xué)習(xí)中有一個地位很重要的包scikit-learn可實現(xiàn)隨機森林算法。

原理:(隨機森林的分類預(yù)測和回歸預(yù)測sklearn.ensemble.RandomForestRegressor方法)

(1)給定訓(xùn)練集S,測試集T,特征維數(shù)F。確定參數(shù):使用到的CART的數(shù)量t,每棵樹的深度d,每個節(jié)點使用到的特征數(shù)量f,終止條件:節(jié)點上最少樣本數(shù)s,節(jié)點上最少的信息增益m,對于第1-t棵樹,i=1-t:

(2)從S中有放回的抽取大小和S一樣的訓(xùn)練集S(i),作為根節(jié)點的樣本,從根節(jié)點開始訓(xùn)練

(3)如果當(dāng)前節(jié)點上達(dá)到終止條件,則設(shè)置當(dāng)前節(jié)點為葉子節(jié)點,如果是分類問題,該葉子節(jié)點的預(yù)測輸出為當(dāng)前節(jié)點樣本集合中數(shù)量最多的那一類c(j),概率p為c(j)占當(dāng)前樣本集的比例;如果是回歸問題,預(yù)測輸出為當(dāng)前節(jié)點樣本集各個樣本值的平均值。然后繼續(xù)訓(xùn)練其他節(jié)點。如果當(dāng)前節(jié)點沒有達(dá)到終止條件,則從F維特征中無放回的隨機選取f維特征。利用這f維特征,尋找分類效果最好的一維特征k及其閾值th,當(dāng)前節(jié)點上樣本第k維特征小于th的樣本被劃分到左節(jié)點,其余的被劃分到右節(jié)點。繼續(xù)訓(xùn)練其他節(jié)點。

(4)重復(fù)(2)(3)直到所有節(jié)點都訓(xùn)練過了或者被標(biāo)記為葉子節(jié)點。

(5)重復(fù)(2),(3),(4)直到所有CART都被訓(xùn)練過。

隨機森林的簡單實現(xiàn)過程如下:

一、 開發(fā)環(huán)境、編譯環(huán)境:

PyCharm Community Edition 2016.2.3

Python2.7.10

二、 所用庫及安裝方法:

pandas[python自帶]

sklearn:命令行pip install sklearn;如果沒有安裝pip,先使用easy_install pip安裝pip;如果在MAC上沒有權(quán)限,使用sudo pip install sklearn;

三、 代碼介紹

1. 使用pandas讀取本地excel的訓(xùn)練集和測試集,將屬性集賦給X_train和Y_train;將要預(yù)測的集合賦給X_test和Y_test;

2. 使用DictVectorizer對數(shù)據(jù)進行規(guī)范化、標(biāo)準(zhǔn)化

3. 生成RandomForestRegressor對象,并將訓(xùn)練集傳入fit方法中進行訓(xùn)練

4. 調(diào)用predict函數(shù)進行預(yù)測,并將結(jié)果存入y_predict變量中;

5. 使用mean_squared_error、score方法輸出MSE、NMSE值對擬合度、穩(wěn)定度進行分析;輸出feature_importance,對影響最終結(jié)果的屬性進行分析;

6. 詳細(xì)代碼見附錄

四、 附錄

# coding:utf-8

import pandas as pd

data_train = pd.read_excel('/Users/xiaoliu/Desktop/data_train.xlsx')

X_train = data_train[['CPI', 'GDP', 'PPI', 'AJR', 'BJFJ', 'FBDR', 'PCFD', 'PCFDED', 'BDR']]

y_train = data_train['FJ']

data_test = pd.read_excel('/Users/xiaoliu/Desktop/data_test.xlsx')

X_test = data_test[['CPI', 'GDP', 'PPI', 'AJR', 'BJFJ', 'FBDR', 'PCFD', 'PCFDED', 'BDR']]

y_test = data_test['FJ']

from sklearn.feature_extraction import DictVectorizer

vec = DictVectorizer(sparse=False)

X_train = vec.fit_transform(X_train.to_dict(orient='records'))

X_test = vec.transform(X_test.to_dict(orient='records'))

from sklearn.ensemble import RandomForestRegressor

rf = RandomForestRegressor()

rf.fit(X_train,y_train)

y_predict = rf.predict(X_test)

print 'predict value:',y_predict

from sklearn.metrics import mean_squared_error

print 'MSE:', mean_squared_error(y_test, y_predict)

print 'NMES:',rf.score(X_test, y_test)

print rf.feature_importances_

? ? ? ? ? ? ? ? ? ? ? ?

求會matlab和機器學(xué)習(xí)的大牛,教我怎么實現(xiàn)一個隨機森林

隨機森林顧名思義,是用隨機的方式建立一個森林,森林里面有很多的決策樹組成,隨機森林的每一棵決策樹之間是沒有關(guān)聯(lián)的。在得到森林之后,當(dāng)有一個新的輸 入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應(yīng)該屬于哪一類(對于分類算法),然后看看哪一類被選擇最多,就預(yù)測這個樣本 為那一類。

在建立每一棵決策樹的過程中,有兩點需要注意 - 采樣與完全分裂。首先是兩個隨機采樣的過程,random forest對輸入的數(shù)據(jù)要進行行、列的采樣。對于行采樣,采用有放回的方式,也就是在采樣得到的樣本集合中,可能有重復(fù)的樣本。假設(shè)輸入樣本為N個,那 么采樣的樣本也為N個。


分享文章:隨機森林java代碼 隨機森林 代碼
本文路徑:http://weahome.cn/article/ddespid.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部