首页 > 解决方案 > 如何确定用于回归或分类的特征?

问题描述

我正在使用 CSV 文件,它有 12 列。十列是特征,两列代表结果。我用 Python 的 scikit-learn 库做了几个回归和分类模型。

我发现准确性取决于我使用的功能和使用的参数数量。

有没有办法确定用于回归或分类的特征,有没有办法找出我的模型的最佳参数是什么?

这是我写的简单代码,它有 3 个特性和一个结果,如何确定最好使用哪些特性(最好使用'par_1'and 'par_2',或者只是'par_2', 'par_1'and 'par_3''par_2' and 'par_3'...),有没有办法获取最佳功能列表?

import pandas as pd
from sklearn.linear_model import LinearRegression


dic = {'par_1': [10, 30, 11, 19, 28, 33, 23],
       'par_2': [1, 3, 1, 2, 3, 3, 2],
       'par_3': [15, 3, 16, 65, 24, 56, 13],
       'outcome': [101, 905, 182, 268, 646, 624, 465]}

df = pd.DataFrame(dic)

variables = df.iloc[:,:-1]
results = df.iloc[:,-1]

print(variables.shape)
print(results.shape)


reg = LinearRegression()
reg.fit(variables, results)

x = reg.predict([[18, 2, 21]])[0]
print(x)

这是一种获取我应该使用的功能列表的方法吗?

标签: pythonmachine-learningscikit-learn

解决方案


如果通过参数,您的意思是功能比有很多选项。

  1. 特征消除:Sklearn 有几种方法可以解决这个问题。该模型会自动删除未提供相关信息的特征。有多种方法,因此请选择最适合您需求的一种。

  2. 特征缩减:您可以在此使用 PCA 或 SVD,其中从特征中提取重要信息并减少特征。在 PCA 中,您将失去原始特征。

  3. 特征选择/相关测试:这是一种手动测试方法,您可以使用各种相关测试将特征与输出列相关联,并相应地选择特征。

如果参数是指模型超参数,则在 sklearn 的文档中搜索GridSearchCV.


推荐阅读