# 進入正題
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...
機器學習 決策樹
我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...
機器學習 決策樹
一 演算法簡介 決策樹一般都是自上而下來生成的,每個決策後事件 即自然狀態 都可能引出兩個或多個事件,導致結果的不同,把這種結構分支畫成形狀很像一棵樹的枝幹,故稱為決策樹。決策樹能夠讀取資料集合,並且決策樹很多任務都是為了資料中所蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取一系列規...