首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用JavaScript的机器学习来区分企鹅种类

前言:

      在规则编码中,我们常常会遇到需要通过多种区间判断某种物品分类。比如二手物品的标价范围,尽管不是新品没有 SKU 但是基本的参数还是不少。而要想通过成色来区分某种物品,其实主要是确定一些参数。然后根据参数数据以及参数对应label的所有数据集归档用机器学习训练,这样机器就可以得出规则了。

      机器制定规则后,我们后面再给出相应参数,他就能对成色进行分类了。以上只是打了个比方,加之没有二手商品相关数据集,所以就网上找了一些企鹅品种数据集,大家也可以在网上搜索 “帕尔默企鹅数据集” 再下载,也可以留言我再贴出来。以下内容依旧是实战类,偏原理的可能后期再补上。

数据集介绍:

1. 背景描述

由 Kristen Gorman 博士和南极洲 LTER 的帕尔默科考站共同创建,包含 344 只企鹅的数据。

2. 数据说明

species: 三个企鹅种类,阿德利 (Adelie) 巴布亚 (Gentoo) 帽带 (Chinstrap)

culmen_length_mm: 鸟的嘴峰长度

culmen_depth_mm: 鸟的嘴峰深度

flipper_length_mm: 脚掌长度

body_mass_g: 体重

island: 岛屿的名字

sex: 企鹅的性别

数据处理:

      tensorflow.js 在进行训练数据前,都需要对原先的数据集进行 tensor 格式 转换,为了训练质量,数据集的数值最好控制在 0 到 1 之间,所以必要时候还要对转换的 tensor 进行归一化处理。于新手而言,这里的处理方式看个人。因为 "帕尔默企鹅数据集" 是 csv,我就用 js 原始的方法进行了数据转化, 过程省略了,因为数据已经贴在下方可以复制。

数组索引 0 是企鹅种类 (0. 阿德利,1. 帽带 2. 巴布亚), 索引 1 岛屿 (0.Torgersen 1.Biscoe 2.Dream), 索引 2,索引 3,索引 4,索引 5 分别是企鹅嘴峰长度,企鹅嘴峰深度,脚掌长度,体重,性别。以上数据是长度的单位都是毫米,体重的单位都是克,所以数值比较大,转化数据如下。

编码:

1. 数据标注

      虽然上面已经对数据做了初步处理,但是还没达到可以用来训练的要求。为了能转换为 Tensor 需要将数据进行拆分标注 value 和 label。同时为了提升训练性能需要将数据集分为训练集和验证集,以下提供了数据拆分和转换的两个函数。

2. 页面布局

      页面通过 html 方式展示,通过选择和输入必要的参数,模型预测出企鹅的种类,同样的也有整个模型训练过程 UI 展示,代码如下。

3. 模型训练

         模型训练还是和之前线性回归类似,创建模型,添加隐藏层输出层和设置神经元格式,激活函数等,最后模型编译和模型训练。

效果演示:

      这里要注意一点是,在训练模型有问题时,点击 “预测”  会出现表单跳转。而如果训练数据集数值过大,训练的损失极大很难降下来。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230208A0913V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券