ValueError:无法将字符串转换为float:'?'

时间:2018-10-18 20:37:46

标签: python svm

我试图运行SVM程序,但出现上述错误。代码在下面。请指出其中的错误。

import numpy as np
import pandas as pd
from sklearn import svm
from sklearn.model_selection import train_test_split
data = pd.read_csv('risk_factors_cervical_cancer.csv')
X = np.array(data[[#some data elements]])
y = np.array(data[#some data elements])
print(X)
print(y)
print(X.shape)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, 
random_state=30)
classifier = svm.SVC()
classifier.fit(X_train, y_train)    #the error occurs here 
y_pred = svm.predict(X_test)
acc = accuracy_score(y_test, y_pred)

`

1 个答案:

答案 0 :(得分:0)

正如@Guimoute所写,为了使用任何机器学习算法训练数据,始终必须对数据进行预处理。尝试使用X.head(10)来获得对所使用数据的介绍。发生您的错误是因为存在值“?”在您的X列中。将其替换为合理的数字(例如列的平均值),以获得更好的结果。