|
一.数据预处理 1.缺失数据查找 wps实现(最简单的方法) https://zhidao.baidu.com/question/1690641178558189228.html matlab实现
( T! _4 V+ Y2 J3 V9 M" J4 ]B = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组红葡萄酒品尝评分','C75 84');
" t0 o5 c3 n8 w' ~6 cA = B;
0 D5 T' p( x. @( p4 \3 ^3 B[I,J]= size(A);
+ m% }. H1 A& S. G: O# E
1 O! \$ F5 V+ |for j=1:J/ p! s; o+ N; n6 K7 L+ a
for i=2:I % the 1st row does not contain NaN- p$ }# v" T8 l: h
if isnan(A(i,j)) %通过isnan函数判断该数据是否为NaN类型2 y2 y. r7 N' w0 s. `3 y
disp(['(',num2str(i),',',num2str(j),')']); %如果是NaN类型则打印该数据在表格中的位置* e0 H- S% `# j# R* ]0 G
end
9 D% \/ E$ h% w0 H end$ E8 D3 v) V' @8 X; n- I/ b
end5 H- `+ v* {" s/ K2 W" _
( @: x3 E. x3 t% v& D
python实现(https://blog.csdn.net/alanguoo/article/details/77198503)
8 _- B2 x7 m& s1 D9 X5 G) @5 S2 m* j+ [0 U& k9 v. D
import pandas as pd3 H+ O6 M3 ^& U7 a
+ P9 W4 ?( f q( a8 Uimport numpy as np
, r1 J$ ^$ a5 T% f
% {9 P' }( d: I5 n. \2 L3 wdf = pd.DataFrame(np.random.randn(10, 6))
- U/ b2 ^6 @" p3 e# w- J$ r$ C. Z* B8 C2 g+ j6 z y$ s! u5 E( e
# Make a few areas have NaN values) X8 S4 ~' R& X7 m, o( s
! j7 h6 i, W: J9 w
df.iloc[1:3, 1] = np.nan
1 z3 w4 c1 ?" X1 L' k; ~4 X5 x7 ^* q4 J/ `: t1 M6 ?
df.iloc[5, 3] = np.nan
* s1 v7 l7 ~# o7 o( c$ J) F
. J. b: q& t$ l6 w& f( O3 s7 l/ Ydf.iloc[7:9, 5] = np.nan4 G* z% V/ E$ e1 [ n
; G4 X, V7 { Q6 y4 v
print(df)
5 W) c" u- e f# o9 @* X
/ v+ b; V( p( rprint(df.index[np.where(np.isnan(df))[0]]) #打印缺失值的行
% S) [3 ~: p% {1 e7 D+ |/ `. T; Zprint(df.columns[np.where(np.isnan(df))[1]]) #打印缺失值的列* i, L* m: k& z# h
; R2 p' V. l5 w( Z0 U# |3 S
2.异常数据查找 z-score标准化(matlab实现) & L6 i* k! F% ^; p4 e
B = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组白葡萄酒品尝评分','D233:M233');
+ q3 h3 y0 [+ Y, O%将数据z-score标准化
- z0 J: I9 t/ J3 _A = zscore(B)+ p9 q! Y p/ q' W4 T( b
disp(A)" w" z9 i7 W& i* c; w* S7 H' _
%获取矩阵的行数和列数,m为行数,n为列数
+ z# P3 D$ v$ j% p[m,n] = size(A)
+ u/ G+ y* W. d& G7 r- A; rfor i = 1:n/ P7 c. l: W3 T R6 y: ` q. x1 U
%确定一个阈值,用来判断是否是异常数据" U4 v+ D* _% _& a- n0 s+ k: z
if abs(A(1,i))>2' e1 x6 k# B# N; e) b% U. q( w4 {# C
disp(['(1,',num2str(i),')'])
2 j$ B4 @0 E' e. \ end
0 x. c- [8 L9 t1 O( Rend4 a* o0 _. a$ @% I' m
' ?* k. D$ y0 W3 T& W* A9 n5 X/ T
二.聚类分析% l! }5 h: b v
3 i: h" g' O) \: H' T! m5 q1.一维数据的聚类分析* S" h& O. [0 }$ \8 K8 W) @
9 a6 b! v" s/ f6 C) d' a( B$ U
参考博文:https://www.biaodianfu.com/clustering-on-a-one-dimensional-array.html
7 a* z# b* D. z; z. L1 u
5 `0 a: F x: p' I+ Wmatlab实现(参考博文:https://jingyan.baidu.com/article/0202781154d7ba1bcc9ce5f5.html)) s) ^+ }3 Q$ I& j: |
- }$ Y7 |! O$ |& h* C2 N8 Q5 Fclc;
% y \ ]6 O& e- ]9 x* A/ x, J" Z; A* s( m1 [5 c! E3 p+ n. S! n+ x
clear;
* H9 e# @) I q# b* L1 y5 o$ h* x$ B" z* E. W. i! c
yw_data=xlsread('C:\Users\DELL\Desktop\第二问得分.xls'); %读入一维数据样本到yw_data矩阵$ U+ F0 d+ `& i
) k( |; \5 B, R/ e1 g/ g! nA = yw_data';
/ Y% ~( O1 P( m6 L8 [3 y8 k, V* s
xx=A;
5 Y: V- W( n- x, n! k; V
5 I, F( w, w# V5 k5 yclus=4;
% \) e& H0 P8 ?$ V/ O& a0 m* W. U n; k4 Y' K5 q& r
[idx,c]=kmeans(xx,clus);
2 j. g m8 _( ?
# n) Y) c( \6 o% W [cc1=[];$ {2 T- z& m) c$ y! I3 H
9 z/ i0 d: Z; I, d# U, P
cc2=[];' L3 @3 X" u. O- H& h. Z# q, G
1 a7 e" v4 r& ^; mcc3=[];7 B# N, B- Q0 U( }2 Z J6 p
/ P3 {" T1 f% } F4 zcc4=[];
- Z/ J9 Z4 s4 p9 S8 ]% ] D6 T) w+ t5 y; d W' E
[n,m]=size(xx);, \$ C' @9 A% d* t" c; e6 X* N) G
, A9 @+ V. R2 s8 Q8 N' o8 Hfor i=1:n
+ N" E. T9 w7 \% q! ]$ U- X; e
: e8 |1 o* x4 k if idx(i)==1, }1 x! v5 l q& l% [+ [ ^
^' }$ |% F$ S4 m% |$ o cc1=[cc1;xx(i)]; B1 W! Q" w5 ?1 T& p
M9 A% `; Z8 ~+ q+ l
elseif idx(i)==29 F$ y1 ^! B) i# C+ }/ A/ V5 e; `
, `& R: z6 h* s0 i7 { S
cc2=[cc2;xx(i)];
' p4 F- L( a# Y& ]4 E9 Z) l4 j2 [3 ]5 f" V
elseif idx(i)==3
! e# A% A, r: t1 I3 n0 e& W9 s4 Y, R, p
cc3=[cc3;xx(i)];8 ]$ M! {* y3 _& U9 A4 ^; \% S$ q0 D
; v$ ~5 E' Z+ H$ [+ ^- _/ W elseif idx(i)==4( \& B+ x+ f0 Z
) R+ k7 t: o1 h4 ~* C
cc4=[cc4;xx(i)];
1 _' V* c. v+ n) u, c* {5 U) g; b8 f0 K! v2 L/ u9 ]
end
5 P1 ]2 D2 R/ a/ y6 y0 q
& g8 Z/ |# e/ Z8 aend
$ t, z) f x3 Q: k$ `1 i' z* q) Y! A6 i' \* |0 A5 j7 K
disp('第一类边界'); m# f' e" `0 y3 o/ F5 I
1 G5 e# g* c0 P5 n
[min(cc1),max(cc1)]
5 U7 E5 L( |) x+ ^6 B* N- n @) u9 G0 b3 _$ M$ b, W* D L! h
disp('第二类边界')6 K1 J$ \; c& p: X0 F- [* T1 j1 [: a2 O0 r
2 [8 }6 {! V4 M[min(cc2),max(cc2)]" z3 q) W, k+ I( w, a, ~: U/ @
0 g8 z3 Q! m* y+ J! Z& n' Y! S
disp('第三类边界')
) J' T* H4 m3 _- T3 \4 G
9 E: m! f( d* T9 R5 m! D- O[min(cc3),max(cc3)]
1 X) y2 ^, r# J1 Z6 Z) ]
4 K3 H# N" Q8 Z. a8 |5 T5 [disp('第四类边界'); U8 V+ a/ X; L; L6 Z3 v8 O
1 a. Q! D, A0 `! c9 ~; [( h
[min(cc4),max(cc4)]
& H5 Z1 N" i- o( g/ Y4 f4 _
" F: G9 C: L8 f# g9 Y* D1 m9 Sdisp('四类中心')/ K8 l* A. I; U2 G9 |2 Q
; k, J2 P) |. j* r. Rc
5 X# t: S2 L1 j2 O. G0 j J0 p! c9 K1 d
h1=plot(xx,'w');grid on;hold on;
0 c Q; u& s6 c' s2 U9 m, R8 H" Q+ Z6 R6 N" ]
for i=1:n5 j% m" P b0 w9 B! W
" e2 f& y, D3 `, R( L" C if idx(i)==10 D. v0 w% `9 T2 l: Q) z, q
3 T# U( Q- c3 X W% B: i
text(i,xx(i),num2str(idx(i)),'color',[1 0 0]);8 D; e, Z* u4 u) T. s5 J
/ r+ z% W: n3 d* K6 t8 a. C
elseif idx(i)==22 C- j+ L8 b8 i
I4 O* J; Q/ t9 G! E, H! s* Z. |
text(i,xx(i),num2str(idx(i)),'color',[0 1 0]);
2 e! [# t* Z. S3 [5 [* n2 u* S; |& Z
elseif idx(i)==3# ^. V. G: H/ p/ x$ b
3 w* z) s( _. b6 Y. N) v text(i,xx(i),num2str(idx(i)),'color',[0 0 1]);5 l$ r' F" B' \2 h Y1 I/ Z* ~! Q) A
s U! C6 H: P elseif idx(i)==4& ]9 O1 y& R% a$ `7 K! x
! t* T6 @/ O; f5 ~+ T6 o. g text(i,xx(i),num2str(idx(i)),'color',[1 0 1]); z% f1 I0 D4 s& r) c
$ ~4 r" s p' u& Q0 T
end+ ~" ]1 @# T( ]* C- a5 m
: |0 p. l F* `; E. C, r
end9 E; Z% q! k( k" l
" m' L0 ] h3 \; }
ylabel('一维样本数据值'); {5 |: o# p: ?6 O
$ P' I1 l; [( }! j' a' N) A$ Nxlabel('样本序列')
5 i0 D( J2 J3 Q# ?5 [; r; z' d( r. l
. e% T7 S; Z& @: ^ U3 F. O c
2.二维数据的聚类分析 参考博文:https://blog.csdn.net/zpp1994/article/details/53456306 https://blog.csdn.net/wys7541/article/details/82153844 # V; ]7 p# o' C% N1 h4 g
————————————————3 e, h% z( Y' ]
版权声明:本文为CSDN博主「马马也」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。+ _3 @5 S4 p7 z7 l r; }
原文链接:https://blog.csdn.net/machi1/article/details/98181621
1 L' S( h: h4 u7 Z' o$ G3 J3 M/ k3 U0 j9 }$ i
6 }- F$ q/ k5 T& {6 j
I+ P% C6 L% g2 f/ M7 {: ]% b) B/ q3 i0 {: A& x
4 u) u1 V e4 X/ V. I: p2 H9 @# C2 e' o% {% @1 X
' K. t3 e. X2 p+ x+ a |