web-dev-qa-db-fra.com

ValueError: type d'étiquette inconnu: 'inconnu'

J'essaye de lancer le code suivant. Btw, je suis nouveau à la fois python et sklearn.

import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression


# data import and preparation
trainData = pd.read_csv('train.csv')
train = trainData.values
testData = pd.read_csv('test.csv')
test = testData.values
X = np.c_[train[:, 0], train[:, 2], train[:, 6:7],  train[:, 9]]
X = np.nan_to_num(X)
y = train[:, 1]
Xtest = np.c_[test[:, 0:1], test[:, 5:6],  test[:, 8]]
Xtest = np.nan_to_num(Xtest)


# model
lr = LogisticRegression()
lr.fit(X, y)

où y est un np.ndarray de 0 et de 1

Je reçois ce qui suit:

Fichier "C:\Anaconda3\lib\site-packages\sklearn\modèle_linéaire\logistic.py", ligne> 1174, en bon état check_classification_targets (y)

Le fichier "C:\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py", ligne 172,> dans check_classification_targets soulève ValueError ("Type d'étiquette inconnu:% r"% y_type).

ValueError: type d'étiquette inconnu: 'inconnu'

de la documentation de sklearn: http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression.fit

y: comme un tableau, forme (n_samples,) Valeurs cibles (étiquettes de classe dans la classification, nombres réels dans la régression)

Quelle est mon erreur?

upd:

y est un tableau ([0.0, 1.0, 1.0, ..., 0.0, 1.0, 0.0], dtype = object) taille est (891,)

27
Ivan Zhovannik

Votre y est de type object, de sorte que Sklearn ne peut pas reconnaître son type. Ajoutez la ligne y=y.astype('int') juste après la ligne y = train[:, 1].

62
Miriam Farber