了解多元线性回归

问题描述 投票:1回答:2

我在做多元回归问题。我有如下设置下面的数据。

rank--discipline--yrs.since.phd--yrs.service--sex--salary
[  1           1             19           18    1  139750],......

我拿着工资作为因变量,其他变量作为自变量。做数据预处理后,我跑了梯度下降,回归模型。我估计的偏置(截距),系数为所有独立功能。我想为实际值和回归线我预测的假设做积散。因为我们有一个以上的功能在这里,

我有以下问题。

  1. 虽然绘制实际值(零星地块),我怎么决定x轴的值。意思是,我有值列表。例如,第一行[1,1,19,18,1] => 139750如何变换或映射[1,1,19,18,1]到x轴上。?我需要以某种方式使[1,1,19,18,1]为一个值,所以我可以标志着情节点(X,Y)。
  2. 虽然绘制回归线,这将是特征值,所以我可以计算的假设值?现在含义,我有拦截,和所有功能的重量,但我没有特征值。我现在该如何作出决定的特征值。?

我要计算的点,并采用matplot做的工作。我知道有很多可用之外,包括matplotlib做的工作工具。但我想要得到的基本理解。

谢谢。

machine-learning regression linear-regression
2个回答
0
投票

我仍然不知道我完全理解你的问题,所以如果事情不是你所期待下面的评论,我们会解决它。

现在,

问题1:在您所有的数据集,你将有多个输入,也没有办法来查看你的情况下,目标变量salary对于所有,在单个图,是通常做的是要么你申请维度的概念减少使用t-snelink)或使用主成分分析(PCA)减少您的数据的维度,使您的输出函数的两个或三个变量,然后绘制在屏幕上的数据,我更喜欢另一种技术是而绘制target VS每个变量分别为subplot,这样做的原因是,我们甚至没有办法理解我们怎么会看到,在以上三个方面的数据。

问题2:如果您没有确定使用matplotlib,我会建议seaborn.regplot(),但我们这样做,也是在matplotlib。假设你想使用第一个变量是“纪律” VS“工资”。

from sklearn.linear_model import LinearRegression
lm = LinearRegression()
X = df[['discipline']]
Y = df['salary']
lm.fit(X,Y)

运行此lm.coef_后会给你系数,lm.intercept_会给你的截距,在形成该变量,则可以两个变量和容易使用matplotlib的线之间绘制数据的线性方程。


0
投票

你可以做的是 - >

from pandas import plotting as pdplt

pdplt.scatter_matrix(dataframe, pass the remaining required parameters)

通过这一点,你将获得地块的矩阵(在你的情况下,它是6X6),这将精确地呈现在您的数据帧的每一列如何与其他列,你可以清楚地看到哪些功能占主导地位的结果和功能也如何关联对应其他。如果你问我,这是我用来做与这样类型的问题,然后删除所有相关的功能和选择最逼近输出功能的第一件事。

但是你一定要绘制2D图和上面的方法,你可能会得到比单一功能,它主宰输出,那么你可以做的是一个名为PCA奇迹了。如果你问我PCA是在机器学习中最美丽的东西之一。它的作用就是以某种方式合并在一些神奇的比例将产生为您的数据主要部件所有的feautres。主要成分是那些支配你的模型/重大贡献的组件。您可以通过简单地从sklearn进口申请PCA,然后选择第一主成分(因为你需要一个二维图),也可能选择2个priciple组件和绘制3D图形。但是,永远记住这一点,这些pricipal组件不是模型的真实面目,但他们有一些神奇的组合和PCA怎么这样是非常非常有趣的(通过使用类似特征值与向量的概念),你可以通过你自己也建。

除了这些,你可以申请奇异值分解(SVD)到你的模型,它是整个线性代数的本质是一种现有的所有矩阵矩阵分解。这是什么做的是分解的矩阵分为三个矩阵外面这降序排列包括奇异值(缩放因子),你所要做的就是选择最上面的奇异值(在你的情况下,只有第一个对角矩阵具有最高幅值),并从5列构造回一个特征矩阵,以1列,然后绘制该。您可以通过使用numpy.linalg做SVD

一旦你应用这些方法中的任何一个,然后你可以做的是,只有一个最重要的特点选择学习你的假设,并最终绘制图表。而是采取了小费,只是为了绘制2D图形,你应该避免其他重要功能怎么一回事,因为也许你有3种主成分都具有几乎相同的贡献,并可以前三名的奇异值非常接近对方。因此,需要我的话,并采取所有重要的功能考虑在内,如果你需要的这些重要功能的可视化,然后使用散射矩阵

摘要 - >

所有我想提一提的是,你可以用这些东西做同样的过程,也可以创造自己的统计或数学模型来压缩您的功能空间。但对我来说,我更喜欢去与PCA,在这种类型的问题,我甚至第一次绘制散布矩阵得到一个视觉直观的数据。而且还PCA和SVD有助于消除冗余,因此过度拟合。

对于其余的详情,请参阅文档。

快乐学习机...

© www.soinside.com 2019 - 2024. All rights reserved.