一.数据预处理 1.缺失数据查找 wps实现(最简单的方法) https://zhidao.baidu.com/question/1690641178558189228.html matlab实现
" t. f! a# i4 WB = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组红葡萄酒品尝评分','C7584');: w3 ?+ h! `( `9 T! o. C
A = B;7 r: ^# Z6 F. j5 V
[I,J]= size(A);+ X* K% A9 V% L: }9 o, P" N
7 D4 X" ?# Y8 C: N' E
for j=1:J
" ~0 w Q6 J0 n- ^% B, m for i=2:I % the 1st row does not contain NaN+ q |3 a# _& Y# M8 L, m! b
if isnan(A(i,j)) %通过isnan函数判断该数据是否为NaN类型
! N" h d7 [. [6 F& q disp(['(',num2str(i),',',num2str(j),')']); %如果是NaN类型则打印该数据在表格中的位置
; _" E c% q3 g end 0 J. J& O0 z* i, s7 K$ c# x2 p
end
6 n. {( U" s- J+ eend) b" I u7 o d6 O/ ]; ?8 i
% g, O4 s# V6 y5 V5 s4 V1 q# t' B2 K% ?python实现(https://blog.csdn.net/alanguoo/article/details/77198503)4 a, T9 z/ o! {' K9 z/ G
/ N+ V& P! G% P. [import pandas as pd5 K2 I/ P& O. O3 X0 q
5 {' c- N' `/ I: Y6 Kimport numpy as np
4 E3 ^9 }* r, |3 `5 n* o; T3 b+ i) F- j3 [& L0 ~* B# v) J
df = pd.DataFrame(np.random.randn(10, 6))3 f; R2 x9 {+ {+ t# ]1 F
; r) I8 |" L0 m, P5 w0 \2 }& Z# Make a few areas have NaN values8 F' K" o1 b& W: W. a6 T0 Z
1 C! x6 \: ?0 u' W
df.iloc[1:3, 1] = np.nan; a4 O2 U- J4 b! \6 z! E( C
. X: ?4 ~; A2 u* G r
df.iloc[5, 3] = np.nan1 f! t' P" T& I7 `+ {, R7 C
$ {8 d1 F& u8 A) e) i& E
df.iloc[7:9, 5] = np.nan
. }9 [, p$ K- s% s- D8 k4 C
* t% H9 N6 J/ C y xprint(df)
7 i* c2 F' e4 O7 g/ y4 _. _* ]* `9 \4 f2 @& r; l: C
print(df.index[np.where(np.isnan(df))[0]]) #打印缺失值的行, s- R* Z* J) v$ \' L" o2 p A
print(df.columns[np.where(np.isnan(df))[1]]) #打印缺失值的列! H$ G2 j, M6 }/ d
/ h, k) p- j& t5 P7 ?2.异常数据查找 z-score标准化(matlab实现)
( v! S: S4 e' N# z8 vB = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组白葡萄酒品尝评分','D233:M233');& y/ z/ k# C) Z l
%将数据z-score标准化
( D3 d& q' ~% J! FA = zscore(B) f8 g* d- [0 }: m! r0 L0 X
disp(A)
2 f4 {) q$ a q7 K% r) Z%获取矩阵的行数和列数,m为行数,n为列数6 S% w* k% d1 J2 {* T
[m,n] = size(A)7 r, l, v8 d: r5 z( x8 ?8 T
for i = 1:n
9 _# N6 a% U4 f7 Z, p) @& k" k %确定一个阈值,用来判断是否是异常数据
; C0 w( u1 r4 N5 ^5 T8 @- Z! o7 M1 W if abs(A(1,i))>23 @1 b0 h$ o4 Y( B) C# a9 s
disp(['(1,',num2str(i),')'])
- l6 @4 l, A$ i end* a, p5 B$ F9 ~% N" X$ Z$ e2 E- f
end
* o4 V5 p7 m* X! ~0 ^7 [) x
+ M& @7 y$ N' r% u) [" [; X二.聚类分析
: k. {9 x* {- o! {& I8 e& b8 |& |: ?1 T [( g d4 d9 i* ~/ }/ o
1.一维数据的聚类分析1 d1 x4 ?( ^* l6 T% [: D! f& P
. i, z1 U7 U$ V) e7 t/ `参考博文:https://www.biaodianfu.com/clustering-on-a-one-dimensional-array.html+ s5 f3 j7 t; n: H" ], q
2 r; b, ~6 v7 x2 l Tmatlab实现(参考博文:https://jingyan.baidu.com/article/0202781154d7ba1bcc9ce5f5.html)
; l" w/ Y# J& L! ~/ b+ W$ G6 g$ U5 U7 B) M6 ?$ z' u) \
clc;
# ^1 C. T `# D2 p. k. p! _5 P1 X: o4 o1 Z9 T
clear;
& T; Q: q3 I7 D! L
4 M! O0 y' h' h! `& j/ |, I# l$ R8 T# Tyw_data=xlsread('C:\Users\DELL\Desktop\第二问得分.xls'); %读入一维数据样本到yw_data矩阵
) ~ o6 H' q5 B" g. \$ `) u) L+ P5 u' F! h
A = yw_data';
1 Q9 {5 z- P' ]6 s+ l/ `' Z9 z2 _ T1 ~. F6 P u. t X6 j5 i
xx=A;
4 L4 G" Y; }7 V5 H3 Q4 k3 a& u0 s" h+ L; W0 s. y* @7 p1 ~1 D0 z4 Y
clus=4;
" I3 |1 O0 j. P ~1 e5 {5 ?% |
3 ]9 H5 E1 `0 V2 U[idx,c]=kmeans(xx,clus);6 g# L7 T+ Y8 r! I
( j8 v! y, W6 w! E* z& ?& Occ1=[];: m7 o+ y1 ^4 q7 S" a: X/ C' D+ t
# M& T/ e( p W: k6 V& H1 X' t- a
cc2=[];* j* I6 N' H0 Z# l) p9 c8 j) L
' V6 w( w( t( O! D3 scc3=[];7 j" T1 C7 a) u& O4 ^# c" h
2 P4 o2 g7 U ]8 Fcc4=[];9 C# u7 T- N& ]% G; C
7 f6 ?5 S. Y) H! c! M[n,m]=size(xx);" b( i: _+ X! q+ u* K* M
6 \2 o+ l, m8 Q0 ^4 Ufor i=1:n: b, g @% A+ u, g9 s0 Q
- m1 A( H; B; ]6 [! A1 H# y2 t% E if idx(i)==1( R3 O1 k" B. h/ B
* N6 g* f0 z Q9 _4 u cc1=[cc1;xx(i)]; w, d: h. T6 B
1 @' R1 F5 Q+ n& O" P. N elseif idx(i)==2
3 d4 n! D( `% }; L. Y% q( x' Z* N- M' D" d; ]
cc2=[cc2;xx(i)];
" j2 f1 }: c' h/ P1 ^* J
% `: s: ]8 S! v/ C }" K elseif idx(i)==3' v7 F& R5 c$ u7 O
" n# ?" Y+ l2 P" m/ X: G
cc3=[cc3;xx(i)];3 r$ V+ {, L7 ^: X% [9 K+ T
) b% b4 S8 Z1 d8 z1 }5 o# i( f
elseif idx(i)==44 l) _) R3 j/ D: A; y' W6 y" O' V! e
0 H6 ], ~) |, J9 B! P% K5 F/ U
cc4=[cc4;xx(i)];
4 z/ W. f" s- }. {" m, b7 H/ I/ E/ I+ M5 T3 j& z$ ^+ P; [4 @0 O
end
7 u) i; m, \' x7 ~7 [) H: e
& S2 m' ?, W, r, Yend
' @, l5 x Y9 c9 T
8 M6 [2 Y8 g. b4 adisp('第一类边界')$ N/ e9 A. s7 I
/ Q i6 q3 |8 S; p1 w$ u[min(cc1),max(cc1)]
9 N6 M( P* {7 r+ w8 m) \/ i2 R, Z C* a2 g
disp('第二类边界')
1 j* m$ o& m" Y+ U5 J+ Z
9 {8 c1 g' h$ r% \( G5 E' z[min(cc2),max(cc2)]! C5 _* s$ r# B) t. X4 S: L
. t5 {, Y8 H9 ]+ _
disp('第三类边界')1 ]2 ]- A6 n! u" x) P, P
2 ^& l' J) D, l) H* S+ Q7 H( X[min(cc3),max(cc3)]
1 x4 K S/ s- @5 f8 [4 N2 Q( s9 D5 K$ a9 t9 H
disp('第四类边界')% i8 O+ f8 z5 I+ |& M% B0 J
% i$ N8 B$ F$ v. z- x9 t- U9 c[min(cc4),max(cc4)]
. M9 J$ v$ |# b" x5 d& W
( q3 F9 `) k/ t7 f, p5 w v8 adisp('四类中心')
5 d# X) | r: h B5 o( c; Y( e, P0 g2 V/ _/ f
c& r8 d/ d. E* T! |" N5 B
$ b9 y/ E7 ^6 Z& }: }
h1=plot(xx,'w');grid on;hold on;
) {7 }1 a% L; T( H2 U1 [; B
5 R* \: [% M2 Z0 ~9 U' Y3 Jfor i=1:n' Q6 W( d6 H/ Z4 W
% o5 t7 V1 h2 {2 _: W$ J5 N
if idx(i)==1/ b. }* ]0 J7 N9 U' {
/ N4 I4 t/ o+ f4 J+ E& ]- ]6 ` text(i,xx(i),num2str(idx(i)),'color',[1 0 0]);+ p/ z- s& v8 E- `5 j
- D" L: b- P! m+ i" H, M elseif idx(i)==2
% |- B" b7 J* [9 z9 N) y
8 U: ^3 K, C. F" }6 J2 |; i text(i,xx(i),num2str(idx(i)),'color',[0 1 0]);! ~6 M1 V# _! K, v* X8 B
9 n, C+ _1 L) s; n( f
elseif idx(i)==3
; @( I% _1 f! h* k S4 U
/ l1 s+ Y9 X! O, g3 A$ l d text(i,xx(i),num2str(idx(i)),'color',[0 0 1]);
; N+ B6 Q, B" \. t) q) ^' z( H, [" |' z% w2 W; p/ k
elseif idx(i)==4. z7 \8 ~ r, e, @" B' K" y, T
0 l; b0 \- S0 S1 F6 X# c text(i,xx(i),num2str(idx(i)),'color',[1 0 1]);
0 X( L- |( E+ c$ q" n9 _" b
6 W' p5 M, P9 `2 h# @ end: A& m' J' e! ]0 p" e6 H$ m( P! G. K
8 n! ^ [7 b7 i; {1 [) _end) W/ S0 n6 {6 ?$ J! D( l
2 K/ J+ e& c3 F# L7 q
ylabel('一维样本数据值'). n" j/ X! N$ A# u9 p7 y: Y; O0 d; C
8 ^" \. c1 p! h8 a+ kxlabel('样本序列')4 D* u$ g4 X D3 b
1 _& i4 M- L2 q1 _: B
6 r1 Y7 o# O! `. h( _3 n" h
2.二维数据的聚类分析 参考博文:https://blog.csdn.net/zpp1994/article/details/53456306 https://blog.csdn.net/wys7541/article/details/82153844 7 e1 e6 W8 i6 U9 ^) _$ Z
————————————————+ ] N+ U2 t8 v( {) Z) X. m, I
版权声明:本文为CSDN博主「马马也」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
- C2 T G4 L5 m* ?4 N原文链接:https://blog.csdn.net/machi1/article/details/98181621
5 A% U3 o8 H9 s* Q9 g" R: y3 R
3 @( i3 C7 V' I
4 L' x2 |1 C& y2 {" V5 t
% ?! P3 b- }% w. k
; [- @: O s# Z5 z: ~. D0 v3 b+ G1 x4 r
! v7 a7 [" Y Q7 v2 A% g
1 w/ q& I4 M' X! ]/ F U |