如何解决此 ValueError:仅接受 2 个非关键字参数 sklearn python

Posted

技术标签:

【中文标题】如何解决此 ValueError:仅接受 2 个非关键字参数 sklearn python【英文标题】:how to resolve this ValueError: only 2 non-keyword arguments accepted sklearn python 【发布时间】:2018-06-28 18:08:57 【问题描述】:

您好,我是 python 中 sklearn 的新手,我正在尝试学习它并使用此模块根据两个特征预测一些数字,这是我得到的错误:

ValueError: 只接受 2 个非关键字参数

这是我的代码:

    from sklearn.linear_model import LinearRegression
    import numpy as np

    trainingData = np.array([[861, 16012018], [860, 12012018], [859, 9012018], [858, 5012018], [857, 2012018], [856, 29122017], [855, 26122017], [854, 22122017], [853, 19122017]])
    trainingScores = np.array([11,18,23,33,34,6],[10,19,21,33,34,1], [14,18,22,23,31,6],[16,22,29,31,33,10],[21,24,27,30,31,6],[1,14,15,20,27,7],[1,9,10,11,15,8],[2,9,27,31,35,1],[7,13,18,22,33,2])

    clf = LinearRegression(fit_intercept=True)
    clf.fit(trainingScores,trainingData)

   predictionData = np.array([862, 19012018 ])
   x=clf.predict(predictionData)
   print(x)

【问题讨论】:

这里的 trainingData 和 trainingScores 是什么?这是一个多输出回归问题吗? 你也使用了 fit() 错误。它应该是 fit(X, y) 但你正在做 fit(y, X) 训练数据由2个特征组成,数字和选择数字的日期,训练分数为6个随机数 ps。修复 fit() 后我仍然收到错误 【参考方案1】:

我不确定您要在这里做什么,但请更改此行:

trainingScores = np.array([11,18,23,33,34,6],[10,19,21,33,34,1], [14,18,22,23,31,6],[16,22,29,31,33,10],[21,24,27,30,31,6],[1,14,15,20,27,7],[1,9,10,11,15,8],[2,9,27,31,35,1],[7,13,18,22,33,2])

对此(注意数据周围的额外方括号):

trainingScores = np.array([[11,18,23,33,34,6],[10,19,21,33,34,1], [14,18,22,23,31,6],[16,22,29,31,33,10],[21,24,27,30,31,6],[1,14,15,20,27,7],[1,9,10,11,15,8],[2,9,27,31,35,1],[7,13,18,22,33,2]])

然后像这样改变 fit() 中的参数顺序:

clf.fit(trainingData,trainingScores)

最后像这样更改预测数据(再次查看额外的方括号):

predictionData = np.array([[862, 19012018]])

之后您的代码将运行。

【讨论】:

快速提问我将如何将数据拆分为训练和测试,然后进行预测???? @dondeveto 请先向我解释一下你想做什么?为什么数据有2个特征,分数有6个目标? 我想查看/预测六人的数量。我想看看他们的选择是否有规律。特征是猜测的次数和猜测的日期 @dondeveto 使用train_test_split()【参考方案2】:

你在 ML 中做一个线性回归代码,并尝试用

trainingScores = np.array(
  [11,18,23,33,34,6],
  [10,19,21,33,34,1], 
  [14,18,22,23,31,6],
  [16,22,29,31,33,10],
  [21,24,27,30,31,6],
  [1,14,15,20,27,7],
  [1,9,10,11,15,8],
  [2,9,27,31,35,1],
  [7,13,18,22,33,2]
)

【讨论】:

尝试更改行?

以上是关于如何解决此 ValueError:仅接受 2 个非关键字参数 sklearn python的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:此求解器需要数据中至少 2 个类的样本,但数据仅包含一个类:1.0

如何在 Python 中仅捕获某种类型的 ValueError?

Python 2 - ValueError:没有足够的值来解包(预期 6,得到 1)

如何解决“ValueError: Found array with dim 4. Estimator expected <= 2.”?

如何解决 Python 中的“ValueError:找到样本数量不一致的输入变量”问题

PythonException:从 UDF 引发异常:'ValueError:如何在 Databricks 中修复此错误?