我正在研究形状为 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 module not found。我在 google dataproc 集群上运行 pyspark。
有人可以帮我在 pyspark 中实现这个
请您参考如下方法:
您有几个选择可以做到这一点。
如果您需要的模型是在 Spark 的
MLlib或 spark-sklearn` 中实现的,您可以调整您的代码以使用相应的库。如果您可以在本地训练您的模型并且只想部署它来进行预测,您可以使用用户定义函数 (
UDF) 或vectorized UDFs在 Spark 上运行经过训练的模型。 Here's一篇讨论如何做到这一点的好帖子。如果您需要在 spark-sklearn 不支持的 Spark 上运行
sklearn模型,您需要在集群中的每个工作节点上为 Spark 提供 sklearn。您可以通过在 Spark 集群中的每个节点上手动安装 sklearn 来完成此操作(确保您正在安装到 Spark 正在使用的 Python 环境中)。或者,您可以使用
Pyspark作业打包和分发 sklearn 库。简而言之,您可以将pip install sklearn放入脚本附近的本地目录,然后压缩 sklearn 安装目录并使用--py-files标志spark -submit将压缩的 sklearn 与您的脚本一起发送给所有工作人员。 This article对如何实现这一点有一个完整的概述。
