西瓜書第八章上機實驗

2021-10-05 10:10:19 字數 3950 閱讀 4067

利用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後農民工,其中重點講述了北大青鳥學員王洪賢 胡梅...