成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

隨機森林算法入門(python)

張遷 / 1767人閱讀

摘要:翻譯自昨天收到推送了一篇介紹隨機森林算法的郵件,感覺作為介紹和入門不錯,就順手把它翻譯一下。隨機森林引入的隨機森林算法將自動創(chuàng)建隨機決策樹群?;貧w隨機森林也可以用于回歸問題。結語隨機森林相當起來非常容易。

翻譯自:http://blog.yhat.com/posts/python-random-forest.html

昨天收到yhat推送了一篇介紹隨機森林算法的郵件,感覺作為介紹和入門不錯,就順手把它翻譯一下。


目錄

1 什么是隨機森林

1.1 集成學習

1.2 隨機決策樹

1.3 隨機森林

1.4 投票

2 為什么要用它

3 使用方法

3.1 變量選擇

3.2 分類

3.3 回歸

4 一個簡單的Python示例

結語


前言: 隨機森林是一個非常靈活的機器學習方法,從市場營銷到醫(yī)療保險有著眾多的應用。它可以用于市場營銷對客戶獲取和存留建?;蝾A測病人的疾病風險和易感性。

隨機森林能夠用于分類和回歸問題,可以處理大量特征,并能夠幫助估計用于建模數(shù)據(jù)變量的重要性。

這篇文章是關于如何使用Python構建隨機森林模型。

1 什么是隨機森林

隨機森林可以用于幾乎任何一種預測問題(包括非線性問題)。它是一個相對較新的機器學習策略(90年代誕生于貝爾實驗室)可以用在任何方面。它屬于機器學習中的集成學習這一大類。

1.1 集成學習

集成學習是將多個模型進行組合來解決單一的預測問題。它的原理是生成多個分類器模型,各自獨立地學習并作出預測。這些預測最后結合起來得到預測結果,因此和多帶帶分類器的結果相比,結果一樣或更好。

隨機森林是集成學習的一個分支,因為它依靠于決策樹的集成。更多關于python實現(xiàn)集成學習的文檔:?Scikit-Learn 文檔。

1.2 隨機決策樹

我們知道隨機森林是將其他的模型進行聚合, 但具體是哪種模型呢?從其名稱也可以看出,隨機森林聚合的是分類(或回歸) 樹。一顆決策樹是由一系列的決策組合而成的,可用于數(shù)據(jù)集的觀測值進行分類 。

1.3 隨機森林

引入的隨機森林算法將自動創(chuàng)建隨機決策樹群。由于這些樹是隨機生成的,大部分的樹(甚至 99.9%)對解決你的分類或回歸問題是沒有有意義。

1.4 投票

那么,生成甚至上萬的糟糕的模型有什么好處呢?好吧,這確實沒有。但有用的是,少數(shù)非常好的決策樹也隨之一起生成了。

當你要做預測的時候,新的觀察值隨著決策樹自上而下走下來并被賦予一個預測值或標簽。一旦森林中的每棵樹都給有了預測值或標簽,所有的預測結果將被歸總到一起,所有樹的投票返回做為最終的預測結果。

簡單來說,99.9%不相關的樹做出的預測結果涵蓋所有的情況,這些預測結果將會彼此抵消。少數(shù)優(yōu)秀的樹的預測結果將會脫穎而出,從而得到一個好的預測結果。

2 為什么要用它

隨機森林是機器學習方法中的Leatherman(多功能折疊刀)。你幾乎可以把任何東西扔給它。它在估計推斷映射方面做的特別好,從而不需要類似SVM醫(yī)一樣過多的調(diào)參(這點對時間緊迫的朋友非常好)。

2.1 一個映射的例子

隨機森林可以在未經(jīng)特意手工進行數(shù)據(jù)變換的情況下學習。以函數(shù)f(x)=log(x)為例。

我們將在Yhat自己的交互環(huán)境Rodeo中利用Python生成分析數(shù)據(jù),你可以在here下載RodeoMac,WindowsLinux的安裝文件。

首先,我們先生成一下數(shù)據(jù)并添加噪聲。

import numpy as np
import pylab as pl

x = np.random.uniform(1, 100, 1000)
y = np.log(x) + np.random.normal(0, .3, 1000)

pl.scatter(x, y, s=1, label="log(x) with noise")

pl.plot(np.arange(1, 100), np.log(np.arange(1, 100)), c="b", label="log(x) true function")
pl.xlabel("x")
pl.ylabel("f(x) = log(x)")
pl.legend(loc="best")
pl.title("A Basic Log Function")
pl.show()

得到如下結果:

如果我們建立了一個基本的線性模型通過使用x來預測y,我們需要作一條直線,一定成都市算是平分log(x)函數(shù)。而如果我們使用隨機森林算法,它可以更好的逼近log(x)曲線從而使得它看起來更像實際的函數(shù)。?

當然,你也可以說隨機森林對log(x)函數(shù)有點過擬合。不管怎么樣,這說明了隨機森林并不限于線性問題。

3 使用方法 3.1 特征選擇

隨機森林的一個最好用例是特征選擇。嘗試很多個決策樹變量的一個副產(chǎn)品就是,你可以檢查變量在每棵樹中表現(xiàn)的是最佳還是最糟糕。

當一些樹使用一個變量,而其他的不使用這個變量,你就可以對比信息的丟失或增加。實現(xiàn)的比較好的隨機森林工具能夠為你做這些事情,所以你需要做的僅僅是去查看那個方法或參數(shù)。

在下述的例子中,我們嘗試弄明白區(qū)分紅酒或白酒時,哪些變量是最重要的。

3.2 分類

隨機森林也很善長分類問題。它可以被用于為多個可能目標類別做預測,它也可以在調(diào)整后輸出概率。你需要注意的一件事情是過擬合。

隨機森林容易產(chǎn)生過擬合,特別是在數(shù)據(jù)集相對小的時候。當你的模型對于測試集合做出“太好”的預測的時候就應該懷疑一下了。避免過擬合的一個方法是在模型中只使用有相關性的特征,比如使用之前提到的特征選擇。

3.3 回歸

隨機森林也可以用于回歸問題。

我發(fā)現(xiàn),不像其他的方法,隨機森林非常擅長于分類變量或分類變量與連續(xù)變量混合的情況。

4 一個簡單的Python示例
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
import numpy as np

iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df["is_train"] = np.random.uniform(0, 1, len(df)) <= .75
df["species"] = pd.Categorical.from_codes(iris.target, iris.target_names)
df.head()

train, test = df[df["is_train"]==True], df[df["is_train"]==False]

features = df.columns[:4]
clf = RandomForestClassifier(n_jobs=2)y, _ = pd.factorize(train["species"])
clf.fit(train[features], y)

preds = iris.target_names[clf.predict(test[features])]

pd.crosstab(test["species"], preds, rownames=["actual"], colnames=["preds"])

下面就是你應該看到的結果了。由于我們隨機選擇數(shù)據(jù),所以實際結果每次都會不一樣。

preds sertosa versicolor virginica
actual
sertosa 6 0 0
versicolor 0 16 1
virginica 0 0 12
5 結語

隨機森林相當起來非常容易。不過和其他任何建模方法一樣要注意過擬合問題。如果你有興趣用R語言使用隨機森林,可以查看randomForest包。

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44250.html

相關文章

  • 如何在Python中從零開始實現(xiàn)隨機森林

    摘要:在本教程中,您將了解如何在中從頭開始實現(xiàn)隨機森林算法。如何將隨機森林算法應用于預測建模問題。如何在中從頭開始實現(xiàn)隨機森林圖片來自,保留部分權利。這被稱為隨機森林算法。如何更新決策樹的創(chuàng)建以適應隨機森林過程。 歡迎大家前往云+社區(qū),獲取更多騰訊海量技術實踐干貨哦~ 決策樹可能會受到高度變異的影響,使得結果對所使用的特定測試數(shù)據(jù)而言變得脆弱。 根據(jù)您的測試數(shù)據(jù)樣本構建多個模型(稱為套袋)可...

    MasonEast 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<