Essayer de tracer la limite de décision du classificateur k-NN mais ne peut pas le faire en obtenant TypeError: '(slice (None, None, None), 0)' is an invalid key`
h = .01 # step size in the mesh
# Create color maps
cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF','#AFAFAF'])
cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF','#AFAFAF'])
for weights in ['uniform', 'distance']:
# we create an instance of Neighbours Classifier and fit the data.
clf = KNeighborsClassifier(n_neighbors=6, weights=weights)
clf.fit(X_train, y_train)
# Plot the decision boundary. For that, we will assign a color to each
# point in the mesh [x_min, x_max]x[y_min, y_max].
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
np.arange(y_min, y_max, h))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
# Put the result into a color plot
Z = Z.reshape(xx.shape)
plt.figure()
plt.pcolormesh(xx, yy, Z, cmap=cmap_light)
# Plot also the training points
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold)
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.title("4-Class classification (k = %i, weights = '%s')"
% (n_neighbors, weights))
plt.show()
Vous avez cela lorsque vous ne savez pas très bien ce que cela signifie, ne pensez pas que le clf.fit a un problème, mais je ne suis pas sûr
TypeError Traceback (most recent call last)
<ipython-input-394-bef9b05b1940> in <module>
12 # Plot the decision boundary. For that, we will assign a color to each
13 # point in the mesh [x_min, x_max]x[y_min, y_max].
---> 14 x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
15 y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
16 xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
~\Miniconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
2925 if self.columns.nlevels > 1:
2926 return self._getitem_multilevel(key)
-> 2927 indexer = self.columns.get_loc(key)
2928 if is_integer(indexer):
2929 indexer = [indexer]
~\Miniconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
2654 'backfill or nearest lookups')
2655 try:
-> 2656 return self._engine.get_loc(key)
2657 except KeyError:
2658 return self._engine.get_loc(self._maybe_cast_indexer(key))
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
TypeError: '(slice(None, None, None), 0)' is an invalid key
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values= np.nan, strategy= 'mean')
imputer = imputer.fit(X.iloc[:, 1:3])
X = imputer.transform(X.iloc[:, 1:3])
J'ai plutôt changé mon entrée en un tableau numpy et cela a fonctionné. Je n'ai toujours pas été en mesure de trier ce problème avec une entrée de trame de données Pandas. Si c'est urgent dans votre cas, je suggère de changer votre entrée en numpy et d'aller de l'avant.