本文主要作为readtable的学习笔记。
%data_name = 'watermelon'; %数据名称,针对不同的数据集只需要在这里修改数据名即可
data_name = 'golf1';
%data_name = 'car_data'
data_r = 'csv'; %数据格式
dir_ = cd; %目录,默认同文件下
%% 数据预处理
filename = fullfile([dir_ '\' data_name '.' data_r]);%文件名
% 获取属性标签
data = readtable(filename);
size_data = size(data); %数据大小
if isempty(data.Properties.VariableDescriptions) %英文属性值,无描述
labels = data.Properties.VariableNames(1,1:size(data,2)-1); %获取属性值,必须是英文
else %使用原始列标题以支持中文属性值
labels = cell(1,size_data(2)-1);
for i = 1:size_data(2)-1
VariableDescriptions = data.Properties.VariableDescriptions;%获取原始名称
labels{i} = VariableDescriptions{i}(9:length(VariableDescriptions{1})-1);%添加标签
end
end
% 获取数据集
opts = detectImportOptions(filename);%检查数据
opts = setvartype(opts,opts.VariableNames,'char');%设置变量类型为'char'
data = readtable(filename,opts); %读入数据
dataset = data{:,:}; %获取数据集
%% 调用函数
myTree = ID3(dataset,labels);%生成决策树