2017-07-27 52 views
3

我嘗試運行以下代碼。順便說一句,我是Python和sklearn的新手。ValueError:未知的標籤類型:'unknown'

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) 

,其中y是0的一個np.ndarray和1的

我收到以下:

File "C:\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py", line >1174, in fit check_classification_targets(y)

File "C:\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py", line 172, >in check_classification_targets raise ValueError("Unknown label type: %r" % y_type)

ValueError: Unknown label type: 'unknown'

從sklearn文檔:http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression.fit

Y:陣列狀,形狀(n_samples) 目標值(分類中的分類標籤,迴歸中的實數)

我的錯誤是什麼?

UPD:

y爲陣列([0.0,1.0,1.0,...,0.0,1.0,0.0],D型細胞=對象)大小是(891,)

+0

請提供一瞥數據和進口。你爲什麼使用numpy,你也可以通過名稱來選擇數據框的列。順便說一句,爲什麼測試文件與火車文件有不同的結構。這很奇怪。 – Quickbeam2k1

+0

如果'scikit-learn'無法知道你想解決什麼類型的問題(查看'y'數據,它將返回二進制,多類,連續等),則會出現此錯誤。具體而言,什麼類型的數據是在你的'y'?在這裏發佈,或者@ Quickbeam2k1表示,如果發佈完整數據的樣本,它會更有幫助。 –

回答

10

y是鍵入object,所以sklearn無法識別其類型。在行y = train[:, 1]後面添加行y=y.astype('int')

+0

明白了!米莉亞姆,非常感謝! –

+0

不客氣:) –

相關問題