【发布时间】:2019-03-23 17:53:02
【问题描述】:
我尝试运行 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)
`
【问题讨论】:
-
您可能试图将
"?"作为 X 或 Y 的元素。 -
欢迎来到 StackOverflow。请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您描述的问题。
-
您的
classifier无法将X_train或y_train转换为浮点数,这是错误,请尝试使用float(X_train)和float(y_train)手动将它们转换为浮点数。 -
您的数据中有一些字符串或其他非数字字符(如
'?')。您必须将它们转换为数字,以便 ML 模型可以处理它们。根据数据类型,有多种方案可用于将字符串特征编码为数字。