Я хотел бы запустить линейную регрессию, но этот код генерирует ошибку, начинающуюся с «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), если они содержат один образец.
любой намек на то, что не так?






Используйте .values.reshape(-1, 1):
reg.fit(df['v1'].values.reshape(-1, 1), df["target"].values.reshape(-1, 1))
спасибо, это работает, но я не понимаю, почему моя версия дает проблемы.
Если это поможет, закройте вопрос, отметив это как решение. Заранее с Рождеством :)
Отвечает ли это на ваш вопрос? ValueError: Ожидался 2D-массив, вместо него получен 1D-массив: