|
一.数据预处理 1.缺失数据查找 wps实现(最简单的方法) https://zhidao.baidu.com/question/1690641178558189228.html matlab实现
3 ^9 e2 Y. l. w8 V: n# m! _2 uB = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组红葡萄酒品尝评分','C75 84');
$ b1 @5 \4 g5 `& o2 CA = B;
2 z- F- V, _. s! K[I,J]= size(A);
R% w% w2 x+ g! Y( B5 A$ ~0 @. Z( y/ p5 P- U- Z3 B
for j=1:J
% b9 s: o4 i' e3 l" U6 v$ G for i=2:I % the 1st row does not contain NaN0 \2 _4 P" y/ F r- d5 ]* p
if isnan(A(i,j)) %通过isnan函数判断该数据是否为NaN类型
+ O) R7 q; N8 `# n4 r disp(['(',num2str(i),',',num2str(j),')']); %如果是NaN类型则打印该数据在表格中的位置$ w) F1 i3 P! |- [! p( T6 M
end
; f5 V. q( ]" G. {$ C end
* I9 r1 n; l( H0 Fend/ ~, |2 V ?3 U8 d8 X0 L
6 Q/ [! t6 z' D" Z# Y
python实现(https://blog.csdn.net/alanguoo/article/details/77198503) m" L2 a6 Y& O1 J
x& x3 A. }7 I2 f
import pandas as pd+ w: s* y; b9 F. j6 W* ]/ m9 [) r
2 }- c0 W# x K0 Y$ [' n% z# Kimport numpy as np' g6 B, A- A8 [8 P) n6 h
% C; E/ c. S; w+ xdf = pd.DataFrame(np.random.randn(10, 6)): N6 f$ r1 g5 V: V" Z, D
6 Z0 u7 V( g# V* Q
# Make a few areas have NaN values
. V; D( g$ y# D& _% x& s
- N$ W+ Y5 E7 H! j6 J x* c4 J* [df.iloc[1:3, 1] = np.nan: \; @+ C5 z; e; d# J0 k
- A: d) ^0 [& z- w i9 e" Y5 D% cdf.iloc[5, 3] = np.nan
1 I9 S; o9 w9 W+ L
& Q5 q7 O! q' o3 K1 n" l2 f* h( a. n7 Wdf.iloc[7:9, 5] = np.nan
- m( ~. C- X+ q) z5 Z0 e: @. n+ R9 S4 `) E; H
print(df)
2 g1 c# [/ T3 j# P- M
! N/ q( z; ~* C1 ^9 Hprint(df.index[np.where(np.isnan(df))[0]]) #打印缺失值的行/ [8 K8 J# v6 A% t3 P5 k
print(df.columns[np.where(np.isnan(df))[1]]) #打印缺失值的列) h9 |+ C }5 T3 {
' k8 r3 f/ m6 l1 _. G8 P0 K
2.异常数据查找 z-score标准化(matlab实现) - \$ Q4 \/ v) `+ A9 p+ M9 p
B = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组白葡萄酒品尝评分','D233:M233');4 a+ ^5 g6 g8 k2 Y( p6 J* G& K
%将数据z-score标准化2 U) K1 Y/ t! M: A1 f% }
A = zscore(B)
- e0 H9 z1 o4 `2 p( O9 Ndisp(A)
9 E: Y; Q& C4 x6 U%获取矩阵的行数和列数,m为行数,n为列数& f9 H' u, n* m/ s3 N" I+ d
[m,n] = size(A)8 Q+ K8 R4 A0 R2 O) Y, R, J
for i = 1:n2 ^* [ g" c5 W4 @# h! B `
%确定一个阈值,用来判断是否是异常数据
: h! ~; d; s" [8 L# q if abs(A(1,i))>20 M' r4 _+ b E( h
disp(['(1,',num2str(i),')'])
! R- G0 Y/ l, p6 F' R w% _+ v0 z end
% t! {3 G# h o. k' g4 R6 ^end
$ Q3 X- N' R! ^6 F9 D; T" z& s
二.聚类分析
& j/ ^& ~ i- r* }5 {6 Q# }5 Q2 c0 n' N* h' B& E. V9 I
1.一维数据的聚类分析! U8 w7 H! ~& h0 a# d+ g6 |6 M# K
* t9 u! G2 N8 n6 [
参考博文:https://www.biaodianfu.com/clustering-on-a-one-dimensional-array.html
- n5 ^2 v4 @, z' N% @; @
4 g, r+ w" s+ p. Q8 Imatlab实现(参考博文:https://jingyan.baidu.com/article/0202781154d7ba1bcc9ce5f5.html)
% p& J$ E; a0 c1 O/ Q; [' J$ ?% \+ {$ t/ G8 r
clc;2 X. V% b v. i) ]6 Q! S2 W, [
- y% ]8 t( c5 h$ mclear;$ C5 M; H# k) U" E% w* N
1 t( k7 P5 y5 b) s" g! J) tyw_data=xlsread('C:\Users\DELL\Desktop\第二问得分.xls'); %读入一维数据样本到yw_data矩阵
1 h7 ` ?5 K& m/ K
9 T, V/ P( Z5 J4 z' oA = yw_data';, Q S" N% g/ m6 f' ]# L
6 W$ v1 b5 v$ D6 g/ c$ V. Oxx=A;7 |. t* `% q/ ~
, Z) }0 c$ k; N- W, Z) M$ Iclus=4;
. \) ]3 s H1 F4 o: l2 t
" ? u7 W9 o+ o3 Q! h7 u( e[idx,c]=kmeans(xx,clus);
. v1 _. _( ]. J$ ^, r
7 B: p+ y; F5 ecc1=[];
" M' _& D- \) b1 [% d' {1 r
! M( F+ n7 {; g8 `cc2=[];' T; {' a/ C j& _0 D i/ A
$ }$ y" T7 P* T Z% ccc3=[];
6 U9 T6 m! l/ k* u, Z S7 i A6 [. s4 T& W! j
cc4=[];
% _( ]# r( h: i1 m/ o6 U
7 Q3 o4 A) u/ J[n,m]=size(xx);# q8 ~& M2 j+ O: X& H6 {5 r
`4 h: J. @1 e, g
for i=1:n
9 [0 T) a! b0 U! F: L( J' }" z* q; X2 K* A" W
if idx(i)==1# z' ?9 ] n- y; M# k0 z3 G
0 t# n; P1 c4 X$ o0 I
cc1=[cc1;xx(i)];
# k8 c$ v0 U9 x; i/ d
1 ^2 y9 o; S0 s4 M- R elseif idx(i)==2' ^, V9 ^: n$ j5 ^* I, j }
! w* s$ q3 @9 D3 z0 J cc2=[cc2;xx(i)];
4 k/ E: O- u8 R! t% T
7 Y- V: }8 q z# x( V2 h elseif idx(i)==3
" a g/ J0 H9 [* M! i- q# e c8 M, ~2 M8 m0 s- g U
cc3=[cc3;xx(i)];
8 g9 `3 ]: l3 I. e6 t/ G: X8 I4 Q% G H( T) C, _( Z1 C7 L' Z
elseif idx(i)==4
. H3 g6 j0 h- ~' @/ @1 b6 V# `. i* ]
cc4=[cc4;xx(i)];; N: v0 a2 Y: ?5 B% m" u
' d' P0 w+ }" \+ q4 h( _
end X( Y) e. H9 C: p
/ _/ [0 j6 `6 { p" I5 o* W- ]
end
# n; K" C: e& q4 Z
2 O9 e9 y! J' S$ k" Ydisp('第一类边界')
" @+ v6 E1 H* e* w# `: v" J$ R: w
7 n+ r+ e. a3 ~, c8 o, i% ~9 M[min(cc1),max(cc1)]2 F6 M9 `6 T2 ^* y& T( ^- G
5 b/ |2 U; e; i$ X8 a
disp('第二类边界')
; _% d5 D% D# i3 j8 r+ S) R# T0 e2 n
[min(cc2),max(cc2)]
' s/ }7 z# o/ Q4 x @0 Q) U2 o% n1 X7 H! c
disp('第三类边界')
7 W2 R# w6 c4 q+ u' n2 S2 m i: V5 u4 O: v2 Q9 d
[min(cc3),max(cc3)]
2 K1 F7 K& c$ i* L% P# P* s7 t, ?2 U! @$ V& P
disp('第四类边界')% Z( V# }# ?* A0 Q: ~
, {& k6 T$ B, D) `* O5 J& n& H" K; q[min(cc4),max(cc4)]
' r2 E& j6 T9 W5 m% M$ r; b+ o* |
) h+ i0 M! a2 ]disp('四类中心')
2 K" P- L: ]2 i, @6 c! W0 ~: U# y0 c+ q, Z e# Y5 k" x
c
. v$ u+ T0 G8 j- ?6 j1 O( J9 A" m+ l; C; E
h1=plot(xx,'w');grid on;hold on;
$ I6 @- I& d. J3 K0 O4 J/ M* l- u" L$ i3 U) I8 B/ K: A6 a2 C
for i=1:n" `, m* |9 x6 W Q3 |0 X& y
) @% f9 A+ v1 w; E( I- y, B$ n) M5 u
if idx(i)==1
: U, q+ d$ ?! ]/ S& ? b2 L0 a2 {, X" t: q, w' y
text(i,xx(i),num2str(idx(i)),'color',[1 0 0]);
7 ?) {- t5 y( i) G4 @# F6 @
4 k# G! L) L- Q elseif idx(i)==2
; S0 F! t- u3 H+ q0 i1 b ]2 y: }+ p+ T& {7 P3 d4 I6 ~
text(i,xx(i),num2str(idx(i)),'color',[0 1 0]);
4 m' S6 [. D7 I( ]& s$ ^, x( O' H
elseif idx(i)==3
$ k8 ?# S# q2 L$ i$ T. c8 e* |, p) Z$ Z+ ]$ E
text(i,xx(i),num2str(idx(i)),'color',[0 0 1]);
, F' `+ j, K' t( D; d }1 d6 t* \) b a# B: s
elseif idx(i)==4
6 i, C; b9 f6 a% U: r# X/ P9 b. ]! e
" Q* ]0 ]6 I% h3 Y+ A5 s7 k text(i,xx(i),num2str(idx(i)),'color',[1 0 1]);
2 Z/ l8 \; v3 I9 a5 q, t9 C$ ^7 b$ A$ z
end
. U( b0 _' b) f) l, V) @5 w# n9 \( s! h
end
: K/ b5 H- ~& z& ~ Y; i c' u4 x# d E3 Z; F# `- |& e
ylabel('一维样本数据值')
- k2 T4 h" E$ @# x
* p$ E( l, Y! i4 s% vxlabel('样本序列')
9 z) n J$ ?, g; r" K9 N0 B
, W8 `) Q# [2 d3 X5 Q8 V: X( Q; |# ~* t) f) o, N
2.二维数据的聚类分析 参考博文:https://blog.csdn.net/zpp1994/article/details/53456306 https://blog.csdn.net/wys7541/article/details/82153844
" y- q, R6 Y7 j9 S7 f8 G———————————————— D; M; |/ e, _) u
版权声明:本文为CSDN博主「马马也」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
( y: J+ ]% w! T T# z) z原文链接:https://blog.csdn.net/machi1/article/details/98181621& N: h8 r0 W! c8 c: p3 |
/ ^! g6 h% J& ]
7 K% @/ B9 ^4 d7 f9 p4 f: F
7 Y3 w) a* \4 M( R8 K4 {) @. t
4 \* r. Q+ H/ p& T2 `# w
M; L7 |+ l/ }3 x8 Y, M; Q7 Z
: s" Z9 b( Z6 G* T: R9 ~, N; Z( Y
|