scikit-learn python的线性回归模拟

Posted

技术标签:

【中文标题】scikit-learn python的线性回归模拟【英文标题】:simulation of linear regression scikit-learn python 【发布时间】:2021-04-01 12:43:15 【问题描述】:

我想运行线性回归,但此代码从“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: Expected 2D array, got 1D array instead: 【参考方案1】:

使用.values.reshape(-1, 1):

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

【讨论】:

谢谢,它有效,但我不明白为什么我的版本会出现问题.. 如果有帮助,则通过将其标记为解决方案来结束问题。提前祝圣诞快乐:)

以上是关于scikit-learn python的线性回归模拟的主要内容,如果未能解决你的问题,请参考以下文章

在 python 中使用 scikit-learn 线性回归模型时出错

scikit-learn 中的线性回归

R 与 scikit-learn 中用于线性回归 R2 的交叉验证

如何修复我在 scikit-learn 中的线性回归中遇到的错误

使用 Scikit-learn 进行加权线性回归

Python - 线性回归(Linear Regression) 的 Python 实现