как решить эту ошибку ValueError: принимаются только 2 аргумента, не являющиеся ключевыми словами sklearn python

привет, я новичок в sklearn в python, и я пытаюсь изучить его и использовать этот модуль для прогнозирования некоторых чисел на основе двух функций, вот ошибка, которую я получаю:

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)

person dondeveto    schedule 19.01.2018    source источник
comment
Что такое trainingData и trainingScores здесь? Является ли это проблемой регрессии с несколькими выходами?   -  person Vivek Kumar    schedule 19.01.2018
comment
Также вы неправильно используете метод fit(). Это должно быть подходит (X, y), но вы делаете подходит (y, X)   -  person Vivek Kumar    schedule 19.01.2018
comment
данные обучения состоят из 2 функций: числа и даты, когда числа выбраны, а оценка обучения составляет 6 случайных чисел.   -  person dondeveto    schedule 19.01.2018
comment
пс. я все еще получаю сообщение об ошибке после исправления fit()   -  person dondeveto    schedule 19.01.2018


Ответы (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])

к этому (обратите внимание на дополнительные квадратные скобки вокруг ваших данных):

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]])

После этого ваш код запустится.

person Vivek Kumar    schedule 19.01.2018
comment
быстрый вопрос, как я могу разделить данные на обучение и тестирование, а затем на прогнозирование???? - person dondeveto; 19.01.2018
comment
@dondeveto Пожалуйста, сначала объясни мне, что ты пытаешься сделать? Почему данные имеют 2 функции, а оценки имеют 6 целей? - person Vivek Kumar; 19.01.2018
comment
Я хочу увидеть / предсказать числа шести человек. Я хочу посмотреть, есть ли закономерность в их выборе. функции - это количество догадок и дата, когда они были сделаны - person dondeveto; 20.01.2018
comment
@dondeveto Используйте train_test_split() - person Vivek Kumar; 20.01.2018

Вы делаете код линейной регрессии в 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]
)
person Arpit Sharma    schedule 17.05.2020
comment
Попробуйте изменить какую строку? - person desertnaut; 19.05.2020