【问题标题】:Finding correlation between features and target column查找特征和目标列之间的相关性
【发布时间】:2019-03-09 02:14:20
【问题描述】:

我正在尝试构建Regression 模型,并且正在寻找一种方法来检查特征和目标变量之间是否存在任何相关性?

这只是我的示例dataset

     Loan_ID    Gender  Married Dependents  Education Self_Employed ApplicantIncome\    

0   LP001002    Male    No         0        Graduate      No            5849    
1   LP001003    Male    Yes        1        Graduate      No            4583    
2   LP001005    Male    Yes        2        Graduate     Yes            3000    
3   LP001006    Male    Yes        0        Not Graduate  No            2583    
4   LP001008    Male    No         3+       Graduate      No            6000    

CoapplicantIncome  LoanAmount   Loan_Amount_Term  Credit_History Area Loan_Status
      0.0               123          360.0            1.0        Urban     Y
      1508.0          128.0          360.0            1.0        Rural     N
      0.0              66.0          360.0            1.0        Urban     Y
      2358.0          120.0          360.0            1.0        Urban     Y
      0.0             141.0          360.0            1.0    SemiUrban     Y

我正在尝试根据上述可用功能预测LoanAmount 列。

我只是想看看特征和目标变量之间是否存在相关性。我尝试了LinearRegressionGradientBoostingRegressor,但我几乎无法获得大约0.30 - 0.40% 的准确度。

我应该使用哪些算法、参数等来进行更好的预测?

【问题讨论】:

  • 请校对:您的标题与您的实际问题无关(相关性在此上下文中具有非常具体的含义,不一定与预测有关)...
  • 首先,由于这是回归,0.30 - 0.40 是 R 平方值而不是准确度。其次是 0.30-0.40% 还是 30-40%?第三,仅根据此信息预测贷款金额将是一项艰巨的任务,您将需要更多数据和更多功能(因为贷款金额不仅取决于银行,还取决于申请人(他想要多少 - 这可能非常低于或高于银行所能提供的)。但是你可以预测'Loan_Status'(分类任务)。
  • @VivekKumar 那么我如何预测 Loan_Status 呢?除了使用labelencoder()之外,在继续分类任务之前我应该​​做的任何步骤?
  • 首先尝试使用与LinearRegression, GradientBoostingRegressor 相同的数据集,然后将其与LogisticRegression, GradientBoostingClassifier 等分类器一起使用。
  • 我不这么认为。您的任何功能是否有两个以上的值?使用与获取传递给 LinearRegression 的 fit() 的数据相同的处理。

标签: python-3.x machine-learning scikit-learn linear-regression correlation


【解决方案1】:

使用pandas,您可以轻松检查特征和目标列之间的线性相关性:

import pandas as pd

df = pd.read_csv('path_to_file')
df.corr()

您应该记住,这将是线性相关。

【讨论】:

    【解决方案2】:

    对于像ApplicantIncomeCoapplicantIncome这样的连续变量,如果你只对寻找相关性感兴趣,那么你可以使用一些相关系数。最常见的是用于线性相关的Pearson 和用于非线性相关的SpearmanKendall tau

    关于实现,这些可以在 Pandas 中以 pandas.DataFrame.corr() 的形式找到(如果您还没有使用 Pandas,我真的建议您使用 Pandas。)

    关于连续关联的分类,不存在相关性。您只能衡量关联。

    我没有足够的使用这些的经验,但我知道您可以使用 ANOVA 或 Kruskal-Wallis。如果您愿意,请参阅this answer 了解更多信息。

    (我建议将此问题移至交叉验证。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-01
      • 2018-05-20
      • 2022-07-05
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多