【发布时间】:2017-11-02 15:49:38
【问题描述】:
我有一个数据框 (data),其头部如下所示:
status datetime country amount city
601766 received 1.453916e+09 France 4.5 Paris
669244 received 1.454109e+09 Italy 6.9 Naples
我想预测给定datetime, country, amount 和city 的status
由于status, country, city 是字符串,我对它们进行了单热编码:
one_hot = pd.get_dummies(data['country'])
data = data.drop(item, axis=1) # Drop the column as it is now one_hot_encoded
data = data.join(one_hot)
然后我创建一个简单的线性回归模型并拟合我的数据:
y_data = data['status']
classifier = LinearRegression(n_jobs = -1)
X_train, X_test, y_train, y_test = train_test_split(data, y_data, test_size=0.2)
columns = X_train.columns.tolist()
classifier.fit(X_train[columns], y_train)
但我收到以下错误:
无法将字符串转换为浮点数:'received'
我觉得我在这里错过了一些东西,我想就如何继续进行一些输入。 感谢您到目前为止的阅读!
【问题讨论】:
-
试试
y_data = data['status'] == 'received',我很确定LinearRegression在这里期待一个数字/布尔变量。
标签: python pandas machine-learning regression one-hot-encoding