这段时间刚好在学习Swift UI和Machine Learning,发现Xcode自带的Machine Learning 还是挺强大的,虽然只能使用部分的算法,但是对于一些小项目而言还是足够了的。此外,GUI图形界面真的爽到我了,Mac党狂喜
本文只涉及最基础的使用方法,如果需要进行批量预测和输出,需要自己学习SwiftUI的io流和文件处理,因为我暂时还没学这么多…只浅学了一下CoreML,所以这篇教程不会涉及批量的数据处理,只涉及基础的训练和预测
1. 打开Xcode主界面,找到左上角,依次点击:Xcode——Open Developer Tool——Creat ML——new document
2. 选择需要的功能,这里以Tabular Regression为例,点击next,输出模型的名字,作者名字,储存位置,然后next
3. 点击choose,select选择csv数据文件
4.选择需要预测的值Target(即输出值),传入csv格式测试集 Testing Data(如果有的话)
5. 点击Features按钮,选择输入值和特征(这个例子里我都选上了)
5.选择合适的算法,调参(如果选择自动的话Xcode会自动帮你选择最优的模型)
6. 点击左上角的Train按键开始训练。训练完成以后点击output——get,储存最后的模型文件
1. 新建一个playground:打开xcode——file——new——playGround
2. 新建一个iOS的Playground文件,名字随便取
3. 把训练的模型拖到导航栏里(导入完成是不会显示的,你也看不到是否导入成功了。但是不要紧)
4. 在代码栏写代码进行预测(可以看看官方文档写的更详细)
import UIKit
import CoreML //导入机器学习模块
let config=MLModelConfiguration()
//获取ML的参数,括号内是可以传入额外参数的,但是简单的机器学习我就用默认参数了
let model=try!SleepCalculator(configuration: config)
//获取模型,SleepCalculator表示你导入的模型的【文件名称】,我的文件名叫SleepCalculator.mlmodel。使用 try! 可以避免try catch异常。括号内的configuration传入我们默认的config参数。
let result = try! model.prediction(wake: 32400, estimatedSleep: 8.5, coffee: 1.0)
//进行预测得到一个result对象,使用model.prediction 方法进行预测,参数填入input值。因为这里只是举例,所以我随便传入了几个参数
print(result.actualSleep)
//result对象包含output的属性名称和output的数值。我需要输出的是预测的actualSleep数值,所以调用result.actualSleep。如果需要输出属性的名称,使用result.featureNames
5. 运行代码,获得最终值
PS:拆包看了一下,训练出来的模型里面Apple应该是加密过的,不能直接获取到参数和任何有用的信息,绝了。深入的学习还需要去观摩一下官方文档,这里我就不多提了……我也没学这么多…