📄 preprocess.m
字号:
function [train_p,train_t,test_p,test_t]=preprocess(data)
%预处理数据,train_p代表训练集的属性矩阵,train_t代表训练集的类标签矩阵,
...test_p代表测试集的属性矩阵,test_t代表测试集的类标签矩阵
...矩阵中的每一行表示一个样例
part=0.7; %随机划分样本集成训练集(用train_p与train_t表示)与测试集
...(用test_p与test_t表示),比如70%为训练集。
[row,column]=size(data); %行数,列数
L=size(union(data(:,column),data(:,column)),1); % L表示总类数
Part=fix(row*part); % 计算训练样例的个数
permute=randperm(row); % 随机排列
data1(1:row,:)=data(permute(1:row),:); % 随即排列后的样例矩阵
p=data1(:,1:column-1); % p代表属性矩阵
% %以下将把属性变换到0-1之间
% Min=min(p);
% Max=max(p);
% inter=Max-Min;
% for i=1:row
% p(i,:)=(Max(1,:)-p(i,:))./inter(1,:);
% end
% %结束
% % 标准化
% mean_data=mean(p);
% std_data=std(p);
% for i=1:column-1
% p(:,i)=(p(:,i)-mean_data(i))/std_data(i);
% end
%分别得到训练样例矩阵和测试样例矩阵
for r=1:column-1
train_p(1:Part,r)=p(1:Part,r);
test_p(1:row-Part,r)=p(Part+1:row,r);
end
%分别得到训练样例的输出矩阵和测试样例的输出矩阵
train_t(1:Part,1:L)=0; %训练样例输出结果矩阵,行向量(0、1值)为一个输出结果
for k=1:Part
train_t(k,data1(k,column))=1;
target(k)=data1(k,column);
end
test_t(1:row-Part,1:L)=0;
for k=1:row-Part
test_t(k,data1(Part+k,column))=1;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -