首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scikit-学习二进制分类数据

Scikit-学习二进制分类数据
EN

Stack Overflow用户
提问于 2017-05-22 09:49:13
回答 1查看 740关注 0票数 0

我一直试图通过熊猫将CSV文件加载到scikit中,并将目标列设置为包含20个分类变量的列表。我尝试过使用label_binarize,但这似乎没有任何好处,所以在阅读了一些文章之后,我改用了LabelEncoder,但它似乎没有什么变化。

代码语言:javascript
复制
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)

然而,当我运行这个程序时,我得到:

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-23 07:56:56

好的,为了解决这个问题,我发现您需要用如下的引号包围分类数据本身:"0-1“。

否则,Python会将其读为0-1的长,并感到困惑。数据正确加载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44109782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档