首页 > 解决方案 > 使用随机森林分类器训练模型时的值错误

问题描述

from sklearn import ensemble
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import OneHotEncoder
import time
from sklearn import metrics
from sklearn import preprocessing
from sklearn.linear_model import LinearRegression
enc = preprocessing.OneHotEncoder()
onehotencoder = OneHotEncoder(categories='auto')
enc.fit(X)
onehotlabels = enc.transform(X).toarray()
onehotlabels.shape
clf=RandomForestClassifier(n_estimators=10)
clf.fit(X_train,y_train)
y_pred = clf.predict(X_test)
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
predict = clf.predict(X_test)
print("Evaluation on Test Set",predict)

我这样做是为了用随机森林分类器训练我的模型。我收到以下错误:

ValueError: could not convert string to float: 'gorilla'

标签: pythonscikit-learnrandom-forest

解决方案


通过查看您的代码,我无法确定,因为 X、X_train 或 X_test 的数据结构不清楚。但是,我怀疑onehotlabels没有使用该变量。如果一种热编码正常工作,则不会包含“gorilla”字符串。

所以,我建议您检查以下代码是否已执行。

X_train, X_test = train_test_split(onehotlabels)

推荐阅读