使用決策樹和隨機森林對資料分類

2021-10-10 04:14:42 字數 2382 閱讀 6807

使用決策樹演算法和隨機森林演算法對income_classification.csv的收入水平進行分類。訓練集和測試集的比例是7:3,選取適當的特徵列,使得針對測試樣本的分類準確率在80%以上,比較2種分類方法的準確率。

資料說明:

特徵列age:年齡,整數

workclass:工作性質,字串

education:教育程度,字串

education_num:受教育年限,整數

maritial_status:婚姻狀況,字串

occupation:職業,字串

relationship:親戚關係,字串

race:種族,字串

***:性別,字串

capital_gain:資本收益,浮點數

capital_loss:資本損失,浮點數

hours_per_week:每週工作小時數,浮點數

native_country:原籍,字串

分類標籤列:income

imcome > 50k

imcome ≤ 50k

讀入資料並顯示資料的維度和前5行資料
import pandas as pd

import numpy as np

對連續變數年齡進行離散化,並顯示前5行資料離散化後的結果

age_bins = [20, 30,40, 50, 60, 70]

對屬性是字串的任意特徵進行數字編號處理,顯示前5行編碼後的結果,每個特定的字串用乙個整數來表示,整數序列從0開始增長。

from sklearn.preprocessing import labelencoder

enc = labelencoder()

對預處理後的資料用決策樹演算法和隨機森林演算法分類

**思路:

選擇合適的若干特徵字段

按7:3劃分訓練集和樣本集

使用訓練集訓練乙個決策樹分類器

使用測試集計算決策樹分類器的分類準確率

使用訓練集訓練乙個隨機森林分類器

使用測試集計算隨機森林分類器的分類準確率

fromsklearn.ensemble import randomforestclassifier

from sklearn importtree

fromsklearn.preprocessing import labelencoder

fromsklearn.feature_extraction import dictvectorizer

accuracy_random =clf_random.score(xtest, ytest)

import numpy as np

from sklearn.feature_extraction import dictvectorizer

from sklearn.ensemble import randomforestclassifier

from sklearn import tree

print(『2. 構造資料和標籤…』)

x = np.array(data)

labels = np.array(labels)

y = np.zeros(labels.shape) # 初始label全為0

y[labels == 『<=50k』] = 0 # 當label等於這三種屬性的話,設定為1。

y[labels == 『>50k』] = 1

print(『3.轉換字串資料型別…』)

vec = dictvectorizer() # 轉換字串資料型別

dx = vec.fit_transform(x).toarray()

print(『4.拆分訓練資料和測試資料…』)

print(『訓練集和驗證集比例7:3』)

print(『5.cart決策樹分類…』)

clf_cart = tree.decisiontreeclassifier(criterion = 『entropy』) # cart演算法,使用entropy作為標準;預設是是用gini作為標準

clf_cart.fit(xtrain, ytrain)

accuracy_cart = clf_cart.score(xtest, ytest)

print(『cart樹分類準確率:』,accuracy_cart)

print(『6.隨機森林分類…』)

clf_random = randomforestclassifier()

clf_random.fit(xtrain, ytrain)

accuracy_random = clf_random.score(xtest, ytest)

print(『隨機森林分類準確率:』, accuracy_random)

以上**全部複製進python環境即可執行,親測有效

決策樹和隨機森林

決策樹 建立決策樹的關鍵,是在當前狀態下選擇那個屬性作為分類依據。根據不同的目標函式,建立決策樹主要有三個演算法 id3 iterative dichotomiser c4.5 cart classification and regression tree 資訊增益 當熵和條件熵中的概率由資料統計得...

決策樹和隨機森林

c4.5 cart 2,工具 能夠將dot檔案轉換為pdf png 3,執行命令 缺點 改進 建立10顆決策樹,樣本,特徵大多不一樣 隨機又放回的抽樣 bootstrap boolean,optional default true 是否在構建樹時使用放回抽樣。隨機森林的優點 import panda...

Python 分類演算法(決策樹,隨機森林)

資訊熵的計算 條件熵的計算 決策樹分類器 criterion 預設是 gini 係數,也可以選擇資訊增益的熵 entropy max depth 樹的深度大小 random state 隨機數種子 method decision path 返回決策樹的路徑 在機器學習中 隨機森林 是乙個包含多個決策...