我正在研究1,456,354 X 53
形状的机器学习模型。我想为我的数据集进行特征选择。我知道如何使用以下代码在python
中进行特征选择。
from sklearn.feature_selection import RFECV,RFE
logreg = LogisticRegression()
rfe = RFE(logreg, step=1, n_features_to_select=28)
rfe = rfe.fit(df.values,arrythmia.values)
features_bool = np.array(rfe.support_)
features = np.array(df.columns)
result = features[features_bool]
print(result)
但是,我找不到任何文章来说明如何在pyspark
中执行递归特征选择。
我试图在pyspark中导入sklearn
库,但它给了我一个找不到sklearn模块的错误。我正在google dataproc群集上运行pyspark。
请有人帮助我在pyspark中实现这一目标
答案 0 :(得分:7)
您可以选择几种方法。
如果您需要的模型是在Spark的MLlib
或spark-sklearn`中实现的,则可以修改您的代码以使用相应的库。
如果您可以在本地训练模型,而只想部署它进行预测,则可以使用用户定义函数(UDFs
)或vectorized UDFs
在Spark上运行训练后的模型。 Here's不错的帖子,讨论了如何做到这一点。
如果需要在Spark-sklearn不支持的Spark上运行sklearn
模型,则需要使sklearn可用于集群中每个工作节点上的Spark。您可以通过在Spark集群中的每个节点上手动安装sklearn来做到这一点(确保要安装到Spark正在使用的Python环境中)。
或者,您可以通过Pyspark
作业打包和分发sklearn库。简而言之,您可以pip install sklearn
进入脚本附近的本地目录,然后压缩sklearn安装目录并使用--py-files
的{{1}}标志将压缩后的sklearn与您的用户一起发送给所有工作人员。脚本。 This article全面介绍了如何完成此操作。
答案 1 :(得分:1)
我建议使用逐步回归模型,您可以轻松地找到重要特征,并且仅在物流回归中将其作为数据集。逐步回归适用于相关性,但有差异。 以下链接将有助于实现逐步回归以进行特征选择。 https://datascience.stackexchange.com/questions/24405/how-to-do-stepwise-regression-using-sklearn
答案 2 :(得分:1)
我们可以尝试使用 pyspark
中的功能选择方法参考文献: