我想使用以下代码将列类型更改为类别:
df["Geography"] = df["Geography"].astype("category")
然后,使用随机森林算法如下:
X = df.drop('target', axis = 1)
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.15, random_state = 123,stratify=y )
forest = RandomForestClassifier(n_estimators = 500, random_state = 1)
以及拟合算法时:
forest = RandomForestClassifier(n_estimators = 500, random_state = 1)
出现如下错误:
could not convert string to float: 'Spain'
西班牙是地理列中的一行,我将其转换为分类值。为什么我会出错?
您的特征类型已更改为“类别”,但类别可以是国家名称,因此如果您需要类别作为数字,您可以使用分类索引:
df["Geography"] = pd.CategoricalIndex(df["Geography"])