Spark 机器学习实践 :Iris数据集的分类

本文介绍了使用Spark进行机器学习的过程,通过Iris数据集进行分类任务。内容包括数据导入、特征提取、模型训练与验证。在模型训练中,遇到Spark的StringIndexer将类别转换为数值的问题,以及pyspark.ml和pyspark.mllib接口的选择。此外,尝试SVM时发现Spark的SVM仅支持二分类,不适用于多分类问题。最后,作者分享了在自定义转换分类标签时遇到的不可变性问题,提醒读者注意分布式环境下的并行处理特性。
摘要由CSDN通过智能技术生成

今天试用了一下Spark的机器学习,体验如下:

第一步,导入数据

我们使用Iris数据集,做一个分类,首先要把csv文件导入。这里用到了spark的csv包,不明白为什么这么常见的功能不是内置的,还需要额外加载。

--packages com.databricks:spark-csv_2.11:1.4.0

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
df = sqlContext.read.format('com.databricks.spark.csv')
    .options(header='true', inferschema='true')
    .load('iris.csv')
# Displays the content of the DataFrame to stdout
df.show()

结果如下:

+-----+------------+-----------+------------+-----------+-------+
|rowid|Sepal.Length|Sepal.Width|Petal.Length|Petal.Width|Species|
+-----+------------+-----------+------------+-----------+-------+
|    1|         5.1|        3.5|         1.4|        0.2| setosa|
|    2|         4.9|        3.0|         1.4|        0.2| setosa|
|    3|         4.7|        3.2|         1.3|        0.2| setosa|
|    4|         4.6|        3.1|         1.5|        0.2| setosa|
|    5|         5.0|        3.6|         1.4|        0.2| setosa|
|    6|         5.4|        3.9|         1.7|        0.4| setosa|
|    7|         4.6|        3.4|         1.4|        0.3| setosa|
|    8|         5.0|        3.4|         1.5|        0.2| setosa|
|    9|         4.4|        2.9|         1.4|        0.2| setosa|
|   10|         4.9|        3.1|         1.5|        0.1| setosa|
|   11|         5.4|        3.7|         1.5|        0.2| setosa|
|   12|         4.8|        3.4|         1.6|        0.2| setosa|
|   13|         4.8|        3.0|         1.4|        0.1| setosa|
|   14|         4.3|        3.0|         1.1|        0.1| setosa|
|   15|         5.8|        4.0|         1.2|        0.2| setosa|
|   16|         5.7|        4.4|         1.5|        0.4| setosa|
|   17|         5.4|        3.9|         1.3|        0.4| setosa|
|   18|         5.1|        3.5|         1.4|        0.3| setosa|
|   19|         5.7|        3.8|         1.7|        0.3| setosa|
|   20|         5.1|        3.8|         1.5|        0.3| setosa|
+-----+------------+-----------+------------+-----------+-------+
only showing top 20 rows
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值