利用python,生成two-moons**資料,70%作為訓練樣本,30%作為測試樣本。結合已學過的貝葉斯、神經網路、支援向量機等監督學習演算法,實現adaboost、基於平均和投票法的整合學習演算法,採用準確率比較不同的演算法優劣。具體指標有:
(1)adaboost:基分類器採用不同引數設定下的支援向量機,比如c、核,或者貝葉斯、神經網路等分類器。
(2)基於平均和投票法的整合學習:基分類器須採用不同的貝葉斯、支援向量機。
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.ensemble import adaboostclassifier
from sklearn.ensemble import votingclassifier
from sklearn.svm import svc
from sklearn import metrics
from multiprocessing import process
from sklearn.neural_network import mlpclassifier
from sklearn.linear_model import logisticregression
from sklearn.model_selection import train_test_split
#會出現warning
import warnings
warnings.filterwarnings(
"ignore"
, category=futurewarning, module=
"sklearn"
, lineno=
193)
#生成資料集
x,y=make_moons(n_samples=
10000
,noise=
0.4)
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=
0.3)
print
(x_train)
#adaboost
sacc=
defab
(c,kernal,estimator)
: abc = adaboostclassifier(svc(c=c, kernel=kernal)
, algorithm=
"samme"
, n_estimators=estimator)
abc.fit(x_train, y_train)
y_pred = abc.predict(x_test)
acc = metrics.accuracy_score(y_test, y_pred)
[c,kernal,estimator,acc]
)print(1
)subprocess=
n_k=
['linear'
,'poly'
,'rbf'
]n_c=
n_e=
for i in
range(5
,20,5
):for i in
range(20
,50,5
):for c in n_c:
for estimator in n_e:
subprocess=
for kernal in n_k:
ab(c,kernal,estimator)
print
(sacc)
from sklearn.*****_bayes import gaussiannb
abc = adaboostclassifier(gaussiannb(),
algorithm=
"samme"
, n_estimators=70)
abc.fit(x_train, y_train)
y_pred = abc.predict(x_test)
acc = metrics.accuracy_score(y_test, y_pred)
print
('adaboost accuracy: '
, acc)
# voting
cf1 = svc(c=
10, probability=
true
)cf2 = svc(c=
20, kernel=
'linear'
, probability=
true
)cf3 = svc(c=
30, kernel=
'poly'
, probability=
true
)vc = votingclassifier(estimators=[(
'svc_rbf'
, cf1),(
'svm_linear'
, cf2),(
'svc_poly'
, cf3)],
voting=
'soft'
, weights=[2
,1,2
])vc.fit(x_train, y_train)
y_pred = vc.predict(x_test)
acc = metrics.accuracy_score(y_test, y_pred)
print
('voting accuracy: '
, acc)
voting_clf = votingclassifier(estimators=[(
'log_clf'
,logisticregression())
,('svm_clf'
,svc(probability=
true))
,('mlp_clf'
,mlpclassifier(solver=
'lbfgs'
, alpha=1e-
5,hidden_layer_sizes=(5
,2), random_state=1)
),('nb_clf'
,gaussiannb())
],voting=
'soft'
)voting_clf.fit(x_train,y_train)
print
(voting_clf.score(x_test,y_test)
)
voting_clf = votingclassifier(estimators=[(
'log_clf'
,logisticregression())
,('svm_clf'
,svc(probability=
true))
,('mlp_clf'
,mlpclassifier(solver=
'lbfgs'
, alpha=1e-
5,hidden_layer_sizes=(5
,2), random_state=1)
),('nb_clf'
,gaussiannb())
],voting=
'hard'
)voting_clf.fit(x_train,y_train)
print
(voting_clf.score(x_test,y_test)
)
第八章實驗
實驗目的和要求 1.能夠使用c 模板機制定義過載函式。2.能夠例項化及使用模板函式。3.能夠例項化和使用模板類。4.應用標準c 模板庫 stl 通用演算法和函式物件實現查詢和排序。實驗內容 1.分析並除錯下列程式,了解函式模板的使用。includeusing namespace std templa...
第八章實驗
實驗目的和要求 1.能夠使用c 模板機制定義過載函式。2.能夠例項化及使用模板函式。3.能夠例項化和使用模板類。4.應用標準c 模板庫 stl 通用演算法和函式物件實現查詢和排序。實驗內容 1.分析並除錯下列程式,了解函式模板的使用。includeusing namespace std templa...
第八章 上機1
2009年春節期間,電視台財經頻道 經濟半小時 欄目重磅推出春節特別節目 2009民生報告 通過小人物的真實故事回顧2009熱點民生話題。在2010年2月20日播出的 2009民生報告 七 安身立業 中,將目光聚焦農村進城務工人員的新生代 80後 90後農民工,其中重點講述了北大青鳥學員王洪賢 胡梅...