|
一.数据预处理 1.缺失数据查找 wps实现(最简单的方法) https://zhidao.baidu.com/question/1690641178558189228.html matlab实现
" V% g2 H; L3 l% vB = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组红葡萄酒品尝评分','C75 84');
0 O, |3 x ]5 \9 R8 ^7 UA = B;! v V! h% v6 B' Q$ M
[I,J]= size(A);, b9 m+ }4 u; C. Q
/ B5 d0 l A1 C/ m# c* g' rfor j=1:J$ w$ _/ c0 S! ~% o' f
for i=2:I % the 1st row does not contain NaN, A! `) _0 h: O+ o: z4 v
if isnan(A(i,j)) %通过isnan函数判断该数据是否为NaN类型
4 ?! j$ Z9 n# b% T! d2 N disp(['(',num2str(i),',',num2str(j),')']); %如果是NaN类型则打印该数据在表格中的位置
+ k. J3 |4 k8 B" ^3 R2 Y# u: R8 s end 8 w/ z0 s6 S/ \! m
end
( _5 q. D& V3 l) M! _end/ ~$ h7 E' R" `% ^/ e
( D, O |: _5 B4 E& T N5 @
python实现(https://blog.csdn.net/alanguoo/article/details/77198503)
) D8 B% R2 y, _7 w- g8 P
; a" ^% L4 |( m& l; c. Bimport pandas as pd+ x* f- a* j: I# r( t
6 I: K/ `8 Q* Yimport numpy as np
* S3 m( P. C7 J9 \' T3 |
c% P1 x; D7 q& I: qdf = pd.DataFrame(np.random.randn(10, 6))
+ d# o! O' q A4 v. m/ R0 G1 ?2 u! V& m" T2 f0 @
# Make a few areas have NaN values
0 P" d% k/ A: ~( J2 @$ X" Q$ w8 p7 x; ]0 _% |# ^- u
df.iloc[1:3, 1] = np.nan
' H/ l7 w2 \2 z$ U: f7 I1 f
8 c% J# X& h- H4 a& W+ U4 R3 T {df.iloc[5, 3] = np.nan: ^& P3 t& v; m6 M
* s: L2 x3 _8 O9 f5 J
df.iloc[7:9, 5] = np.nan
2 E: c7 o. n3 c! v; r5 j! o' }/ t( `$ v& e$ g, t, ], ~3 R6 d- S( C
print(df)+ g& a9 q5 D4 f* E: X3 ~- T1 b# R* ?8 ~
- z$ i3 _# B0 m* F: Hprint(df.index[np.where(np.isnan(df))[0]]) #打印缺失值的行
8 u! S6 M7 O* `" A7 t& Rprint(df.columns[np.where(np.isnan(df))[1]]) #打印缺失值的列
, g% j4 o2 Y& T1 K8 ~' |6 E; @7 i( m9 Y
2.异常数据查找 z-score标准化(matlab实现) 5 X* {5 ?9 g0 T- i
B = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组白葡萄酒品尝评分','D233:M233');
) _% o$ F6 K7 ~: ^%将数据z-score标准化
$ ~" d+ L4 z. z' d- k0 [7 UA = zscore(B)
3 e, Y8 v) u! S/ G; Cdisp(A)
* N' [( V- P* h1 p& n7 R# m. S%获取矩阵的行数和列数,m为行数,n为列数
; K" L1 k) t) K# {% ~& _[m,n] = size(A)6 V B9 l8 e6 l, z J: V( g
for i = 1:n
- {, x% Q) t( v; _1 [ %确定一个阈值,用来判断是否是异常数据: ^# O- d4 N1 p- Q
if abs(A(1,i))>2
8 {* |6 e ~. I disp(['(1,',num2str(i),')'])
* ]! S) y q& w, c0 C end
+ `1 \, b _* y3 Cend
# o, d- L- `% I+ {& p8 q E) C6 Y
( a# M9 B" B4 B二.聚类分析4 `9 a9 u3 m2 n' Z
' Y4 C; r$ h) d6 G- \) f
1.一维数据的聚类分析
) `& |" b0 k7 E: V
) w8 J. y s+ Z$ V8 l* \参考博文:https://www.biaodianfu.com/clustering-on-a-one-dimensional-array.html9 t- } U. a6 n( X4 E. o7 w
$ Q* y1 u( `6 n% m0 k8 ]/ U8 K! E
matlab实现(参考博文:https://jingyan.baidu.com/article/0202781154d7ba1bcc9ce5f5.html)
2 @3 `$ o" v3 Y5 ?; W+ s3 @
6 U- [0 e5 d! qclc;
4 d" Q; M1 \0 g7 D" n: d& z
, P! [/ F) A5 {' s' X. bclear;
9 R2 l" T% Q2 e* [/ t( S6 `1 `- V! e X" v
yw_data=xlsread('C:\Users\DELL\Desktop\第二问得分.xls'); %读入一维数据样本到yw_data矩阵
0 k& Q) R2 Q6 g
. W2 L1 n. `5 RA = yw_data';( e6 `' M0 t- a8 ^- l
0 `$ ^7 o( N# v9 rxx=A;
0 v4 e; P3 m: ]4 F
$ e0 x" e0 @7 c* v. |: d; `' Y/ Vclus=4;
/ w: E: o8 X7 M. q, l) W8 ?
! |4 }! Q/ l0 Y& p[idx,c]=kmeans(xx,clus);
4 q g! L/ X0 U1 M1 z( a6 W" {* T# [( x; l2 H" w
cc1=[];2 `, W3 t: \* b) q( j6 y2 V: R
, N* Z9 `4 f" ?1 J$ m% m8 R8 q. f$ ucc2=[];
) `4 B' R% B5 M% l' U; U& w
& b) T& n6 [5 d) gcc3=[];+ C) c, E/ S7 }; b }( _3 ?
; y( O8 Z3 T6 `4 `9 K2 fcc4=[];
# [# U; z U- v9 X+ W% t' a: t8 t, I3 m: Q" N' r1 o4 h
[n,m]=size(xx);; E% K9 V0 H/ c B& d
; S6 I5 M" t9 M
for i=1:n" Y( g" E" R: Z/ W Q9 N+ q7 E
# F8 Q/ H' f# E7 R9 e
if idx(i)==1
\" J6 t5 m, p* Q) ]
7 F P5 q/ @& z- Z5 u cc1=[cc1;xx(i)];. }3 k' X1 x. v8 M8 H: g
& n, A8 n) x& c4 M- g4 ` elseif idx(i)==2
2 u3 ~- T* w* U8 J+ G, g/ `6 n+ F" r% W$ W
cc2=[cc2;xx(i)];; {4 n/ @- s @+ x: m2 C5 I
- o) d; o+ C" h) P& ?4 c& A" ^4 h
elseif idx(i)==31 o; | V# v9 C7 w S
* x% G9 t. A( d: o2 w5 r cc3=[cc3;xx(i)];" I Y0 ~ y1 ?8 U9 j
( m: ^! K, r7 V( J6 K
elseif idx(i)==4
5 g* ~ R) x$ O* ?, j: J9 `6 @; y& D+ r3 ^8 _! r! V7 |. n
cc4=[cc4;xx(i)];+ @1 ^' `1 }- A' d- `
" Q2 a9 m/ z9 \* E! x end
3 T* a0 u5 U: Y2 v, h) C( X# n: w
: c$ Y; v2 M9 s( u1 Dend( u& m; g- m1 K8 ~, \
' ^' _. E& u# ~# x1 Y' t) A+ Hdisp('第一类边界')
) q0 u- N+ [& F% O3 J4 v2 m
3 t0 ] L# {' i D[min(cc1),max(cc1)]0 e; P4 a L3 M7 c! g3 g
3 b8 N$ H+ g1 D" c" W2 ]
disp('第二类边界')
; r6 N4 {' q# w# f4 W( U {1 Q# s" s7 K) H
[min(cc2),max(cc2)]7 z. J, p( C8 w" Y( I
, W0 r7 a F$ K3 J: \# E) @1 qdisp('第三类边界')
9 f6 M) o4 T/ P( p+ l4 w9 F1 z5 H4 B9 X; d+ R
[min(cc3),max(cc3)]
! G5 y1 I8 \8 U( [
; \' k1 {$ ?" `( u. Tdisp('第四类边界')
4 U; [1 ]* n# c8 L2 p0 Z: E! U9 `
: W0 O7 t* v5 }3 \# w1 D8 F& R N[min(cc4),max(cc4)]
2 G2 o; h5 v) q* p: e5 A1 z
* x4 E4 T; [1 j1 [+ Tdisp('四类中心')
" b. A7 x3 C% s! C/ ~, Z: m, `" g/ Y3 E4 f1 j% p6 u. g" I# z( g; c% q
c( R o# p1 F2 ?2 J+ h2 a) Q8 g# [
& {( q4 }: b3 @' z4 V1 v% B
h1=plot(xx,'w');grid on;hold on;
( B( s; O8 c3 q% ]
6 C; z" I6 y {9 l1 Q% r- Zfor i=1:n$ y0 o& m) J0 f8 F2 A9 T5 r% Y
3 P x" B) w L9 h0 t
if idx(i)==1
* n4 ^$ S$ T4 [3 }9 F/ L1 Y' ]4 X# V: e8 a b# N3 w$ U
text(i,xx(i),num2str(idx(i)),'color',[1 0 0]);( g% e' c; ~, F2 t% W
: ]7 o/ m3 O8 t elseif idx(i)==2
! v" W3 _1 M( m6 f; Y$ _5 d( r
; I: Q8 h# h6 P" A text(i,xx(i),num2str(idx(i)),'color',[0 1 0]);
; L8 k# b2 }7 ~" z$ M- i" n! o6 A, l1 M; L
elseif idx(i)==3( u2 s- m/ l+ m* @3 e
1 c+ z! {2 r z' H3 q8 e3 C text(i,xx(i),num2str(idx(i)),'color',[0 0 1]);, y3 U/ D8 `6 V$ t/ p4 ~* }
* y% D Z% _' s elseif idx(i)==4, D" [) X: Z) n+ f
' U/ d* E0 e7 p; p. P8 O O. A text(i,xx(i),num2str(idx(i)),'color',[1 0 1]);
# ~* c) o- h: i1 w$ r1 [4 t3 B1 d8 b# q2 _, D# [
end+ r7 B% q9 L5 Z2 n8 B- n, @/ s) k
; s& ~9 I, r! a+ R" z2 O6 V! e/ h
end/ b, |% C' R0 x0 t& q }
Y& m' ~9 d% V7 E6 }1 [
ylabel('一维样本数据值')
% _* u8 d0 \; S# D6 G) b$ O$ h
! O% S7 D n) Xxlabel('样本序列')/ Q0 y( r: `# ^& t$ V ^
9 l- p6 k* V5 a: h- p9 J4 u
' x; W, L& w# C$ Z! V2.二维数据的聚类分析 参考博文:https://blog.csdn.net/zpp1994/article/details/53456306 https://blog.csdn.net/wys7541/article/details/82153844
$ D- K+ ^6 b2 \' x————————————————
0 t- c: ?7 {5 t4 {; [ k$ v2 |. s版权声明:本文为CSDN博主「马马也」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
% h7 Q. G; [; @# P$ R原文链接:https://blog.csdn.net/machi1/article/details/98181621$ y$ d9 S" E+ h8 @0 {
; Q% \0 l+ o6 g f1 q3 q
9 ]$ _# X' [' I
) E* r0 ]' R& H5 E4 @( o( M o9 S
7 ?' o' \! P% R. e1 R; a2 j- {7 p/ R- v; T: ?
% C, t) v0 T% a9 s5 j0 S4 J. i3 K% C3 r
|