Matlab机器学习2(Machine Learning Onramp)
程序员文章站
2022-05-22 07:54:05
...
Importing and Preprocessing Data
现在有一批手写字母的样本。每个字母都是从许多不同的志愿者那里收集的。有些人提供了一个字母的很多样本。每个示例保存在一个单独的文件中,所有文件存储在一个文件夹中。如:
user003_B_2.txt
这个文件是志愿者“user003”写的字母B的第二个样本。
创建Datastores
% 使用通配符为所有包_M_的txt文件创建一个datastore文件。
letterds = datastore('*_M_*.txt')
% 使用read函数可以从datastore文件中逐个读取数据
data = read(letterds)
plot(data.X,data.Y)
% 使用read函数读取datastore中的第二个文件
data = read(letterds)
plot(data.X,data.Y)
% 使用readall函数将datastore中的所有数据文件导入到同一个变量中
data = readall(letterds)
plot(data.X,data.Y)
我们一般需要对每个字母执行一些预处理,比如坐标比例的变化,计算其特征。但是,在使用readall时,无法确定一个文件的数据在何处结束,自下一个文件的数据在何处开始。如果你试图把这种用readall读取的所有的字母放在一起进行预处理肯定是不行的。
导入数据时进行数据预处理
通常要对原始数据做一系列的预处理时,使这个过程自动化的第一步是创建一个有固定操作的自定义函数。
% 创建一个对原始数据做坐标变换功能的函数
function data = scale(data)
data.Time = (data.Time - data.Time(1))/1000;
data.X = 1.5*data.X;
end
现在我还是要手动调用函数,才是能实现对原始数据的预处理。我希望能在从datastore中read数据的时候直接完成数据的预处理。使用转换函数transform接受一个datastore和转换规则函数作为输入,输出一个做完预处理的datastore。
% transform函数用来实现转换datastore文件
% 第一参数是希望转换的datastore
% 第二个参数是转换的规则,是一个函数句柄
% 其对应函数的输入参数,一定要和read函数读取datastore的结果结构相同
preprocds = transform(letterds,@scale)
% 对执行过预处理操作获得的新datastore直接使用readall读取
data = readall(preprocds)
plot(data.Time,data.Y)
字母的位置对分类来说并不重要。重要的是形状。对于许多机器学习问题,一个常见的预处理步骤是对数据进行归一化。
典型的归一化包括按平均值移动(以便移动数据的平均值为0)或将数据移动和缩放到一个固定的范围(如[-1,1])。
本例中将x和y都移动成均值为0,确保所有的字母都以同一点为中心。
任何涉及NaN的计算(包括mean等函数的默认使用)都将导致NaN。这在机器学习中很重要,因为在机器学习中,你的数据经常会丢失一些值。在手写数据中,当写作者从平板上取笔时,就会出现NaN。
可以使用“omitnan”选项来使用mean等统计函数来忽略丢失的值。
function data = scale(data)
data.Time = (data.Time - data.Time(1))/1000;
data.X = 1.5*data.X;
data.X = data.X - mean(data.X,"omitnan");
data.Y = data.Y - mean(data.Y,"omitnan");
end
推荐阅读
-
Feature Selection For Machine Learning in Python (Python机器学习中的特征选择)
-
基于机器学习(machine learning)的SEO实战日记2--寻找切入点
-
基于机器学习(machine learning)的SEO实战日记4--数据抓取
-
基于机器学习(machine learning)的SEO实战日记1--序言
-
基于机器学习(machine learning)的SEO实战日记6--训练集准备
-
基于机器学习(machine learning)的SEO实战日记3--构思
-
基于机器学习(machine learning)的SEO实战日记5--分词与词频计算
-
Python机器学习 (Python Machine Learning 中文版 PDF)
-
模式识别中的机器学习与数据挖掘Machine learning and data mini
-
当SAP云平台account的service Marke place里找不到Machine Learning服务该怎么办 SAP Cloud PlatformSAP云平台SAP机器学习人工智能