【发布时间】:2021-05-24 15:25:39
【问题描述】:
我正在尝试在 Kaggle Titanic 数据库上运行 DecisionTreeClassifier。 (https://www.kaggle.com/rahulsah06/titanic?select=train.csv)
这是我的代码:
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import mean_absolute_error
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import cross_val_score
titanic_file_path = '../input/titanic/train.csv'
titanic_data = pd.read_csv(titanic_file_path)
#I create X and y
features= ['Pclass', 'Sex', 'Age', 'SibSp',
'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked']
X= titanic_data[features]
y = titanic_data.Survived
#Split into validation and training data
train_X, val_x, train_y, val_y = train_test_split(X,y, random_state=1)
#model definition and fit
titanic_model = DecisionTreeClassifier(random_state=1)
titanic_model.fit(train_X, train_y)
但是当我运行代码时出现错误:
could not convert string to float: 'female'
如何解决?
【问题讨论】:
-
您不能使用这些数据来简单地训练一个 ML 模型。您必须对功能进行适当的预处理。您的代码中没有哪个
-
实际上有几十个关于这方面的详细教程 - 参见例如kaggle.com/alexisbcook/titanic-tutorial
标签: python machine-learning scikit-learn decision-tree