如何修复错误以适应模型但是,y_train 给出错误作为 ML 中的值错误?

How to fix error to fit model but,y_train gives error as value error in ML?

当我在 y_train 时尝试 运行 时如何修复错误,它给出 valuerror.I 我检查了 y_test、y_train 的形状它给出了一个值 (2000,),但另一个值 gives.What 无法修复错误。

import pandas as pd
df = pd.read_csv('iris.csv')
df.head()
df.shape
df.loc[df["species"] == "setosa", "species"] = 0
df.loc[df["species"] == "versicolor", "species"] = 1
df.loc[df["species"] == "virginica", "species"] = 2
from sklearn.model_selection import train_test_split
X=df.drop('species',axis=1)
y=df['species']
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.2, random_state=156)
from sklearn.tree import DecisionTreeClassifier
my_model = DecisionTreeClassifier(random_state=0)
result = my_model.fit(X_train,y_train)

你做事的方式:

df.loc[df["species"] == "setosa", "species"] = 0
df.loc[df["species"] == "versicolor", "species"] = 1
df.loc[df["species"] == "virginica", "species"] = 2

使 df['species'] 成为 object dtype,DecisionTreeClassifier 不支持它。相反,你应该这样做:

df['species'] = df['species'].map({'setosa':0, 'versicolor':1, 'virginica':2})