python - 如何将这些数据转换为逻辑回归?
问题描述
我有'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 中弄错了行和列。
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.]])
推荐阅读
- python - Matplotlib:将 plot_surface 中的 cmap 设置为 x 和 y 轴
- apache-flink - Apache Flink:窗口检查点
- javascript - 如何在javascript中显示矩阵行头
- javascript - Google Authentication JS API 重定向到错误的 URL
- angular - angular 6过滤器在界面上不起作用
- azure - 如何在 terraform 中继承/传递变量
- python - 如何在一列上分组并按日期排序,并且每个日期都使用熊猫在时间序列数据中按小时排序
- mysql - 我们如何将 AND & OR 运算符与简单连接一起使用?
- .net - 流的意外结束,在我朋友的电脑上,但不是我的。.Net 核心,SQL
- spring-security - Spring 安全性:ldap 配置