了解多元线性回归

时间:2019-02-11 05:57:34

标签: machine-learning regression linear-regression

我正在做多元回归问题。我有以下数据集,如下所示。

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。但是我想获得基本的了解。

谢谢。

2 个答案:

答案 0 :(得分:0)

我仍然不确定我是否完全理解您的问题,因此,如果您不希望在下面发表评论,我们将予以解决。

现在

查询1:在所有数据集中,您将有多个输入,并且无法在所有情况下在单个图中查看目标变量salary的情况。您可以使用t-snelink)在数据上应用降维概念,也可以使用主成分分析(PCA)来降低数据的维数,并使输出成为两个或三个变量,然后将其绘制在屏幕上,我更喜欢的另一种技术是将target与每个变量分别绘制为subplot,原因是我们甚至没有办法理解我们将如何看待超过三个维度的数据。

查询2:如果您不确定要使用matplotlib,我建议您使用seaborn.regplot(),但也请在matplotlib中进行操作。假设您首先要使用的变量是“纪律”与“薪水”。

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

运行此命令后,lm.coef_将为您提供系数,lm.intercept_将为您提供截距,以形成该变量的线性方程式表示,然后您可以在两个变量和一条直线之间绘制数据轻松使用matplotlib。

答案 1 :(得分:0)

您可以做的是->

from pandas import plotting as pdplt

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

通过此操作,您将获得一个绘图矩阵(在您的情况下为6X6),该矩阵将精确显示数据框中的每一列与其他列之间的关系,并且您可以清楚地看到哪个要素在结果中占主导地位,以及这些要素如何相互关联。 如果您问我,这是我以前处理此类问题的第一件事,然后删除所有相关特征并选择最适合输出的特征。

但是当您必须绘制2d图时,按照上述方法,您可能会获得一个以上的特征而不是主导输出的功能,那么您可以做的是一个名为PCA的奇迹。 如果您问我,PCA是机器学习中最漂亮的东西之一。它所要做的就是以某种不可思议的比例合并所有用户,这将为您的数据生成主要成分。主要组成部分是那些决定/对模型有重大贡献的组成部分。只需从sklearn导入即可应用pca,然后选择第一个主成分(需要2d图),或者选择2个主要成分并绘制3d图。但是请始终记住,这些主要组成部分不是模型的真实特征,而是它们的神奇组合,而PCA如何做到这一点非常有趣(通过使用特征值和向量等概念),您也可以自己构建。

除了所有这些,您还可以对模型应用奇异值分解(SVD),这是整个线性代数的本质,线性代数是所有矩阵都存在的一种矩阵分解形式。这样做是将矩阵分解为三个矩阵,其中对角矩阵按降序由奇异值(比例因子)组成,您要做的是选择顶部奇异值(在您的情况下,仅选择第一个奇异值)具有最高的幅度),然后将特征矩阵从5列构造回1列,然后将其绘制。您可以使用numpy.linalg

进行svd

一旦您应用了这些方法中的任何一种,那么您所能做的就是仅用一个最重要的所选特征来了解您的假设,并最终绘制图形。但是要注意一点,仅仅为了绘制2d图形,您应该避免使用其他重要特征,因为您可能拥有3个主要成分,它们几乎具有相同的贡献,并且前三个奇异值可能非常接近。因此,请注意我的话,并考虑所有重要特征,如果您需要可视化这些重要特征,请使用散点图

摘要->

我要说的是,您可以对所有这些事情执行相同的过程,还可以发明自己的统计或数学模型来压缩特征空间。 但是对我来说,我更喜欢使用PCA,在这种类型的问题中,我什至首先绘制散点图以获得数据的直观感觉。而且PCA和SVD有助于消除冗余,从而避免过度拟合。

有关其他详细信息,请参阅文档。

快乐的机器学习...

相关问题