knn mllib spark_使用Spark MLlib实现车辆满意度测评

本文介绍如何利用Spark MLlib的KNN算法评估车辆满意度。通过Car Evaluation数据集,对六个特征进行分析,得出用户对车辆的满意程度。首先,解释了KNN算法的基本原理和适用场景,接着详细描述了数据准备、模型训练和模型部署的过程,最后展示了预测服务的使用方法。
摘要由CSDN通过智能技术生成

使用KNN分类算法进行车辆满意度测评,选用经典的Car Evaluation数据集,通过对六个特征值进行测评,得到用户对车辆的满意程度。

KNN Classification(K最近邻分类)算法用于产生二分类或多分类模型。基本思想是,如果一个样本在特征空间k个最邻近样本中,大多数属于某一个类别,则该样本也属于这个类别。该算法对噪声具有较好的鲁棒性,并且可以较好的避免样本数量不平衡的问题。其中k是用户指定的整数值,该参数的选取高度依赖输入数据,通常较大的k会抑制噪声的影响,但同时也会使得分类边界变得模糊。该算法适合数据记录数小于100万,维度小于100维的分类场景。在二分类问题中,选取k为奇数有助于避免两个分类平票的情形。

本示例介绍如何使用Spark MLlib引擎的KNN分类算法实现车辆满意度测评应用。车辆满意度测评样例的操作流程如下所示。

准备数据

ModelArts提供了用于训练的数据集和示例代码,执行如下步骤,下载数据集和示例代码,并上传至OBS中。

在gitee的ModelArts-Lab工程中,单击“克隆/下载”,然后单击“下载ZIP”,下载工程。

下载完成后,解压缩“ModelArts-Lab-master.zip”文件,然后在“\ModelArts-Lab-master\official_examples\Using_Spark_MLlib_to_Create_a_Car_Evaluation_Application”目录中获取到训练数据集和示例代码。

表1文件说明文件名称

说明

“car.csv”

训练数据集。数据集的详情如表2所示。

“car_meta.desc”

元数据文件。

“knn_classification.py”

使用ALS算法编写的训练脚本。

“customize_service.py”

用户自定义的预测脚本,需与训练脚本“knn_classification.py”存储在相同OBS目录下。训练过程中,将被自动拷贝至相应的模型目录下。

表2部分样本数据buying_price

maint_price

doors

persons

lug_boot

safety

acceptability

vhigh

vhigh

2

2

small

low

unacc

vhigh

vhigh

2

2

small

med

unacc

vhigh

vhigh

2

2

small

high

unacc

vhigh

vhigh

2

2

med

low

unacc

进入OBS管理控制台,新建桶和文件夹,分别用于存储训练数据集和示例代码。例如新建“test-modelarts2”桶,并在此桶下新建“sparkml/car/data”和“sparkml/car/code”文件夹。

将步骤2中获取的文件,上传至对应OBS路径下,即“sparkml/car/data”和“sparkml/car/code”文件夹。OBS上传文件的操作指导,请参见上传文件。

训练模型在ModelArts管理控制台,进入“训练管理 > 训练作业”页面,单击左上角的“创建”。

如图2 创建训练作业-基本信息和图3 创建训练作业-详细参数 所示,参考图中示例,填写训练作业相关参数,然后单击“下一步”。

其中,“数据来源”和“算法来源”即准备数据上传的OBS路径及文件。“训练输出位置”,建议新建一个OBS文件夹,用于存储训练输出的模型及其预测文件,例如“test-modelarts/car/output”。

图1创建训练作业-基本信息

图2创建训练作业-详细参数

在规格确认页面,确认信息无误后,单击“提交”。

在“训练作业”管理页面,当训练作业变为“运行成功”时,即完成了模型训练过程。如有问题,可单击作业名称,进入作业详情界面查看训练作业日志信息。

训练作业需要花费一些时间,预计十几分钟。当训练时间超过一定时间(如1个小时),请及时手动停止,释放资源。否则会导致欠费,尤其对于使用GPU训练的模型项目。

部署模型

待训练作业运行完成后,可以将训练好的模型发布成预测服务。

在“模型”页面,单击左上角“导入”,进入“导入模型”页面。

如图3所示,参考图片示例填写参数,然后单击“立即创建”。

其中,“选择原模型”的路径为训练作业中“训练输出位置”指定的路径。同时,系统将从选择的路径下自动匹配到“AI引擎”和“推理代码”。

图3导入模型

在模型列表中,当创建的模型处于“正常”状态时,表示模型导入成功。您可以在操作列单击“部署>在线服务”,将模型部署为在线服务。

在“部署”页面,请参考图4中的示例填写参数,然后单击“下一步”。

图4部署服务

在“规格确认”页面,确认信息无误后的,单击“提交”。

在线服务创建完成后,系统自动跳转至“部署上线>在线服务”页面。服务部署需要一定时间,耐心等待即可。当服务状态变为“运行中”时,表示服务部署成功。

预测结果

待部署模型运行完成后,可以验证发布的预测服务是否正常。

在“部署上线>在线服务”页面,单击服务名称进入详情页面

在“预测”页签,参考图6 测试服务所示样例,输入预测代码,然后单击“预测”。在右侧“返回结果”中,查看预测结果。

预测请求示例代码如下所示。{

"data": {

"req_data": [

{

"buying_price": "high",

"maint_price": "high",

"doors": "2",

"persons": "2",

"lug_boot": "small",

"safety": "low",

"acceptability": "acc"

},

{

"buying_price": "high",

"maint_price": "high",

"doors": "2",

"persons": "2",

"lug_boot": "small",

"safety": "low",

"acceptability": "acc"

}

]

}

}

图5测试服务

在“调用指南”页签,可以获取调用API接口,并使用Postman工具进行测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值