一.数据预处理
1.缺失数据查找
wps实现(最简单的方法)
https://zhidao.baidu.com/question/1690641178558189228.html
matlab实现
B = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组红葡萄酒品尝评分','C75:L84');
A = B;
[I,J]= size(A);
for j=1:J
for i=2:I % the 1st row does not contain NaN
if isnan(A(i,j)) %通过isnan函数判断该数据是否为NaN类型
disp(['(',num2str(i),',',num2str(j),')']); %如果是NaN类型则打印该数据在表格中的位置
end
end
end
python实现(https://blog.csdn.net/alanguoo/article/details/77198503)
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 6))
# Make a few areas have NaN values
df.iloc[1:3, 1] = np.nan
df.iloc[5, 3] = np.nan
df.iloc[7:9, 5] = np.nan
print(df)
print(df.index[np.where(np.isnan(df))[0]]) #打印缺失值的行
print(df.columns[np.where(np.isnan(df))[1]]) #打印缺失值的列
2.异常数据查找
z-score标准化(matlab实现)
B = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组白葡萄酒品尝评分','D233:M233');
%将数据z-score标准化
A = zscore(B)
disp(A)
%获取矩阵的行数和列数,m为行数,n为列数
[m,n] = size(A)
for i = 1:n
%确定一个阈值,用来判断是否是异常数据
if abs(A(1,i))>2
disp(['(1,',num2str(i),')'])
end
end
二.聚类分析
1.一维数据的聚类分析
参考博文:https://www.biaodianfu.com/clustering-on-a-one-dimensional-array.html
matlab实现(参考博文:https://jingyan.baidu.com/article/0202781154d7ba1bcc9ce5f5.html)
clc;
clear;
yw_data=xlsread('C:\Users\DELL\Desktop\第二问得分.xls'); %读入一维数据样本到yw_data矩阵
A = yw_data';
xx=A;
clus=4;
[idx,c]=kmeans(xx,clus);
cc1=[];
cc2=[];
cc3=[];
cc4=[];
[n,m]=size(xx);
for i=1:n
if idx(i)==1
cc1=[cc1;xx(i)];
elseif idx(i)==2
cc2=[cc2;xx(i)];
elseif idx(i)==3
cc3=[cc3;xx(i)];
elseif idx(i)==4
cc4=[cc4;xx(i)];
end
end
disp('第一类边界')
[min(cc1),max(cc1)]
disp('第二类边界')
[min(cc2),max(cc2)]
disp('第三类边界')
[min(cc3),max(cc3)]
disp('第四类边界')
[min(cc4),max(cc4)]
disp('四类中心')
c
h1=plot(xx,'w');grid on;hold on;
for i=1:n
if idx(i)==1
text(i,xx(i),num2str(idx(i)),'color',[1 0 0]);
elseif idx(i)==2
text(i,xx(i),num2str(idx(i)),'color',[0 1 0]);
elseif idx(i)==3
text(i,xx(i),num2str(idx(i)),'color',[0 0 1]);
elseif idx(i)==4
text(i,xx(i),num2str(idx(i)),'color',[1 0 1]);
end
end
ylabel('一维样本数据值')
xlabel('样本序列')
2.二维数据的聚类分析
参考博文:https://blog.csdn.net/zpp1994/article/details/53456306
https://blog.csdn.net/wys7541/article/details/82153844 |