SCIKIT LEARN與GBDT使用案例

2021-09-07 22:50:11 字數 2271 閱讀 6818

scikit-learn是乙個基於python/numpy/scipy的機器學習庫 

windows下最簡單的安裝方式是使用winpython進行安裝 

winpython位址

這段**展示了乙個簡單的gbdt呼叫過程 

資料維數24,訓練資料1990,測試資料221

import numpy as np

from sklearn.ensemble import gradientboostingregressor

gbdt=gradientboostingregressor(

loss='ls' , learning_rate=0.1 , n_estimators=100 , subsample=1 , min_samples_split=2 , min_samples_leaf=1 , max_depth=3 , init=none , random_state=none , max_features=none , alpha=0.9 , verbose=0 , max_leaf_nodes=none , warm_start=false ) train_feat=np.genfromtxt("train_feat.txt",dtype=np.float32) train_id=np.genfromtxt("train_id.txt",dtype=np.float32) test_feat=np.genfromtxt("test_feat.txt",dtype=np.float32) test_id=np.genfromtxt("test_id.txt",dtype=np.float32) print train_feat.shape,rain_id.shape,est_feat.shape,est_id.shape gbdt.fit(train_feat,train_id) pred=gbdt.predict(test_feat) total_err=0 for i in range(pred.shape[0]): print pred[i],test_id[i] err=(pred[i]-test_id[i])/test_id[i] total_err+=err*err print total_err/pred.shape[0]

train_id.txt示例

320

361364

336358

train_feat.txt示例

0.00598802 0.569231 0.647059 0.95122 -0.225434 0.837989 0.357258 -0.0030581 -0.383475

0.161677 0.743195 0.682353 0.960976 -0.0867052 0.780527 0.282945 0.149847 -0.0529661

0.113772 0.744379 0.541176 0.990244 -0.00578035 0.721468 0.43411 -0.318043 0.288136

0.0538922 0.608284 0.764706 0.95122 -0.248555 0.821229 0.848604 -0.0030581 0.239407

0.173653 0.866272 0.682353 0.95122 0.017341 0.704709 -0.0210016 -0.195719 0.150424

測試結果與真值

333.986169852 334.0

360.84170859 360.0

342.658750421 343.0

329.591753015 328.0

374.247432336 374.0

更多詳細功能介紹請看這裡

誤差度量採用**值與真值的誤差佔真值的百分比的均值

方法引數

平均誤差百分比

svm最佳引數

1.60452%

gdbt

n_estimators=100,max_depth=3

2.29247%

gdbt

n_estimators=1000,max_depth=3

1.23875%

gdbt

n_estimators=1000,max_depth=5

1.14202%

gdbt

n_estimators=1000,max_depth=7

1.02505%

可以看出n_estimators和max_depth 與gbdt的表達能力相關度很高 

同時gbdt相對svm效果更優

Scikit learn介紹與安裝

python語言中專門針對機器學習應用而發展起來的一款開源框架 演算法庫 可以實現資料預處理 分類 回歸 降維 模型選擇等常用的機器學習演算法 特點 尋找a b y ax b from sklearn.linear model import linearregression lr model lin...

Scikit Learn與決策樹

scikit learn 決策樹 可以用於方法分類和回歸。一 分類 sklearn.tree.decisiontreeclassifier criterion gini splitter best max depth none,min samples split 2,min samples leaf...

gbd 分析core檔案 gdb core檔案除錯

core檔案在什麼位置建立 在 程序當前工作目錄的下建立。通常與程式在相同的路徑下。但如果程式中呼叫了chdir函式,則有可能改變了當前工作目錄。這時core檔案建立在 chdir指定的路徑下。有好多程式崩潰了,我們卻找不到core檔案放在什麼位置。和chdir函式就有關係。當然程式崩潰了不一定都產...