gpt4 book ai didi

python - Gaussian NB fit() 函数需要固定长度的向量

转载 作者:行者123 更新时间:2023-12-01 02:42:19 25 4
gpt4 key购买 nike

我正在尝试实现这样的高斯 NB 训练。然而,如果 X 的维度不相等(即 X 内的所有列表需要具有相同的长度),则 gnb.fit() 会引发异常。如果我的训练样本是不同长度的向量,调用 fit() 的正确方法是什么?

 def train(X, Y):
gnb = GaussianNB()
gnb.fit(X, Y)
return gnb

>>> X = [[1,2,3], [4,5,6,7], [8,9]]
>>> Y = [1,1,1]
>>> snb.train(X, Y)

/Library/Python/2.7/site-packages/sklearn/utils/validation.py:395:
DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17
and will raise ValueError in 0.19. Reshape your data either using
X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1)
if it contains a single sample.
DeprecationWarning)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "snb.py", line 113, in train
gnb.fit(X, Y)
File "/Library/Python/2.7/site-packages/sklearn/naive_bayes.py", line
182, in fit
X, y = check_X_y(X, y)
File "/Library/Python/2.7/site-packages/sklearn/utils/validation.py",
line 521, in check_X_y
ensure_min_features, warn_on_dtype, estimator)
File "/Library/Python/2.7/site-packages/sklearn/utils/validation.py",
line 402, in check_array
array = array.astype(np.float64)
ValueError: setting an array element with a sequence.

最佳答案

所有 X 向量必须长度相同。高斯朴素贝叶斯估计器旨在根据一组因素进行预测。如果每个 X 都有一个可变的数字,分类器如何确定哪个元素属于哪个因子?

一种选择是用 0 值填充 X 向量,以确保它们的长度相等。否则,您需要考虑变量预处理。

关于python - Gaussian NB fit() 函数需要固定长度的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45541520/

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