如何解决此 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 中修复此错误?