当前位置: 首页 > 知识库问答 >
问题:

如何在普通最小二乘回归图中使用OneHotEncoder输出

喻元龙
2023-03-14

我一直在尝试使用scikit学习库执行普通最小二乘回归,但遇到了另一个难题。

我使用OneHotEncoder对我的(独立)虚拟/分类功能进行了二值化,我有一个如下数组:

x = [[ 1.  0.  0. ...,  0.  0.  0.]
     [ 1.  0.  0. ...,  0.  0.  0.]
     [ 0.  1.  0. ...,  0.  0.  0.]
     ..., 
     [ 0.  0.  0. ...,  0.  0.  0.]
     [ 0.  0.  1. ...,  0.  0.  0.]
     [ 1.  0.  0. ...,  0.  0.  0.]]

因变量(Y)存储在一维数组中。一切都很美好,但现在当我绘制这些值时,我得到了一个错误:

# Plot outputs
pl.scatter(x_test, y_test, color='black')

ValueError:x和y的大小必须相同

当我分别在X和Y上使用numpy.size时,很明显这是一个合理的错误:

>>> print np.size(x)
5096
>>> print np.size(y)
98

有趣的是,拟合方法可以接受这两组数据。

我的问题是如何转换OneHotEncoder的输出以在回归中使用?

共有1个答案

郏经纬
2023-03-14

如果我理解正确,您将X矩阵作为[m X n]矩阵的输入,以及[n X 1]的一些输出Y,其中m=特征数量,n=数据点数量。

首先,线性回归拟合函数不会考虑X是维数[m x n],Y是维数[n x 1],因为它只会使用维数[1 x m]的参数,即,

Y = theta * X

不幸的是,正如Eikenberg所指出的,您不能像以前那样使用matplotlibs分散调用根据Y值绘制所有X特征,因此您会收到大小不兼容的错误消息,它希望绘制n X n而不是(n X m)X n。

要解决问题,请尝试一次查看一个功能:

pl.scatter(x_test[:,0], y_test, color='black')

假设您已将数据标准化(减去平均值,再除以平均值),一种快速而肮脏的查看趋势的方法是将所有趋势绘制在一个轴上:

fig = plt.figure(0)
ax = fig.add_subplot(111)

n, m = x_test.size
for i in range(m):
   ax.scatter(x_test[:,m], y_test)

plt.show()

要在独立的图形上一次可视化(取决于功能的数量),然后查看,例如,subplot2rid例程或另一个像熊猫一样的python模块。

 类似资料:
  • 我试图用最小二乘法将实验数据拟合成一个三次多项式方程。我有两个自变量和一个因变量,这使得它是一个非线性拟合。我使用函数“fitnlm”和“lsqcurvefit”计算了系数,这两个函数都建议用于非线性回归拟合。我从两个函数中获得了不同的系数值,尽管我输入了相同的初始系数(猜测)值。请告知两个函数中哪一个更好,以及我可以信任的系数。在使用lsqcurvefit时,如何检查均方根误差的值?非常感谢您的

  • 最小二乘法是用来做函数拟合或者求函数极值的方法。在机器学习,尤其是回归模型中,经常可以看到最小二乘法的身影,这里就对我对最小二乘法的认知做一个小结。 1.最小二乘法的原理与要解决的问题 最小二乘法是由勒让德在19世纪发现的,原理的一般形式很简单,当然发现的过程是非常艰难的。形式如下式: 目标函数 = Σ(观测值-理论值) $$^2$$ 观测值就是我们的多组样本,理论值就是我们的假设拟合函数。目标函

  • (这正是网站上的内容) 结果是

  • 问题内容: 是否可以将selenium连接到我通常使用的浏览器而不是驱动程序?对于正常浏览,我使用带有多个插件的chrome-添加block plus,flashblock等。我想尝试使用此特定配置加载网站。我怎样才能做到这一点? 我不在乎是否使用驱动程序生成进程。我只想要完整的浏览器配置-Cookie,插件,字体等。 谢谢 问题答案: 首先,您需要下载,然后将环境变量的可执行路径放置到环境变量中

  • 我正在做一个项目,用最小二乘法找到正弦函数的近似值。我也可以用我自己选择的12个值。由于我不知道如何求解,我想到用泰勒级数来求解正弦,然后用5阶多项式来求解。下面是我的代码: 然后在matlab中得到这个结果

  • 1 原理   给定n个带权的观察样本$(w_i,a_i,b_i)$: $w_i$表示第i个观察样本的权重; $a_i$表示第i个观察样本的特征向量; $b_i$表示第i个观察样本的标签。   每个观察样本的特征数是m。我们使用下面的带权最小二乘公式作为目标函数: minimize{x}\frac{1}{2} \sum{i=1}^n \frac{wi(a_i^T x -b_i)^2}{\sum{k=