Python 如何将这些数据转换为逻辑回归?
我有“y”和“X”数据:Python 如何将这些数据转换为逻辑回归?,python,scikit-learn,logistic-regression,Python,Scikit Learn,Logistic Regression,我有“y”和“X”数据: y=[1,0,0,0,0,0,0,0,0…]就我而言没问题 及 X[0]可以取值:“reg'/'pref'/'cur'/'val” X[1]:末尾带有mounth+b(=开始)编号的字符串 X[2]:末尾带有mounth+e(=end)编号的字符串 X[3]:“买入”或“卖出” 但我做不到 logreg = LogisticRegression() logreg.fit(X,y) 因为我对X的结构有问题(它是带字符串的列表) 我想修复它并执行以下操作: logreg
y=[1,0,0,0,0,0,0,0,0…]
就我而言没问题
及
X[0]
可以取值:“reg'/'pref'/'cur'/'val”
X[1]
:末尾带有mounth+b(=开始)编号的字符串
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
所有元素都是相同的。如何正确转换.fit(X,y)的数据?问题在于,您将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.]])
将numpy导入为np
从sk学习导入预处理
X=[['reg','03b','03e','buy'],
['reg'、'03b'、'04e'、'sell'],
['pref'、'02b'、'03e'、'sell'],
['cur','03b','03e','buy'],
['val','03b','03e','buy'],
['reg'、'03b'、'03e'、'购买']]
X=np.数组(X)
b=np.零(X.形)
logreg=preprocessing.LabelEncoder()
i=0
而我
您能提供您得到的错误吗?我添加了更多信息。我在转换的X中有所有相同的元素,但它不正确,因为['cur''03b''03e''buy']=['reg''05b''06e''sell']=[3 0 1 2]@user330959如果您觉得答案有用,请将其作为已接受的答案检查,以节省其他有类似问题的人的时间。
[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]
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.]])