简体   繁体   English

如何创建多层感知器网络实例以用于装袋分类器?

[英]How can i create an instance of multi-layer perceptron network to use in bagging classifier?

i am trying to create an instance of multi-layer perceptron network to use in bagging classifier.我正在尝试创建一个多层感知器网络实例以用于装袋分类器。 But i don't understand how to fix them.但我不明白如何解决它们。

Here is my code:这是我的代码:



My task is:

1-To apply bagging classifier (with or without replacement) with eight base classifiers created at the previous step.


It would be really great if you show me how can i implement this to my algorithm. I did my search but i couldn't find a way to do that

To train your BaggingClassifier :训练你的BaggingClassifier

from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn import preprocessing
from sklearn.model_selection import train_test_split 
from sklearn.preprocessing import StandardScaler  
from sklearn.neural_network import MLPClassifier 
from sklearn.ensemble import BaggingClassifier
from sklearn.metrics import classification_report, confusion_matrix

#Load the digits data:

X,y = load_digits(return_X_y=True)

X_train, X_test, y_train, y_test = train_test_split(X,y, test_size=0.3, random_state=0)
# Feature scaling
scaler = StandardScaler()  
scaler.fit(X_train)
X_train = scaler.transform(X_train)  
X_test = scaler.transform(X_test)
# Finally for the MLP- Multilayer Perceptron
mlp = MLPClassifier(hidden_layer_sizes=(16, 8, 4, 2), max_iter=1001)

clf = BaggingClassifier(mlp, n_estimators=8)
clf.fit(X_train,y_train)

To analyze your output you may try:要分析您的 output 您可以尝试:

y_pred = clf.predict(X_test)
cm = confusion_matrix(y_test, y_pred, labels=clf.classes_)
print(cm)

To see num of correctly predicted instances per class:要查看每个 class 的正确预测实例数:

print(cm[np.eye(len(clf.classes_)).astype("bool")])

To see percentage of correctly predicted instances per class:要查看每个 class 的正确预测实例的百分比:

cm[np.eye(len(clf.classes_)).astype("bool")]/cm.sum(1)

To see total accuracy of your algo:要查看算法的总体准确性:

(y_pred==y_test).mean()

EDIT编辑

To access predictions on a per base estimator basis, ie your mlps, you can do:要访问基于每个基本估计器的预测,即您的 mlps,您可以执行以下操作:

estimators = clf.estimators_
# print(len(estimators), type(estimators[0]))
preds = []
for base_estimator in estimators:
    preds.append(base_estimator.predict(X_test))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM