基於sklearn實現Bagging演算法(pyth

2021-10-22 12:21:25 字數 2181 閱讀 9319

圖中a,b,c,d,e,f列表示六個特徵,g表示樣本標籤。每一行資料即為乙個樣本的六個特徵和標籤。

實現bagging演算法的**如下:

from sklearn.ensemble import baggingclassifier

from sklearn.tree import decisiontreeclassifier

from sklearn.preprocessing import standardscaler

import csv

from sklearn.cross_validation import train_test_split

from sklearn.metrics import accuracy_score

from sklearn.metrics import confusion_matrix

from sklearn.metrics import classification_report

data=

traffic_feature=

traffic_target=

csv_file = csv.reader(

open

('packsize_all.csv'))

for content in csv_file:

content=

list

(map

(float

,content))if

len(content)!=0

:0:6

])//存放資料集的特徵-1

])//存放資料集的標籤

print

('data='

,data)

print

('traffic_feature='

,traffic_feature)

print

('traffic_target='

,traffic_target)

scaler = standardscaler(

)# 標準化轉換

scaler.fit(traffic_feature)

# 訓練標準化物件

traffic_feature= scaler.transform(traffic_feature)

# 轉換資料集

feature_train, feature_test, target_train, target_test = train_test_split(traffic_feature, traffic_target, test_size=

0.3,random_state=0)

tree=decisiontreeclassifier(criterion=

'entropy'

, max_depth=

none

)# n_estimators=500:生成500個決策樹

clf = baggingclassifier(base_estimator=tree, n_estimators=

500, max_samples=

1.0, max_features=

1.0, bootstrap=

true

, bootstrap_features=

false

, n_jobs=

1, random_state=1)

clf.fit(feature_train,target_train)

predict_results=clf.predict(feature_test)

print

(accuracy_score(predict_results, target_test)

) conf_mat = confusion_matrix(target_test, predict_results)

print

(conf_mat)

print

(classification_report(target_test, predict_results)

)

執行結果如圖所示:

樸素貝葉斯 基於sklearn的實現

由於自己太懶,不想看太長的 所以我就呼叫的sklearn庫的樸素貝葉斯類,資料集選擇的是這個部落格中自己構造的資料集,該部落格自己實現了樸素貝葉斯類,想自己編寫乙個樸素貝葉斯函式的讀者可以參考這個部落格。下面是用sklearn庫實現樸素貝葉斯分類 from functools import redu...

基於sklearn的特徵篩選

樣本中的有些特徵是所謂的 優秀特徵 使用這些特徵可以顯著的提高泛化能力。而有些特徵在樣本類別區分上並不明顯,在訓練中引入這些特徵會導致算力的浪費 另外有些特徵對樣本的分類有反作用,引入這些特徵反而會導致泛化能力下降 與pca 主成分分析 不同,特徵篩選不修改特徵值,而是尋找對模型效能提公升較大的盡量...

基於sklearn的特徵選擇方法

在資料探勘工作中,通常處理的是乙個包含大量特徵且含義未知的資料集,並基於該資料集挖掘到有用的特徵。那麼這裡面一般是四個步驟 特徵工程 特徵選擇 模型構造 模型融合。特徵工程主要是清洗特徵 刪除無用特徵和構造新特徵,經過特徵工程這個過程我們可能會得到大量的特徵 而特徵選擇的目的就是從這大量的特徵中挑選...