Simplest_Selected_Feature_Matlab_Code
来源:互联网 发布:mysql 数据库文件路径 编辑:程序博客网 时间:2024/05/22 08:13
function select_feature_use_index(is_last_column_label, o_data_path, select_indexes, save_seleced_data_path)
% is_last_column_label : 1表示数据文件的最后一列是类别,0表示数据文件中没有类别信息
% o_data_path : 原始数据文件
% 如果is_last_column_label==1 则size为(sample_num*feature_num+1)
% 如果is_last_column_label==0 则size为sample_num*feature_num
% select_indexes : 存储要选择特征下标的向量,size为1*select_indexes_num
% save_seleced_data_path : 原始数据文件
% 如果is_last_column_label==1 则size为(sample_num*select_indexes_num+1)
% 如果is_last_column_label==0 则size为sample_num*select_indexes_num
o_data = load(o_data_path);
[sample_num o_data_column_num] = size(o_data);
select_indexes_num = size(select_indexes, 2);
if 1==is_last_column_label
select_indexes_num = select_indexes_num + 1;
select_indexes = [select_indexes, o_data_column_num];
end
selected_data = zeros(sample_num, select_indexes_num);
for R=1:select_indexes_num
selected_data(:, R) = o_data(:, select_indexes(1, R));
end
if 1==is_last_column_label
writeToLIBSVMFile(selected_data, save_seleced_data_path);
else
writeToFile(selected_data, save_seleced_data_path);
end
end
function writeToFile(Matrix, fileName)
%param Matix 表示待写入的矩阵 N*c
%param fileName 表示要写入的文件的路径名称
%function 该函数实现了按行优先存储,把Matrix矩阵写入fileName文件中
%CopyRight NUST CS726 Jun.H(111060881)
fid = fopen(fileName, 'w');
[N c] = size(Matrix);
for R=1:N
for L=1:c
fprintf(fid, '%.6f\t', Matrix(R, L));
end
fprintf(fid, '\n');
end
fclose(fid);
end
function writeToLIBSVMFile(feature_label_matrix, savePath)
[H L] = size(feature_label_matrix);
feature_label = feature_label_matrix(:, L); %记录下样本的类标号 类标号在文件的最后一列
feature_data = feature_label_matrix(:, 1:L-1); %存储除去类标号后的数据信息
%获取集合每个向量的长度
[Num, Long] = size(feature_data);
%-----------------------------------------------------------
% write to file
fid = fopen(savePath, 'w');
for R=1:Num
if feature_label(R, 1)~= 1
fprintf(fid, '-1 ');
else
fprintf(fid, '+1 ');
end
for C=1:Long
fprintf(fid, '%d:%.7f ', C, feature_data(R,C));
end
fprintf(fid, '\n');
end
fclose(fid);
end
% is_last_column_label : 1表示数据文件的最后一列是类别,0表示数据文件中没有类别信息
% o_data_path : 原始数据文件
% 如果is_last_column_label==1 则size为(sample_num*feature_num+1)
% 如果is_last_column_label==0 则size为sample_num*feature_num
% select_indexes : 存储要选择特征下标的向量,size为1*select_indexes_num
% save_seleced_data_path : 原始数据文件
% 如果is_last_column_label==1 则size为(sample_num*select_indexes_num+1)
% 如果is_last_column_label==0 则size为sample_num*select_indexes_num
o_data = load(o_data_path);
[sample_num o_data_column_num] = size(o_data);
select_indexes_num = size(select_indexes, 2);
if 1==is_last_column_label
select_indexes_num = select_indexes_num + 1;
select_indexes = [select_indexes, o_data_column_num];
end
selected_data = zeros(sample_num, select_indexes_num);
for R=1:select_indexes_num
selected_data(:, R) = o_data(:, select_indexes(1, R));
end
if 1==is_last_column_label
writeToLIBSVMFile(selected_data, save_seleced_data_path);
else
writeToFile(selected_data, save_seleced_data_path);
end
end
function writeToFile(Matrix, fileName)
%param Matix 表示待写入的矩阵 N*c
%param fileName 表示要写入的文件的路径名称
%function 该函数实现了按行优先存储,把Matrix矩阵写入fileName文件中
%CopyRight NUST CS726 Jun.H(111060881)
fid = fopen(fileName, 'w');
[N c] = size(Matrix);
for R=1:N
for L=1:c
fprintf(fid, '%.6f\t', Matrix(R, L));
end
fprintf(fid, '\n');
end
fclose(fid);
end
function writeToLIBSVMFile(feature_label_matrix, savePath)
[H L] = size(feature_label_matrix);
feature_label = feature_label_matrix(:, L); %记录下样本的类标号 类标号在文件的最后一列
feature_data = feature_label_matrix(:, 1:L-1); %存储除去类标号后的数据信息
%获取集合每个向量的长度
[Num, Long] = size(feature_data);
%-----------------------------------------------------------
% write to file
fid = fopen(savePath, 'w');
for R=1:Num
if feature_label(R, 1)~= 1
fprintf(fid, '-1 ');
else
fprintf(fid, '+1 ');
end
for C=1:Long
fprintf(fid, '%d:%.7f ', C, feature_data(R,C));
end
fprintf(fid, '\n');
end
fclose(fid);
end
0 0
- Simplest_Selected_Feature_Matlab_Code
- 无线路由信道(频段)设置技巧
- 设置android模拟器每次启动都按一定比例显示
- JVM 参数学习
- Unity3d优化
- ruby中match和scan的用法
- Simplest_Selected_Feature_Matlab_Code
- Python 字典排序
- 331 - Mapping the Swaps(回溯+ dfs)
- c语言编译过程
- subslime text2 入门4.5
- java知识总结
- 黑马程序员_OC基础01_基础语法
- 极速窜升 iPad版Office下载量突破1200万
- WPF: 使用DrawVisual提高大数据量时的绘图性能