【问题标题】:How to transform this data for logistic regression?如何将这些数据转换为逻辑回归?
【发布时间】:2019-08-17 06:24:22
【问题描述】:

我有 'y' 和 'X' 数据:

y = [1, 0, 0, 0, 0, 0, 0, 0 ...] 对我来说没问题

X = [['reg' '03b' '03e' 'buy']
 ['reg' '03b' '04e' 'sell']
 ['pref' '02b' '03e' 'sell']
 ['cur' '03b' '03e' 'buy']
 ['val' '03b' '03e' 'buy']
 ['reg' '03b' '03e' 'buy'] ...]

X[0] 可以取值:'reg'/'pref'/'cur'/'val'

X[1] : 以 mounth + b( = begin) 结尾的字符串

X[2] : 以 mounth + e( = end) 结尾的字符串

X[3]:“买”或“卖”

但我做不到

logreg = LogisticRegression()
logreg.fit(X,y)

因为我对 X 的结构有问题(它是带有字符串的列表)

我想修复它并做:

logreg = preprocessing.LabelEncoder()
i=0
while i<len(X):
    logreg.fit(X[i])
    b[i]=logreg.transform(X[i])
    i=i+1

但我明白了:

[3 0 1 2]
[3 0 1 2]
[3 0 1 2]
[3 0 1 2]
[3 0 1 2]
[3 0 1 2]
...
[3 0 1 2]

所有元素都相同。如何正确转换 .fit(X,y) 的数据?

【问题讨论】:

  • 你能提供你得到的错误吗?
  • 我添加了更多信息。我在转换后的 X 中有所有相同的元素并且它不正确,因为 ['cur' '03b' '03e' 'buy'] = ['reg' '05b' '06e' 'sell']= [3 0 1 2]

标签: python scikit-learn logistic-regression


【解决方案1】:

问题是你弄错了X中的行和列。

import numpy as np
from sklearn import preprocessing
X = [['reg', '03b', '03e', 'buy'],
    ['reg', '03b', '04e', 'sell'],
    ['pref', '02b', '03e', 'sell'],
    ['cur', '03b', '03e', 'buy'],
    ['val', '03b', '03e', 'buy'],
    ['reg', '03b', '03e', 'buy']]
X = np.array(X)
b = np.zeros(X.shape)
logreg = preprocessing.LabelEncoder()
i = 0
while i < X.shape[1]:
    logreg.fit(X[:,i])
    b[:,i] = logreg.transform(X[:,i])
    i += 1
b
array([[2., 1., 0., 0.],
       [2., 1., 1., 1.],
       [1., 0., 0., 1.],
       [0., 1., 0., 0.],
       [3., 1., 0., 0.],
       [2., 1., 0., 0.]])

【讨论】:

  • @user330959 如果您觉得答案有帮助,请将其作为已接受的答案进行检查,以便为遇到类似问题的其他人节省时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 2020-08-31
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
  • 2022-12-17
相关资源
最近更新 更多