abalone.head()
X = abalone.iloc[:, [2,7]].values
y = abalone.iloc[:,-1].values
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=5)
classifier.fit(X_train, y_train)
我该怎么办?帮帮我!
答案 0 :(得分:0)
您将 floats
传递给期望分类值作为目标向量的分类器。如果您将其转换为 int
,它将被接受为输入。
您可以简单地使用 y=y.astype('int')
或
最好使用 scikit 的 labelEncoder
函数转换您的训练分数。
同样适用于您的 DecisionTree 和 KNeighbors 限定符。
>>> from sklearn import preprocessing
>>> from sklearn import utils
>>> enc = preprocessing.LabelEncoder()
>>> encoded = enc.fit_transform(trainingScores)
array([1, 3, 2, 0], dtype=int64)
>>> print(utils.multiclass.type_of_target(trainingScores))
continuous
>>> print(utils.multiclass.type_of_target(trainingScores.astype('int')))
multiclass
>>> print(utils.multiclass.type_of_target(encoded))
multiclass