Machine Learning
Machine Learning Onramp
2.1 Overview
输入数据 -> 组织与预处理数据 -> 探索性数据分析与特征提取 ->建立模型 -> 评估模型 -> 部署并使用模型
Import Data -> Organize and Preprocess Data -> Explore Data & Engineer Feature -> Build Model -> Evaluate Model -> Deploy Model for Use
2.2 Import Data
Task 1
手写字母作为单独的文本文件存储。每个文件均以逗号分隔,并包含四列:时间戳记,笔的水平位置,笔的垂直位置以及笔的压力。时间戳是自开始收集数据以来经过的毫秒数。其他变量以归一化单位(0到1)表示。对于笔位置,0代表书写表面的底部和左侧边缘,而1代表顶部和右侧边缘。
您可以使用readtable函数从电子表格或文本文件导入表格数据,并将结果存储为表格。
letter = readtable("J.txt");
这将从电子表格myfile.xlsx导入数据,并将其存储在名为data的表中。
Task 2
您可以使用点表示法来引用表中的任何单个变量
X = letter.X;
Y = letter.Y;
plot(X,Y)
这将从表letter中提取变量X并将结果存储在名为X的新变量中。类似地,将变量Y提取到Y中,并使用plot()函数绘图。
默认轴限制会扭曲字母的纵横比。可以使用axis命令强制轴保留数据的纵横比。
axis equal
使用命令轴equal来校正绘图的纵横比。
经过矫正后,图片显示比例正常。
2.3 Process Data
Task 1
1.手写数据的笔位置以标准化单位(0到1)测量。然而,用于记录数据的平板电脑并不方正。这意味着1的垂直距离相当于10英寸,而相同的水平距离相当于15英寸。要更正此问题,应将水平单位调整为范围[0 1.5],而不是[0 1]。
将表格字母的X变量中的值乘以纵横比1.5。将结果重新分配回X,以便字母包含更正的数据。
letter.X = X * 1.5;
2.处理时间戳
将所有时间戳都减去第一个值,并且将其除以1000
letter.Time = (letter.Time - letter.Time(1)) / 1000
2.4.1 Extract Features
Task 1
提取一个信号持续的时间,从letter中提取最后一个Time值到dur中,即为该字母书写所用的时间。
dur = letter.Time(end)
Task 2
range()函数可以返回数组中值的范围,即range(X) = max(X) - min(X);
使用range函数通过将letter.Y的值范围除以letter.X的值范围来计算字母的长宽比。将结果分配给一个名为aratio的变量。
aratio = range(letter.Y) / range(letter.X)
2.4.2 Viewing Features
MAT文件featuredata.mat包含一个提取的功能表,该功能表提取了由各种人撰写的470个字母。表格功能具有三个变量:AspectRatio(长宽比)和Duration(时长)和Character(已知字母)。