Skip to main content
 首页 » 编程设计

python之PySpark 中的特征选择

2025年05月04日32sharpest

我正在研究形状为 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对如何实现这一点有一个完整的概述。