gpt4 book ai didi

python - One-hot 编码的逻辑回归

转载 作者:行者123 更新时间:2023-11-30 08:30:45 28 4
gpt4 key购买 nike

我有一个 Dataframe (data),其头部如下所示:

          status      datetime    country    amount    city  
601766 received 1.453916e+09 France 4.5 Paris
669244 received 1.454109e+09 Italy 6.9 Naples

我想预测给定日期时间、国家/地区、金额城市状态

由于状态、国家、城市是字符串,我对它们进行了one-hot编码:

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)

但我收到以下错误:

could not convert string to float: 'received'

我感觉我错过了一些东西,我想就如何继续进行一些意见。感谢您到目前为止的阅读!

最佳答案

考虑以下方法:

首先让我们对所有非数字列进行 one-hot 编码:

In [220]: from sklearn.preprocessing import LabelEncoder

In [221]: x = df.select_dtypes(exclude=['number']) \
.apply(LabelEncoder().fit_transform) \
.join(df.select_dtypes(include=['number']))

In [228]: x
Out[228]:
status country city datetime amount
601766 0 0 1 1.453916e+09 4.5
669244 0 1 0 1.454109e+09 6.9

现在我们可以使用LinearRegression分类器:

In [230]: classifier.fit(x.drop('status',1), x['status'])
Out[230]: LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)

关于python - One-hot 编码的逻辑回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44308504/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com