python - 如何确定用于回归或分类的特征?
问题描述
我正在使用 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)
这是一种获取我应该使用的功能列表的方法吗?
解决方案
如果通过参数,您的意思是功能比有很多选项。
特征消除:Sklearn 有几种方法可以解决这个问题。该模型会自动删除未提供相关信息的特征。有多种方法,因此请选择最适合您需求的一种。
特征缩减:您可以在此使用 PCA 或 SVD,其中从特征中提取重要信息并减少特征。在 PCA 中,您将失去原始特征。
特征选择/相关测试:这是一种手动测试方法,您可以使用各种相关测试将特征与输出列相关联,并相应地选择特征。
如果参数是指模型超参数,则在 sklearn 的文档中搜索GridSearchCV
.
推荐阅读
- azure - Azure-ML:如何在 Azure 平台上部署/设置我自己的 ML 算法作为付费使用的 SaaS WS API?
- windows - 如何使用 FOR(令牌,分隔符)使用单独的 Windows 批处理文件?
- c++ - 如何解决分段错误错误 C++
- python - Python Keras 多个输入层 - 如何连接/合并?
- php - PHP - 每 30 分钟发送一次通知而不使用 cron
- quickfix - 如果 43=Y,如何告诉 FIX 接受者不要发送消息
- elixir - 如何让 elixir 编译器在运行 phoenix 服务器时显示警告?
- reactjs - 使用 Firebase Cloud 在 React 中删除数据
- java - 如何在良好的视图中从嵌套哈希映射中检索数据?
- wpf - 通过 SetValue 传递控件类型