gpt4 book ai didi

python - 逻辑回归 => 值错误 : setting an array element with a sequence

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

我是机器学习的新手,我正在尝试对我的样本数据集应用逻辑回归,我有一个包含数字列表的特征并想要预测类别。

以下是我的代码

from sklearn.linear_model import LogisticRegression
a = [[1,2,3], [1,2,3,4,5,6], [4,5,6,7], [0,0,0,7,1,2,3]]
b = [0,1,0, 0]
p = [[9,0,2,4]]

clfModel1 = LogisticRegression(class_weight='balanced')
clfModel1.fit(a,b)
clfModel1.predict(p)

我收到以下错误

Traceback (most recent call last):
File "F:\python_3.4\NLP\t.py", line 7, in <module>
clfModel1.fit(a,b)
File "C:\Python34\lib\site-packages\sklearn\linear_model\logistic.py", line 1173, in fit
order="C")
File "C:\Python34\lib\site-packages\sklearn\utils\validation.py", line 521, in check_X_y
ensure_min_features, warn_on_dtype, estimator)
File "C:\Python34\lib\site-packages\sklearn\utils\validation.py", line 382, in check_array
array = np.array(array, dtype=dtype, order=order, copy=copy)
ValueError: setting an array element with a sequence.
>>>

是否有某种方法可以更改数据,以便我可以应用分类器并预测结果

最佳答案

逻辑回归是一种形式函数的估计:

R^d -> [0,1]

但是您的数据显然不是 R^d 的子集,因为 a 中的每个样本都有不同的长度(维度数),因此无法应用。

另一个问题是 p 也应该是样本列表,而不是单个样本(当然,它也必须具有 d 维)。

没有“解决办法”,这只是一个错误的想法。处理“奇数”数据的典型解决方案是什么:

  • 您预定义自己的自定义映射(特征提取步骤),给定不同长度的点输出固定长度的表示(因此输出 d 个数字)。没有通用的方法可以做到这一点 - 一切都取决于数据。
  • 有些模型可以处理不同长度的输入,例如 LSTM,但从逻辑回归到循环神经网络是一个巨大的飞跃。
  • 使用基于相似性的方法(例如 kNN),并简单地定义您自己的衡量方式来衡量两个“数字列表”的相似性。

没有其他方法 - 要么重新考虑数据的表示,要么改变方法。

关于python - 逻辑回归 => 值错误 : setting an array element with a sequence,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45492551/

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