Python 集成分类器(brew软件包)-键错误:“[290 109 240 11 524]不在索引中”
我使用的是来自软件包的,并试图从以下内容创建动态选择分类器。因此,我的代码片段如下所示:Python 集成分类器(brew软件包)-键错误:“[290 109 240 11 524]不在索引中”,python,machine-learning,jupyter-notebook,ensemble-learning,brew-python,Python,Machine Learning,Jupyter Notebook,Ensemble Learning,Brew Python,我使用的是来自软件包的,并试图从以下内容创建动态选择分类器。因此,我的代码片段如下所示: # Initializing ensemble of different models clf = model1 bag = Bagging(base_classifier=clf, n_classifiers=20) # Changing indices to 0...n instead of random distribution from train_test_split X_train = X_t
# Initializing ensemble of different models
clf = model1
bag = Bagging(base_classifier=clf, n_classifiers=20)
# Changing indices to 0...n instead of random distribution from train_test_split
X_train = X_train.reset_index(drop=True)
X_test = X_test.reset_index(drop=True)
X_val = X_val.reset_index(drop=True)
Y_val = Y_val.reset_index(drop=True)
Y_train = Y_train.reset_index(drop=True)
Y_test = Y_test.reset_index(drop=True)
bag.fit(X_np, Y_np)
ensemble = bag.ensemble
clf1 = sklearn.clone(clf).fit(X_train, Y_train)
clf2 = EnsembleClassifier(ensemble=ensemble, combiner=Combiner('majority_vote'))
clf3 = EnsembleClassifier(ensemble=ensemble, selector=OLA(X_train, Y_train), combiner=Combiner('majority_vote'))
clf4 = EnsembleClassifier(ensemble=ensemble, selector=LCA(X_train, Y_train), combiner=Combiner('majority_vote'))
clf5 = EnsembleClassifier(ensemble=ensemble, selector=APriori(X_train, Y_train), combiner=Combiner('majority_vote'))
clf6 = EnsembleClassifier(ensemble=ensemble, selector=APosteriori(X_train, Y_train), combiner=Combiner('majority_vote'))
clf7 = EnsembleClassifier(ensemble=ensemble, selector=KNORA_ELIMINATE(X_train, Y_train), combiner=Combiner('majority_vote'))
clf8 = EnsembleClassifier(ensemble=ensemble, selector=KNORA_UNION(X_train, Y_train), combiner=Combiner('majority_vote'))
X_test_np = X_test.values
models = [clf1, clf2, clf3, clf4, clf5, clf6, clf7, clf8]
for i in models:
y_pred = i.predict(X_test_np)
print "Accuracy : ", acc_score(Y_test, y_pred)
print "AUC Score : ", auc_score(Y_test, y_pred)
print classification_report(Y_test, y_pred)
其中,模型1对应于以下内容:
因此,我在运行第一段代码后得到的错误如下:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-166-c02f6a396002> in <module>()
3 models = [clf1, clf2, clf3, clf4, clf5, clf6, clf7, clf8]
4 for i in models:
----> 5 y_pred = clf3.predict(X_test_np)
6 print "Accuracy : ", acc_score(Y_test, y_pred)
7 print "AUC Score : ", auc_score(Y_test, y_pred)
/home/vat26/.local/lib/python2.7/site-packages/brew/base.pyc in predict(self, X)
260 for i in range(X.shape[0]):
261 ensemble, weights = self.selector.select(
--> 262 self.ensemble, X[i, :][np.newaxis, :])
263
264 if weights is not None: # use the ensemble with weights
/home/vat26/.local/lib/python2.7/site-packages/brew/selection/dynamic/ola.pyc in select(self, ensemble, x)
114 classifiers = ensemble.classifiers
115 [idx] = self.knn.kneighbors(x, return_distance=False)
--> 116 X, y = self.Xval[idx], self.yval[idx]
117
118 scores = np.asarray([clf.score(X, y) for clf in classifiers])
/home/vat26/.local/lib/python2.7/site-packages/pandas/core/frame.pyc in __getitem__(self, key)
2131 if isinstance(key, (Series, np.ndarray, Index, list)):
2132 # either boolean or fancy integer index
-> 2133 return self._getitem_array(key)
2134 elif isinstance(key, DataFrame):
2135 return self._getitem_frame(key)
/home/vat26/.local/lib/python2.7/site-packages/pandas/core/frame.pyc in _getitem_array(self, key)
2175 return self._take(indexer, axis=0, convert=False)
2176 else:
-> 2177 indexer = self.loc._convert_to_indexer(key, axis=1)
2178 return self._take(indexer, axis=1, convert=True)
2179
/home/vat26/.local/lib/python2.7/site-packages/pandas/core/indexing.pyc in _convert_to_indexer(self, obj, axis, is_setter)
1267 if mask.any():
1268 raise KeyError('{mask} not in index'
-> 1269 .format(mask=objarr[mask]))
1270
1271 return _values_from_object(indexer)
KeyError: '[290 109 240 11 524] not in index'
我是新来的。我哪里做错了
编辑:
从clf3开始,它与clf1和clf2一起工作,并给出一个错误
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-166-c02f6a396002> in <module>()
3 models = [clf1, clf2, clf3, clf4, clf5, clf6, clf7, clf8]
4 for i in models:
----> 5 y_pred = clf3.predict(X_test_np)
6 print "Accuracy : ", acc_score(Y_test, y_pred)
7 print "AUC Score : ", auc_score(Y_test, y_pred)
/home/vat26/.local/lib/python2.7/site-packages/brew/base.pyc in predict(self, X)
260 for i in range(X.shape[0]):
261 ensemble, weights = self.selector.select(
--> 262 self.ensemble, X[i, :][np.newaxis, :])
263
264 if weights is not None: # use the ensemble with weights
/home/vat26/.local/lib/python2.7/site-packages/brew/selection/dynamic/ola.pyc in select(self, ensemble, x)
114 classifiers = ensemble.classifiers
115 [idx] = self.knn.kneighbors(x, return_distance=False)
--> 116 X, y = self.Xval[idx], self.yval[idx]
117
118 scores = np.asarray([clf.score(X, y) for clf in classifiers])
/home/vat26/.local/lib/python2.7/site-packages/pandas/core/frame.pyc in __getitem__(self, key)
2131 if isinstance(key, (Series, np.ndarray, Index, list)):
2132 # either boolean or fancy integer index
-> 2133 return self._getitem_array(key)
2134 elif isinstance(key, DataFrame):
2135 return self._getitem_frame(key)
/home/vat26/.local/lib/python2.7/site-packages/pandas/core/frame.pyc in _getitem_array(self, key)
2175 return self._take(indexer, axis=0, convert=False)
2176 else:
-> 2177 indexer = self.loc._convert_to_indexer(key, axis=1)
2178 return self._take(indexer, axis=1, convert=True)
2179
/home/vat26/.local/lib/python2.7/site-packages/pandas/core/indexing.pyc in _convert_to_indexer(self, obj, axis, is_setter)
1267 if mask.any():
1268 raise KeyError('{mask} not in index'
-> 1269 .format(mask=objarr[mask]))
1270
1271 return _values_from_object(indexer)
KeyError: '[290 109 240 11 524] not in index'