​用 PySpark ML打造机器学习模型
发布时间:2022-08-31 15:12:22 所属栏目:大数据 来源:互联网
导读:Spark 是一种专门用于交互式查询、机器学习和实时工作负载的开源框架,而 PySpark 是 Python 使用 Spark 的库。 PySpark 是一种用于大规模执行探索性数据分析、构建机器学习管道以及为数据平台创建 ETL 的出色语言。如果你已经熟悉 Python 和 Pandas 等库,
Spark 是一种专门用于交互式查询、机器学习和实时工作负载的开源框架,而 PySpark 是 Python 使用 Spark 的库。 PySpark 是一种用于大规模执行探索性数据分析、构建机器学习管道以及为数据平台创建 ETL 的出色语言。如果你已经熟悉 Python 和 Pandas 等库,那么 PySpark 是一种很好的学习语言,可以创建更具可扩展性的分析和管道。 这篇文章的目的是展示如何使用 PySpark 构建机器学习模型。 Conda 创建 python 虚拟环境 conda将几乎所有的工具、第三方包都当作package进行管理,甚至包括python 和conda自身。Anaconda是一个打包的集合,里面预装好了conda、某个版本的python、各种packages等。 1.安装Anaconda。 打开命令行输入conda -V检验是否安装及当前conda的版本。 通过Anaconda安装默认版本的Python,3.6的对应的是 Anaconda3-5.2,5.3以后的都是python 3.7。 (https://repo.anaconda.com/archive/) 2.conda常用的命令 1) 查看安装了哪些包 复制 conda list 1. 2) 查看当前存在哪些虚拟环境 复制 conda env list conda info -e 1. 2. 3) 检查更新当前conda 复制 conda update conda 1. 3.Python创建虚拟环境 复制 conda create -n your_env_name python=x.x 1. anaconda命令创建python版本为x.x,名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。 4.激活或者切换虚拟环境 打开命令行,输入python --version检查当前 python 版本。 复制 Linux: source activate your_env_nam Windows: activate your_env_name 1. 2. 5.对虚拟环境中安装额外的包 复制 conda install -n your_env_name [package] 1. 6.关闭虚拟环境 (即从当前环境退出返回使用PATH环境中的默认python版本) 复制 deactivate env_name # 或者`activate root`切回root环境 Linux下:source deactivate 1. 2. 3. 7.删除虚拟环境 复制 conda remove -n your_env_name --all 1. 8.删除环境钟的某个包 复制 conda remove --name $your_env_name $package_name 1. 9.设置国内镜像 http://Anaconda.org 的服务器在国外,安装多个packages时,conda下载的速度经常很慢。清华TUNA镜像源有Anaconda仓库的镜像,将其加入conda的配置即可: 复制 # 添加Anaconda的TUNA镜像 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 设置搜索时显示通道地址 conda config --set show_channel_urls yes 1. 2. 3. 4. 5. 10.恢复默认镜像 复制 conda config --remove-key channels 1. 安装 PySpark PySpark 的安装过程和其他 python 的包一样简单(例如 Pandas、Numpy、scikit-learn)。 一件重要的事情是,首先确保你的机器上已经安装了java。然后你可以在你的 jupyter notebook 上运行 PySpark。 探索数据 我们使用糖尿病数据集,它与美国国家糖尿病、消化和肾脏疾病研究所的糖尿病疾病有关。分类目标是预测患者是否患有糖尿病(是/否)。 复制 from pyspark.sql import SparkSession spark = SparkSession.builder.appName('ml-diabetes').getOrCreate() df = spark.read.csv('diabetes.csv', header = True, inferSchema = True) df.printSchema() 1. 2. 3. 4. 数据集由几个医学预测变量和一个目标变量 Outcome 组成。预测变量包括患者的怀孕次数、BMI、胰岛素水平、年龄等。 Pregnancies:怀孕次数 Glucose:2小时内口服葡萄糖耐量试验的血糖浓度 BloodPressure:舒张压(mm Hg) SkinThickness:三头肌皮肤褶皱厚度(mm) Insulin:2小时血清胰岛素(mu U/ml) BMI:身体质量指数(体重单位kg/(身高单位m)²) diabespedigreefunction:糖尿病谱系功能 Age:年龄(年) Outcome:类变量(0或1) 输入变量: 葡萄糖、血压、BMI、年龄、怀孕、胰岛素、皮肤厚度、糖尿病谱系函数。 输出变量: 结果。 看看前五个观察结果。Pandas 数据框比 Spark DataFrame.show() 更漂亮。 复制 import pandas as pd pd.DataFrame(df.take(5), columns=df.columns).transpose() 1. 2. 3. 在 PySpark 中,您可以使用 Pandas 的 DataFrame 显示数据 toPandas()。 复制 df.toPandas() 1. 检查类是完全平衡的! 复制 df.groupby('Outcome').count().toPandas() (编辑:开发网_郴州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |