最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)隨機(jī)森林算法的示例代碼

 更新時(shí)間:2023年06月05日 09:30:47   作者:刻意思考  
隨機(jī)森林的英文是 Random Forest,英文簡(jiǎn)寫(xiě)是 RF,也是常用的人工智能算法,本文為大家介紹了Python實(shí)現(xiàn)隨機(jī)森林算法的示例代碼,希望對(duì)大家有所幫助

在數(shù)據(jù)挖掘的過(guò)程中,我們經(jīng)常會(huì)遇到一些問(wèn)題,比如:如何選擇各種分類(lèi)器,到底選擇哪個(gè)分類(lèi)算法,是SVM、決策樹(shù)、還是KNN?如何優(yōu)化分類(lèi)器的參數(shù),以便得到更好的分類(lèi)準(zhǔn)確率?

隨機(jī)森林分類(lèi)器

隨機(jī)森林的英文是 Random Forest,英文簡(jiǎn)寫(xiě)是 RF。它是一個(gè)包含多個(gè)決策樹(shù)的分類(lèi)器,每一個(gè)子分類(lèi)器都是一棵 CART 分類(lèi)回歸樹(shù)。所以隨機(jī)森林既可以做分類(lèi),又可以做回歸。

  • 當(dāng)它做分類(lèi)的時(shí)候,輸出結(jié)果是每個(gè)子分類(lèi)器的分類(lèi)結(jié)果中最多的那個(gè)??梢岳斫馐敲總€(gè)分類(lèi)器都做投票,取投票最多的那個(gè)結(jié)果。
  • 當(dāng)它做回歸的時(shí)候,輸出結(jié)果是每棵 CART 樹(shù)的回歸結(jié)果的平均值。

在 sklearn 中,我們使用 RandomForestClassifier() 構(gòu)造隨機(jī)森林模型,函數(shù)里有一些常用的構(gòu)造參數(shù):

  • n_estimators: 隨機(jī)森林里決策樹(shù)的個(gè)數(shù),默認(rèn)是10
  • criterion:決策樹(shù)分裂的標(biāo)準(zhǔn),默認(rèn)是基尼指數(shù)(CART算法),也可以選擇entropy(ID3算法)
  • max_depth: 決策樹(shù)的最大深度,默認(rèn)是None, 不限制
  • n_jobs:擬合和預(yù)測(cè)的時(shí)候CPU的核數(shù),默認(rèn)是1

GridSearchCV 對(duì)模型參數(shù)進(jìn)行調(diào)優(yōu)

分類(lèi)算法,我們經(jīng)常需要調(diào)節(jié)網(wǎng)絡(luò)參數(shù)(對(duì)應(yīng)上面的構(gòu)造參數(shù)),目的是得到更好的分類(lèi)結(jié)果。實(shí)際上一個(gè)分類(lèi)算法有很多參數(shù),取值范圍也比較廣,那么該如何調(diào)優(yōu)呢?

Python 給我們提供了一個(gè)很好用的工具 GridSearchCV,它是Python的參數(shù)自動(dòng)搜索模塊,能夠自動(dòng)決策最優(yōu)參數(shù)。

我們使用 GridSearchCV(estimator, param_grid, cv=None, scoring=None) 構(gòu)造參數(shù)的自動(dòng)搜索模塊,這里有一些主要的參數(shù)需要說(shuō)明:

  • estimator:代表采用的分類(lèi)器,如隨機(jī)森林、決策樹(shù)、SVM、KNN等
  • param_grid: 代表想要優(yōu)化的參數(shù)及取值
  • cv: 交叉驗(yàn)證的折數(shù),默認(rèn)是None, 代表使用三折交叉驗(yàn)證
  • scoring:準(zhǔn)確度的評(píng)價(jià)標(biāo)準(zhǔn),默認(rèn)是None, 也就是需要使用score函數(shù)

舉例,我們使用sklearn自帶的IRIS數(shù)據(jù)集,采用隨機(jī)森林對(duì)IRIS數(shù)據(jù)分類(lèi)。如果我們想知道n_estimators在1-10的范圍內(nèi)取哪個(gè)值的分類(lèi)結(jié)果最好,可以編寫(xiě)代碼如下:

# -*- coding: utf-8 -*-
# 使用RandomForest對(duì)IRIS數(shù)據(jù)集進(jìn)行分類(lèi)
# 利用GridSearchCV尋找最優(yōu)參數(shù)

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV

rf = RandomForestClassifier()
parameters = {"n_estimators": range(1, 11)}
iris = load_iris()

# 使用GridSearchCV進(jìn)行參數(shù)調(diào)優(yōu)
clf = GridSearchCV(estimator=rf, param_grid=parameters)

# 對(duì)iris數(shù)據(jù)集進(jìn)行分類(lèi)
clf.fit(iris.data, iris.target)

print("最優(yōu)分?jǐn)?shù): %.4lf" % clf.best_score_)
print("最優(yōu)參數(shù):", clf.best_params_)

運(yùn)行結(jié)果:

最優(yōu)分?jǐn)?shù): 0.9600
最優(yōu)參數(shù): {'n_estimators': 3}

使用 Pipeline 進(jìn)行流水線作業(yè)

在進(jìn)行數(shù)據(jù)分類(lèi)的時(shí)候往往都是有多個(gè)步驟的,比如先對(duì)數(shù)據(jù)進(jìn)行規(guī)范化處理,也可以用PCA對(duì)數(shù)據(jù)降維,最后再使用分類(lèi)器進(jìn)行分類(lèi)。

Python有一種Pipeline管道機(jī)制。管道機(jī)制就是讓我們把每一步都按順序列下來(lái),從而創(chuàng)建Pipeline流水線作業(yè)。每一步都采用(‘名稱’,步驟)的方式來(lái)表示。

那么我們現(xiàn)在采用Pipeline管道機(jī)制,用隨機(jī)森林對(duì)IRIS數(shù)據(jù)集做一下分類(lèi)。先用StandardScaler方法對(duì)數(shù)據(jù)規(guī)范化,即采用數(shù)據(jù)規(guī)范化為均值為0,方差為1的正態(tài)分布,然后采用PCA方法對(duì)數(shù)據(jù)進(jìn)行降維,最后采用隨機(jī)森林進(jìn)行分類(lèi),編寫(xiě)代碼如下:

from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

rf = RandomForestClassifier()
parameters = {"randomforestclassifier__n_estimators": range(1, 11)}
iris = load_iris()
pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('pca', PCA()),
    ('randomforestclassifier', rf)
])

clf = GridSearchCV(estimator=pipeline, param_grid=parameters)
clf.fit(iris.data, iris.target)
print("最優(yōu)分?jǐn)?shù): %.4lf" % clf.best_score_)
print("最優(yōu)參數(shù):", clf.best_params_)

運(yùn)行結(jié)果如下:

最優(yōu)分?jǐn)?shù): 0.9600
最優(yōu)參數(shù): {'randomforestclassifier__n_estimators': 9}

到此這篇關(guān)于Python實(shí)現(xiàn)隨機(jī)森林算法的示例代碼的文章就介紹到這了,更多相關(guān)Python隨機(jī)森林算法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas實(shí)現(xiàn)datetime64與unix時(shí)間戳互轉(zhuǎn)

    pandas實(shí)現(xiàn)datetime64與unix時(shí)間戳互轉(zhuǎn)

    這篇文章主要介紹了pandas實(shí)現(xiàn)datetime64與unix時(shí)間戳互轉(zhuǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python升級(jí)pip及失敗處理方式

    python升級(jí)pip及失敗處理方式

    這篇文章主要介紹了python升級(jí)pip及失敗處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python初學(xué)者必備的文件讀寫(xiě)指南

    Python初學(xué)者必備的文件讀寫(xiě)指南

    今天給大家?guī)?lái)的是關(guān)于Python基礎(chǔ)的相關(guān)知識(shí),文章圍繞著Python文件讀寫(xiě)展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • shelve  用來(lái)持久化任意的Python對(duì)象實(shí)例代碼

    shelve 用來(lái)持久化任意的Python對(duì)象實(shí)例代碼

    這篇文章主要介紹了shelve 用來(lái)持久化任意的Python對(duì)象實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • python?logging模塊詳解及其日志定時(shí)清理方式

    python?logging模塊詳解及其日志定時(shí)清理方式

    這篇文章主要介紹了python?logging模塊詳解及其日志定時(shí)清理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 使用python?scrapy爬取天氣并導(dǎo)出csv文件

    使用python?scrapy爬取天氣并導(dǎo)出csv文件

    由于工作需要,將爬蟲(chóng)的文件要保存為csv,以前只是保存為json,下面這篇文章主要給大家介紹了關(guān)于如何使用python?scrapy爬取天氣并導(dǎo)出csv文件的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python輸出各行命令詳解

    Python輸出各行命令詳解

    本篇文章給大家詳細(xì)分析了Python輸出各行命令的解釋,為初學(xué)者提供詳細(xì)的講解,有興趣的朋友參考下。
    2018-02-02
  • python 使用tkinter與messagebox寫(xiě)界面和彈窗

    python 使用tkinter與messagebox寫(xiě)界面和彈窗

    這篇文章主要介紹了python 使用tkinter與messagebox寫(xiě)界面和彈窗,文章內(nèi)容詳細(xì),具有一的的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • python集合用法實(shí)例分析

    python集合用法實(shí)例分析

    這篇文章主要介紹了python集合用法,較為詳細(xì)的分析了Python中集合的常見(jiàn)用法,需要的朋友可以參考下
    2015-05-05
  • Python定時(shí)庫(kù)APScheduler的原理以及用法示例

    Python定時(shí)庫(kù)APScheduler的原理以及用法示例

    APScheduler的全稱是Advanced Python Scheduler,它是一個(gè)輕量級(jí)的 Python 定時(shí)任務(wù)調(diào)度框架,下面這篇文章主要給大家介紹了關(guān)于Python定時(shí)庫(kù)APScheduler的原理以及用法的相關(guān)資料,需要的朋友可以參考下
    2021-12-12

最新評(píng)論

左云县| 梁河县| 高平市| 西乡县| 象山县| 武宣县| 肃宁县| 克什克腾旗| 昭苏县| 武川县| 南涧| 府谷县| 商南县| 达孜县| 拉萨市| 砚山县| 嘉祥县| 黑龙江省| 东台市| 商丘市| 克山县| 亚东县| 仙桃市| 万年县| 环江| 九龙坡区| 和林格尔县| 高雄市| 安陆市| 吉水县| 张掖市| 南京市| 剑阁县| 新平| 太仓市| 常宁市| 盈江县| 河间市| 伊川县| 石楼县| 夏邑县|