Sklearn.linear_model import LinearRegression не работает для рядов данных, но работает для фреймов данных. Почему? - PullRequest
2 голосов
/ 07 января 2020

Я использовал следующий блок кода и получил ошибку трассировки:

Код (в приведенном ниже коде X_train и y_train - ряд данных (один столбец данных)):

from sklearn.linear_model import LinearRegression
regressor = LinearRegression(fit_intercept=True)
regressor.fit(X_train, y_train)

Error:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-167-3392c2ad36e2> in <module>
      2 from sklearn.linear_model import LinearRegression
      3 regressor = LinearRegression(fit_intercept=True)#Instantiating an object of the LinearRegression class.#"fit_intercept = True" is asking the linear regressor to assume that there is a y-intercept.
----> 4 regressor.fit(X_train, y_train) #Passing in our training data

~\Anaconda3\lib\site-packages\sklearn\linear_model\base.py in fit(self, X, y, sample_weight)
    461         n_jobs_ = self.n_jobs
    462         X, y = check_X_y(X, y, accept_sparse=['csr', 'csc', 'coo'],
--> 463                          y_numeric=True, multi_output=True)
    464 
    465         if sample_weight is not None and np.atleast_1d(sample_weight).ndim > 1:

Код работает после того, как я изменил X_train и y_train на кадры данных со следующим синтаксисом; X = pd.DataFrame (IceCream.Tempera) и y = pd.DataFrame (IceCream.Revenue) Дело в том, что я не знаю, почему это работает, но не ряд данных. Я беру курс по машинному обучению на SuperDataScience.com, и блок кода в верхней части этого вопроса работал для преподавателя без необходимости преобразования серии данных в кадры данных. Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 07 января 2020

Документация от SKLearn по LinearRegression

sklearn.linear_model.LinearRegression

четко показывает, что в методе подгонки X: {массивоподобная, разреженная матрица} формы ( n_samples, n_features)

Серия A pandas не удовлетворяет этому требованию.

...