我正在尝试实现KNN,但是当我转换X_train和X_test却给出错误时,我是新手,请对此提供任何帮助。
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
它给出错误“无法将字符串转换为浮点数” 该怎么办?
答案 0 :(得分:0)
当我看到这样的错误时,我要做的第一件事就是检查我的输入。如果出现“无法将字符串转换为浮点数”错误,则您的输入中可能包含非数字字符串(因为它看起来像此KNN函数仅将数字作为输入)。
我假设X_train和X_test是数据帧-尝试为数据帧中的每一列运行以下内容:
for i in range(len(X_train.columns)):
try:
[float(j) for j in X_train[X_train.columns[i]]]
print(X_train.columns[i],' is all-numeric')
except:
pass
运行时哪个列都不打印,这是您需要查看的列,以查看是否可以清除该列中的非数字条目。
编辑:如果只有一列非数字字符串(例如“ Iris-setosa”,“ Iris-versicolor”等),则必须将它们转换为数字或“虚拟变量”列KNN函数的作用。
编辑2:哎呀。我写了错误的代码。修复它。