Моделирование линейной регрессии scikit-learn python

Я хотел бы запустить линейную регрессию, но этот код генерирует ошибку, начинающуюся с «reg = LinearRegression()»

import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
from scipy.stats import binom

from scipy.stats import norm
# generate random numbers from N(0,1)
x = norm.rvs(size=10000,loc=0,scale=1)
y = norm.rvs(size=10000,loc=0,scale=1)
z = binom.rvs(n=10,p=0.8,size=10000)
df = pd.DataFrame(data = {'v1':x.flatten(),'target':y.flatten(),'label':z.flatten()})
df.head(10)

reg = LinearRegression()
reg.fit(df['v1'], df["target"])

сообщение об ошибке: ValueError: ожидался 2D-массив, вместо него получен 1D-массив: массив=[ 0,39507346 -0,01013895 -0,83918156 ... 0,47254883 0,02202747 0,50782984]. Измените форму данных либо с помощью array.reshape(-1, 1), если ваши данные содержат одну функцию, либо с помощью array.reshape(1, -1), если они содержат один образец.

любой намек на то, что не так?

Отвечает ли это на ваш вопрос? ValueError: Ожидался 2D-массив, вместо него получен 1D-массив:

Nathan Furnal 22.12.2020 21:03
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
248
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте .values.reshape(-1, 1):

reg.fit(df['v1'].values.reshape(-1, 1), df["target"].values.reshape(-1, 1))

спасибо, это работает, но я не понимаю, почему моя версия дает проблемы.

progster 22.12.2020 21:03

Если это поможет, закройте вопрос, отметив это как решение. Заранее с Рождеством :)

Pygirl 22.12.2020 21:04

Другие вопросы по теме