PySpark 中的特征选择
Feature Selection in PySpark
我正在研究形状 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` 中实现,您可以调整代码以使用相应的库。
如果你可以在本地训练你的模型并且只是想部署它来进行预测,你可以使用用户定义函数(UDFs
)或vectorized UDFs
to run the trained model on Spark. Here's一个很好的post 讨论如何做到这一点。
如果您需要在 Spark 上 运行 一个不受 spark-sklearn 支持的 sklearn
模型,您需要让每个 worker 上的 Spark 都可以使用 sklearn集群中的节点。您可以通过在 Spark 集群中的每个节点上手动安装 sklearn 来完成此操作(确保您正在安装到 Spark 使用的 Python 环境中)。
或者,您可以使用 Pyspark
作业打包和分发 sklearn 库。简而言之,您可以 pip install sklearn
进入脚本附近的本地目录,然后压缩 sklearn 安装目录并使用 spark-submit
的 --py-files
标志将压缩的 sklearn 连同您的脚本。 This article 完整概述了如何完成此操作。
我建议使用逐步回归模型,您可以轻松找到重要的特征,并且只在逻辑回归中找到它们的数据集。逐步回归适用于相关性,但它有变化。
link 以下将有助于实现特征选择的逐步回归。
https://datascience.stackexchange.com/questions/24405/how-to-do-stepwise-regression-using-sklearn
我们可以在 pyspark
中尝试遵循 特征选择 方法
- 卡方选择器
- 随机森林选择器
参考文献:
我正在研究形状 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` 中实现,您可以调整代码以使用相应的库。如果你可以在本地训练你的模型并且只是想部署它来进行预测,你可以使用用户定义函数(
UDFs
)或vectorized UDFs
to run the trained model on Spark. Here's一个很好的post 讨论如何做到这一点。如果您需要在 Spark 上 运行 一个不受 spark-sklearn 支持的
sklearn
模型,您需要让每个 worker 上的 Spark 都可以使用 sklearn集群中的节点。您可以通过在 Spark 集群中的每个节点上手动安装 sklearn 来完成此操作(确保您正在安装到 Spark 使用的 Python 环境中)。或者,您可以使用
Pyspark
作业打包和分发 sklearn 库。简而言之,您可以pip install sklearn
进入脚本附近的本地目录,然后压缩 sklearn 安装目录并使用spark-submit
的--py-files
标志将压缩的 sklearn 连同您的脚本。 This article 完整概述了如何完成此操作。
我建议使用逐步回归模型,您可以轻松找到重要的特征,并且只在逻辑回归中找到它们的数据集。逐步回归适用于相关性,但它有变化。 link 以下将有助于实现特征选择的逐步回归。 https://datascience.stackexchange.com/questions/24405/how-to-do-stepwise-regression-using-sklearn
我们可以在 pyspark
中尝试遵循 特征选择 方法- 卡方选择器
- 随机森林选择器
参考文献: