0

Je suis un débutant ici et je suis en train de la vie de moi pour comprendre cette autre pile sur l'axe d'écoulement qui a la même question que moi .. Logistic Regression:Unknown label type: 'continuous'Python ValueError: type d'étiquette inconnue: « continue »

Ceci est mon code d'apprentissage machine ci-dessous, et la sortie de la coquille me donne ValueError: type d'étiquette inconnue: « continue »

Je crois comprendre que je suis « passer des flotteurs à un classificateur qui attend des valeurs catégoriques que la cible Si vous le convertissez en int, il sera accepté comme entrée (bien qu'il soit douteux que ce soit la bonne façon de le faire.) Il serait préférable de convertir vos scores d'entraînement en utilisant La fonction labelEncoder d'ikit "

Quelqu'un peut-il me donner un conseil sur la façon d'incorporer la fonction labelEncoder de scikit dans mon code? Est-ce implémenté avant d'indiquer les classificateurs X & y? Quoi que j'essaie, je fais quelque chose de mal. Merci

import numpy as np 
from sklearn import preprocessing, cross_validation, neighbors, utils 
import pandas as pd 

df = pd.read_csv('C:\\Users\\bbartling\\Documents\\Python\\WB    
Data\\WB_RTU6data.csv', index_col='Date', parse_dates=True) 

print(df.head()) 
print(df.tail()) 
print(df.shape) 
print(df.columns) 
print(df.info()) 
print(df.describe()) 


X = np.array(df.drop(['VAV6znt'],1)) 
df.dropna(inplace=True) 

y = np.array(df['VAV6znt']) 


accuracies = [] 

X_train, X_test, y_train, y_test =    
cross_validation.train_test_split(X,y,test_size=0.50) 

clf = neighbors.KNeighborsClassifier(n_neighbors=50) 
clf.fit(X_train, y_train) 
accuracy = clf.score(X_test, y_test) 

print(accuracy) 

enter image description here enter image description here

Répondre

1

Depuis votre colonne VAV6znt est un flotteur, ce qui signifie que vous essayez d'estimer une valeur numérique à partir des données. Cela en fait un problème de régression et vous utilisez KNeighborsClassifier qui est un estimateur de classification. Essayez d'utiliser KNeighborsRegressor ou tout autre estimateur dont le nom contient Regressor. Les convertir en int comme vous l'avez fait ci-dessus fonctionnera mais ne donnera pas de bons résultats car cela signifie que vous avez ces nombreuses classes dans vos données car elles sont uniques, ce qui est évidemment faux.

+0

Merci pour la réponse, pouvez-vous me dire où dans mon code je convertis en entiers? Je ne comprends pas très bien cela et je veux essayer d'éviter cela autant que possible ... J'ai l'impression que tout mon travail sera ce type de données de type 'float' .. Toute aide est grandement appréciée J'essaie aussi de trouver out of Sci kit apprendre les estimateurs de type "Regressor" – HenryHub

+1

@HenryHub Vous avez dit dans votre question à propos de "Si vous le convertissez en int il sera accepté comme entrée". De toute façon, vous devez d'abord comprendre les tâches de classification et de régression. Quoi qu'il en soit, recherchez Regressor sur cette page: http://scikit-learn.org/stable/modules/classes.html#api-reference –

+1

Cela a très bien fonctionné, merci pour le conseil. Je dois faire quelques recherches entre les tâches de classification et de régression. – HenryHub