機器學習《決策樹優化》

2021-09-23 23:45:58 字數 2270 閱讀 4387

#  進入正題

import pandas as pd

import sklearn.metrics as metircs

#讀取共享單車資料

data = pd.read_csv(

'007-day.csv'

,encoding=

'utf-8'

)#刪除無用資料 axis=1 按列刪除 =0是按行刪除 inplace=true改變原資料 預設false

data.drop(

['dteday'

,'instant'

,'casual'

,'registered'

],axis=

1,inplace=

true

)data.as_matrix(

)#將型別轉成numpy data.values也可以

from sklearn.model_selection import train_test_split

#按行將資料進行三七分割

trainset,testset = train_test_split(data,test_size=

0.3)

#按列將特徵和標籤進行分割 (最後一列是標籤)

train_x,train_y = trainset.iloc[:,

:-1]

.values,trainset.iloc[:,

-1].values

test_x,test_y = testset.iloc[:,

:-1]

.values,testset.iloc[:,

-1].values

# 建立模型 決策樹

from sklearn.tree import decisiontreeregressor

dtreg = decisiontreeregressor(

)#初始化

#將 train_x train_y訓練集 進行訓練

dtreg.fit(train_x,train_y)

#將test_x**集 進行**

y_pre = dtreg.predict(test_x)

print

('無優化mse:{}'

.format

(metircs.mean_absolute_error(y_pred=y_pre,y_true=test_y)))

#決策樹優化

from sklearn.ensemble import adaboostregressor

#初始化 加上決策樹深度

dtreg = decisiontreeregressor(max_depth=20)

#引數是弱回歸器 決策樹 數量

adaboost = adaboostregressor(dtreg,n_estimators=

600)

#決策樹數量600

adaboost.fit(train_x,train_y)

#訓練y_pre = adaboost.predict(test_x)

# 測試

print

('優化後mse:{}'

.format

(metircs.mean_absolute_error(y_pred=y_pre,y_true=test_y)))

print

('解釋方差分r2:{}'

.format

(metircs.r2_score(y_pred = y_pre,y_true=test_y)))

print

('檢視模型得分:{}'

.format

(adaboost.score(test_x,test_y)))

#(引數是測試集或訓練集 !必須一致)

#  儲存模型

from sklearn.externals import joblib

path =

'位址加檔名.txt'

joblib.dump(模型,path)

# 載入模型

linear_re_loaded = joblib.load(path)

y_pre_train = linear_re_loaded.predict(train_x)

print

(y_pre_train)

機器學習 決策樹

一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...

機器學習 決策樹

我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...

機器學習 決策樹

一 演算法簡介 決策樹一般都是自上而下來生成的,每個決策後事件 即自然狀態 都可能引出兩個或多個事件,導致結果的不同,把這種結構分支畫成形狀很像一棵樹的枝幹,故稱為決策樹。決策樹能夠讀取資料集合,並且決策樹很多任務都是為了資料中所蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取一系列規...