隨機森林演算法例項

2022-08-03 06:45:15 字數 3413 閱讀 9636

根據成年人資料集來**乙個人的收入

提取碼:4zzy

準備好了資料集,那就把這個資料集與你的jupyter notebook放在同一目錄.如果你是直接開啟命令提示符啟動jupyter notebook那麼路徑為: 

或者你也可以在d盤建立乙個目錄並在這個目錄啟動jupyter notebook,把資料集放入其中

#############################  隨機森林例項  #######################################

#匯入pandas庫

import pandas as pd

#匯入資料集拆分工具

from sklearn.model_selection import train_test_split

from sklearn import tree,datasets

#用pandas開啟csv檔案

data = pd.read_csv('adult.csv',header=none,index_col=false,names=['年齡','單位性質','權重','學歷','受教育時長','婚姻狀況','職業','家庭情況','種族','性別','資產所得','資產損失','周工作時長','原籍','收入'])

#為了方便展示,我們選取其中一部分資料

data_lite = data[['年齡','單位性質','學歷','性別','周工作時長','職業','收入']]

#下面看一下資料的前五行是不是我們想要的結果

display(data_lite.head())

#使用get_dummies將文字資料轉化為數值

data_dummies = pd.get_dummies(data_lite)

#對比樣本原始特徵和虛擬變數特徵

print('樣本原始特徵:\n',list(data_lite.columns),'\n')

print('虛擬變數特徵:\n',list(data_dummies.columns))

#顯示資料集中的前5行

#定義資料集的特徵值

features = data_dummies.loc[:,'年齡':'職業_ transport-moving']

#將特徵數值賦值為x

x = features.values

#將收入大於50k作為**目標

y = data_dummies['收入_ >50k'].values

print('\n\n\n')

print('**執行結果')

print('***********************************=\n')

#列印資料形態

print('特徵形態:{} 標籤形態:{}'.format(x.shape,y.shape))

print('\n***********************************=')

print('\n\n\n')

**執行結果

***********************************=

特徵形態:(32561, 44) 標籤形態:(32561,)

***********************************=

#將資料集拆分為訓練集和測試集

x_train,x_test,y_train,y_test = train_test_split(x,y,random_state=0)

#用最大深度為5的隨機森林擬合資料

go_dating_tree = tree.decisiontreeclassifier(max_depth=5)

go_dating_tree.fit(x_train,y_train)

print('\n\n\n')

print('**執行結果')

print('***********************************=\n')

#列印資料形態

print('模型得分:'.format(go_dating_tree.score(x_test,y_test)))

print('\n***********************************=')

print('\n\n\n')

**執行結果

***********************************=

模型得分:0.80

***********************************=

#將mr z的資料輸入給模型

mr_z = [[37, 40,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]]

#使用模型做出**

dating_dec = go_dating_tree.predict(mr_z)

print('\n\n\n')

print('**執行結果')

print('***********************************=\n')

if dating_dec == 1:

print("這哥們月薪過5萬了")

else:

print("月薪不過五萬")

print('\n***********************************=')

print('\n\n\n')

**執行結果

***********************************=

月薪不過五萬

***********************************=

注:這個資料集只是用來演示決策樹的用法,其結論參考意義不大

總結:

在使用隨機森林演算法中,明白了引數對其調節的影響.

在決策樹與隨機森林演算法中對高位資料集進行分析,我們可以在諸多特徵中選擇保留最重要的幾個,方便我們對資料集手動降維處理.

文章引自 : 《深入淺出python機器學習》

隨機森林演算法

random forest是加州大學伯克利分校的breiman leo和adele cutler於2001年發表的 中提到的新的機器學習演算法,可以用來做分類,聚類,回歸,和生存分析,這裡只簡單介紹該演算法在分類上的應用。random forest 隨機森林 演算法是通過訓練多個決策樹,生成模型,然...

隨機森林演算法原理 機器學習演算法 隨機森林

隨機森林是一種通用的機器學習方法,能夠處理回歸和分類問題。它還負責資料降維 缺失值處理 離群值處理以及資料分析的其他步驟。它是一種整合學習方法,將一組一般的模型組合成乙個強大的模型 我們通過適用隨機的方式從資料中抽取樣本和特徵值,訓練多個不同的決策樹,形成森林。為了根據屬性對新物件進行分類,每個數都...

IBM SPSS Modeler隨機森林演算法介紹

在之前的文章 bagging 或boosting讓你的模型更加優化 中,我們介紹了可以通過bagging或boosting技術,使得模型更加穩定和準確率更高,那麼今天要介紹的隨機森林演算法,本身的演算法邏輯已經使用了bagging技術,來構建多棵樹,最終實現構建 森林 的目的。首先我們先來了解下這個...