python - sklearn LabelEncoder:TypeError:'int'和'str'的实例之间不支持'<'
问题描述
我想使用 KNN 算法进行文本分类。我有 .csv 扩展名的数据。
如果我使用此代码打印,数据如下所示:
# Preprocessing
X = np.array(dataset.iloc[:, :1])
y = np.array(dataset['Class'])
print("Data variabel X : ", X)
print("Data variabel y : ", y)
输出 :
[['pada awalnya aku memandang gadis itu nani namanya']['dua buah melon yang subur segar']]['Pornografi''Non-Pornografi']
我分开训练和测试:
# Train Test Split
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20)
# loading library
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import LabelEncoder
# Feature Scaling
lb = LabelEncoder()
lb.fit(X_train)
X_train = lb.transform(X_train)
X_test = lb.transform(X_test)
print("X_train : ", X_train)
print("X_test : ", X_test)
# instantiate learning model (k = 3)
knn = KNeighborsClassifier(n_neighbors=3)
# fitting the model
knn.fit([[X_train, y_train]], [y])
# predict the response
pred = knn.predict(X_test)
# evaluate accuracy
print (accuracy_score(y_test, pred))
我收到错误消息:
<ipython-input-223-7d80eb4ea7d1> in <module>()
8
9 X_train = lb.transform(X_train)
---> 10 X_test = lb.transform(X_test)
11
12 print("X_train : ", X_train)
TypeError: '<' not supported between instances of 'int' and 'str'
我的代码有什么问题?
解决方案
尝试这个:
lb.transform(X_test.astype(str))
基本上,您需要将数据转换为一种格式。
推荐阅读
- linux - 通过 apt 在 Ubuntu 中安装 Maven
- php - 如何不基于键而是基于数组元素顺序获取数组的N个元素值
- aws-cdk - AWS CDK,CfnParameter valueAsList:如何在 cmd 参数中传递列表
- typescript - 模块的打字稿编译器选项
- c++ - 是否可以使用迭代器和加法/除法在向量中找到分隔符?
- javascript - 创建用户身份验证后注册配置文件更新不起作用 Firebase
- sql - 通过使用 sql 替换空值来填充最后一个已知值的问题
- excel - 基于下拉结果的Excel动态命名范围
- javascript - 如何在一个父 ReactJS 的 HTML 兄弟姐妹数组中查找 HTML 元素
- sql - 我可以在执行 count() 时使用 where 条件吗?