2017-05-22 3 views
-1

私は、scanditにpandasを介してCSVファイルを読み込み、ターゲット列を20個のカテゴリ変数のリストに設定しようとしていました。私はlabel_binarizeを使ってみましたが、それは何らかの読書の後で私がLabelEncoderに切り替えた後に何か良いことをしていないようですが、それはあまり変わっていないようです。私はこれを実行するとScikit-learn 2値カテゴリ化データ

from io import StringIO 
import matplotlib.pyplot as plt 
from sklearn.metrics import accuracy_score 
from sklearn.model_selection import StratifiedKFold 
from sklearn.model_selection import permutation_test_score 
from sklearn import svm, datasets 
from sklearn.metrics import roc_curve, auc, confusion_matrix 
from sklearn.model_selection import train_test_split, ShuffleSplit 
from sklearn.preprocessing import label_binarize, MultiLabelBinarizer, LabelEncoder 
from sklearn.multiclass import OneVsRestClassifier 
from sklearn.tree import DecisionTreeClassifier 
from sklearn.neighbors import KNeighborsClassifier 
from sklearn.ensemble import VotingClassifier 
from sklearn.naive_bayes import GaussianNB 

#loading the data 
data=pd.read_csv("data.csv") 
y = data.iloc[:,19] 
X = data.iloc[:,1:18+20:22] 

#Binarize the output 
le = LabelEncoder() 
le.fit(["0-1","1-1.5","1.5-2","2-2.5","2.5-3","3-3.5","3.5-4","4-4.5","4.5-5","5-5.5","5.5-6","6-6.5","6.5-7","7-7.5","7.5-8","8-8.5","8.5-9","9-9.5","9.5-10","10+" 
]) 
LabelEncoder() 
le.transform(y) 
y = label_binarize(y, le) 
n_classes = y.shape[1] 

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, 
               random_state=0) 

model3 = KNeighborsClassifier(n_neighbors=7) 

はまだ私が取得:

Traceback (most recent call last): 
File "file, line 30, in <module> 
le.transform(y) 
File "C:\Anaconda3\lib\site-packages\sklearn\preprocessing\label.py", line 149, in transform 
classes = np.unique(y) 
File "\Anaconda3\lib\site-packages\numpy\lib\arraysetops.py", line 198, in unique 
ar.sort() 
TypeError: '>' not supported between instances of 'str' and 'float' 

はscikitのためにも可能なターゲットデータのこの種のですか?私はあなたがこのような引用符でカテゴリデータ自体を囲むように必要見つけ、この問題を解決するので、[OK]を

+0

完全なコードを投稿できますか?あなたが掲示したコードがスタックトレースのエラーと一致しません。 –

+0

@VivekKumar余分なものをいくつか追加しました。モデルを実行する前に失敗するため、残りの部分を追加するのに本当の意味はありません。 – Exostrike

+0

使用しているscikitのバージョンは? yのサンプルも表示してください。あなたはそれらがle.fit()で使った値であると確信していますか?もし私がそれらの値からy値を取るならば、期待通りに私のために働いています。 –

答えて

0

:「0-1」

それ以外の場合はPythonは0-1の限りそれを読むと混乱するでしょう。データが正しく読み込まれます。

関連する問題