https://cn.mathworks.com/products/demos/machine-learning/missing_data/missing_data.html
Machine Learning with Matlab
—————————————————————————————————————————————
Load Data for Classification
rng(5);
load ionosphere;
labels=unique(Y);
1、rng(seed)
2、load函数,可将数据读入到matlab的工作空间中,也可以选择读入哪个变量。
3、unique(Y),返回的是和Y中一样的值,但没有重复元素,产生的结果向量按升序排列。
—————————————————————————————————————————————
Partition 70% of the Data into a Training Set and 30% into a Test Set
cv = cvpartition(Y,'holdout',0.3);
Xtrain = X(training(cv),:);
Ytrain = Y(training(cv));
Xtest = X(test(cv),:);
Ytest = Y(test(cv));
将dataset分为training和test两个subsets,前者用于建立model,后者用来评估该moedel对未知样本进行预测时的精确度。
①training set中样本数量必须够多,一般至少大于总样本数的50%
②两组子集必须从完整集合中均匀取样(一般做法是随机取样……但是有盲点。。。)
→因此,Cross-validation:交叉验证!
在Matlab中,用户可使用cvpartition、repartition等命令对数据集进行拆分,完成交叉验证。
1、cvpartition(n,'holdout',p)
创建一个随机分区,用于在n个观测值上进行保持验证。该分区将观察分为训练集和测试(或保持)集。参数p必须是标量,当0<p<1时,cvpartition为测试集随机选择大约p*n个观测值。当p是整数时,cvpartition为测试集随机选择p个观测值。p的默认值是0.1。
还有其他的呢:
c = cvpartition(n,'KFold',k)
c = cvpartition(group,'KFold',k)
c = cvpartition(n,'HoldOut',p)
c = cvpartition(group,'HoldOut',p)
c = cvpartition(n,'LeaveOut')
c = cvpartition(n,'resubstitution')