国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

機器學(xué)習(xí)-決策樹-回歸-CPU(中央處理單元)數(shù)據(jù)-python scikit-learn

這篇具有很好參考價值的文章主要介紹了機器學(xué)習(xí)-決策樹-回歸-CPU(中央處理單元)數(shù)據(jù)-python scikit-learn。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

決策樹是一種監(jiān)督機器學(xué)習(xí)算法,用于回歸和分類任務(wù)。樹是可以處理復(fù)雜數(shù)據(jù)集的強大算法。
決策樹特性:

  • 不需要數(shù)值輸入數(shù)據(jù)進行縮放。無論數(shù)值是多少,決策樹都不在乎。
  • 不同于其他復(fù)雜的學(xué)習(xí)算法,決策樹的結(jié)果是可以解釋的,決策樹不是黑盒類型的模型。
  • 雖然大多數(shù)模型都有缺失值的問題,但決策樹卻沒有問題。
  • 樹可以處理不平衡的數(shù)據(jù)集,只需要調(diào)整類的權(quán)重。
  • 樹可以提供特征的重要性或每個特征對模型訓(xùn)練結(jié)果的貢獻。
  • 樹是隨機森林和梯度增強機等集成方法的基本構(gòu)建塊。

決策樹的工作方式就像一系列if/else問題。假設(shè)你想決定買哪輛車。為了買到合適的車,你可以通過問一系列類似的問題來評估安全水平,座位和門的數(shù)量。

決策樹的一個眾所周知的缺點是傾向于容易過擬合數(shù)據(jù)(基本上假設(shè)它們一開始總是過擬合)??朔^擬合的一種方法是減少決策樹中的最大深度(稱為“max_depth”超參數(shù))。

1.導(dǎo)入模塊

import numpy as np
import pandas as pd
import seaborn as sns
import sklearn
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')

2.加載數(shù)據(jù)

在這個使用決策樹的回歸任務(wù)中,將使用機器CPU(中央處理單元)數(shù)據(jù),該數(shù)據(jù)可在OpenML上獲得。這里將使用Sklearn ’ fetch_openml '函數(shù)加載它。

該數(shù)據(jù)集將根據(jù)以下數(shù)據(jù)預(yù)測CPU的相對性能:

  • MYCT:以納秒為單位的機器周期時間(整數(shù))
  • MMIN:最小主存(千字節(jié))(整數(shù))
  • MMAX:最大主存,單位為千字節(jié)(整數(shù))
  • cache:以千字節(jié)為單位的cache(整數(shù))
  • CHMIN:最小通道數(shù)單位(整數(shù))
  • CHMAX:最大通道數(shù)單位(整數(shù))
  • PRP:公布的相對性能(整數(shù))(目標(biāo)變量)
from sklearn.datasets import fetch_openml
machine_cpu = fetch_openml(name='machine_cpu')
machine_data = machine_cpu.data
machine_labels = machine_cpu.target

3.探索性分析數(shù)據(jù)

在進行探索性分析之前,讓我們先獲取訓(xùn)練和測試數(shù)據(jù)。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(machine_data,machine_labels, test_size=0.2,random_state=20)

可視化所有數(shù)字特征的直方圖。

X_train.hist(bins=50, figsize=(15,10))
plt.show()

機器學(xué)習(xí)-決策樹-回歸-CPU(中央處理單元)數(shù)據(jù)-python scikit-learn,機器學(xué)習(xí)python,機器學(xué)習(xí),python,決策樹
或者可以快速使用’ sn.pairplot() '查看數(shù)據(jù)。

sns.pairplot(X_train)

機器學(xué)習(xí)-決策樹-回歸-CPU(中央處理單元)數(shù)據(jù)-python scikit-learn,機器學(xué)習(xí)python,機器學(xué)習(xí),python,決策樹

4.數(shù)據(jù)預(yù)處理

將數(shù)據(jù)準(zhǔn)備為機器學(xué)習(xí)模型提供適當(dāng)?shù)母袷健?br> 決策樹并不關(guān)心特征是否縮放??山⒁粋€Pipeline來縮放特征。

from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline

scale_pipe = Pipeline([('scaler', StandardScaler())])
X_train_scaled = scale_pipe.fit_transform(X_train)

5.訓(xùn)練決策樹回歸器

from sklearn.tree import DecisionTreeRegressor
#原始數(shù)據(jù)上訓(xùn)練
tree_reg = DecisionTreeRegressor()
tree_reg.fit(X_train, y_train)
#在縮放后的數(shù)據(jù)上訓(xùn)練相同的模型。
tree_reg_scaled = DecisionTreeRegressor()
tree_reg_scaled.fit(X_train_scaled, y_train)

6.評估決策樹

先檢查訓(xùn)練的均方根誤差。不建議根據(jù)測試數(shù)據(jù)對模型進行評估,因為還沒有對模型進行改進。這里會寫一個函數(shù),讓它更簡單,避免重復(fù)。

from sklearn.metrics import mean_squared_error
def predict(input_data,model,labels):
    preds = model.predict(input_data)
    mse = mean_squared_error(labels,preds)
    rmse = np.sqrt(mse)
    return rmse
predict(X_train, tree_reg, y_train) #9.724590719956222
predict(X_train_scaled, tree_reg_scaled, y_train) #9.724590719956222

正如你所看到的,兩者根本沒有區(qū)別。所以在未來使用決策樹的項目中,無論是否縮放數(shù)據(jù),預(yù)測結(jié)果都不會受到影響。

7.改進決策樹

改進決策樹模型的一種方法是找到max_depth和其他一些參數(shù)的正確數(shù)量。使用GridSearch來查找最佳超參數(shù)。注意,因為數(shù)據(jù)集比較小,這樣做可能會導(dǎo)致過擬合。但這樣做是為了學(xué)習(xí)(你可以把它應(yīng)用到實際的問題中)。

from sklearn.model_selection import GridSearchCV

params_grid = {'max_leaf_nodes': list(range(0, 10)), 'min_samples_split': [0,1,2, 3, 4], 
              'max_depth':[None,0,1,2,3]}

#默認(rèn)情況下,Refit為true。最好的estimator(估計器)是在整個數(shù)據(jù)集上訓(xùn)練的
grid_search = GridSearchCV(DecisionTreeRegressor(random_state=42), params_grid, verbose=1, cv=3, refit=True)
grid_search.fit(X_train, y_train)
tree_best = grid_search.best_estimator_
predict(X_train, tree_best, y_train)  #34.999530266023044

可以看到,結(jié)果overfitted。
最后可以在測試集上對模型進行評估,用原來的模型。

predict(X_test, tree_reg, y_test)  #42.89411103991738

8.總結(jié)

這里學(xué)習(xí)了決策樹背后的基本思想,并使用它來預(yù)測CPU性能。在下一個實驗中,將使用決策樹來完成分類任務(wù),將使用一個真實的數(shù)據(jù)集,這樣就可以實際地改進決策樹模型。文章來源地址http://www.zghlxwxcb.cn/news/detail-830389.html

到了這里,關(guān)于機器學(xué)習(xí)-決策樹-回歸-CPU(中央處理單元)數(shù)據(jù)-python scikit-learn的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包