|
一.数据预处理 1.缺失数据查找 wps实现(最简单的方法) https://zhidao.baidu.com/question/1690641178558189228.html matlab实现
3 V3 U9 \, I( xB = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组红葡萄酒品尝评分','C75 84');
1 u! `" T5 [' G" g# I0 i0 YA = B;7 u7 J1 G% \8 ^- \8 P
[I,J]= size(A);
( t) H; H$ i$ A6 u
2 @% t- J p! ^; V" y5 mfor j=1:J
2 B+ F, W" ~) `1 ~/ U for i=2:I % the 1st row does not contain NaN
( x/ r3 V0 |- V) b% R6 ]2 c6 c* ~ if isnan(A(i,j)) %通过isnan函数判断该数据是否为NaN类型8 F, j' F8 W# ^' X) d3 U- J
disp(['(',num2str(i),',',num2str(j),')']); %如果是NaN类型则打印该数据在表格中的位置
& h7 n( s! l* K8 K/ g) g! Q* ^ end ( A/ I7 H z$ S0 w
end
' T: Z7 Q/ ?& @ ^$ Y; O0 g0 B6 T2 dend
# n! r% W# ]4 i1 n2 d
* e# ]/ L5 |2 \% ~: Y7 Y$ Lpython实现(https://blog.csdn.net/alanguoo/article/details/77198503)
8 N; J% d; M8 U, ]! p J0 G5 ^$ B ?3 {
import pandas as pd3 a) W& U& M0 U- h. y
; O2 ~1 ]$ H' }8 L& G, q( n
import numpy as np
! n2 J7 ~" V X/ U4 B
: L1 P2 |: s2 W5 |) q v0 ]df = pd.DataFrame(np.random.randn(10, 6))
3 V. ~) |* G+ `& W! g
' Z ?( L8 Q0 i* l( K/ V+ \# Make a few areas have NaN values
# ^$ W, J" v2 V2 ` j# D' |) N3 s' s5 e! V
df.iloc[1:3, 1] = np.nan6 J. P8 R8 M& D# v+ W
6 P3 Q3 i$ Q' V4 f2 |; [
df.iloc[5, 3] = np.nan9 q5 w. v) {0 Z" o0 r3 s' P
( R7 v5 ]! u0 t# g" Idf.iloc[7:9, 5] = np.nan
: ^# B4 e$ P& {. L# T) d4 G
& E" d. e8 x& `1 \1 sprint(df). a' A4 X5 S$ W9 i( e* z P% L& h
0 e" O: Q1 T( |' a6 k% |. P/ o
print(df.index[np.where(np.isnan(df))[0]]) #打印缺失值的行
n' S/ y+ _9 k& r8 P9 jprint(df.columns[np.where(np.isnan(df))[1]]) #打印缺失值的列 S% k" c4 a: y. }5 C
* y: Z* Y; S* [+ Q; z2.异常数据查找 z-score标准化(matlab实现) ; N& }7 G) p+ X
B = xlsread('C:\Users\DELL\Desktop\新建文件夹\cumcm2012a\附件1-葡萄酒品尝评分表.xls','第一组白葡萄酒品尝评分','D233:M233');
& N2 t) j$ D8 s5 y; G$ I%将数据z-score标准化5 M( Z7 `9 f) S' O
A = zscore(B)6 l4 D0 y; X8 ^1 x; Z+ N
disp(A)
( x& t9 ?9 I3 k8 `& C5 g%获取矩阵的行数和列数,m为行数,n为列数
2 ~. ~$ N( F/ e[m,n] = size(A)
- R- t3 [& q7 E2 b: z$ I( F6 _% Nfor i = 1:n+ g4 d" N& p7 L6 n6 j
%确定一个阈值,用来判断是否是异常数据# e4 F+ ?. @. T
if abs(A(1,i))>2
. K% ^: R, [0 f; g1 W9 E( h3 { disp(['(1,',num2str(i),')'])
& A8 f* W* b1 J G end
5 c5 j6 [/ m3 e/ a0 u2 }; mend* m! e9 u& M/ ^9 a' m
% j& l; n+ V% H5 Q/ K
二.聚类分析
( s7 J7 r c6 Y) b; p1 L! d+ r% s* D* E3 r7 T- l. X1 Z
1.一维数据的聚类分析
1 W7 ^6 G3 N- V) F7 Q d3 ]4 K+ q( t3 t2 k' a# E
参考博文:https://www.biaodianfu.com/clustering-on-a-one-dimensional-array.html
* w* K4 P* I" ?, t, ^ n$ v2 ^1 z8 c- V4 b6 x4 V1 F
matlab实现(参考博文:https://jingyan.baidu.com/article/0202781154d7ba1bcc9ce5f5.html)
+ X5 e2 z+ k) {& L+ P# K ~! E
7 ~. R# s7 f# }. R- ?7 [clc;5 h" g$ I' }9 `- ]' C
[3 r+ d% y* e
clear;
6 M* O7 l1 m- \1 \1 P; L, b* M" ?( }+ G6 u& C& k) W
yw_data=xlsread('C:\Users\DELL\Desktop\第二问得分.xls'); %读入一维数据样本到yw_data矩阵4 r$ C" ^+ W9 N" f1 \
* S, k5 r O4 R; H. D6 c+ xA = yw_data';+ d% y5 b" I8 B( N; I; Z! K1 X0 z% e
/ j2 V& ?* o* a; y
xx=A;5 M3 y6 [: C( J5 j
, X- q8 |4 i8 B& _! O
clus=4;
7 s. E/ J8 K3 O& K5 N9 K$ T6 L6 t
( O# ]0 x0 y- ?) K[idx,c]=kmeans(xx,clus);6 F: X! i3 Q3 E% C1 H
; K- ?; v$ I/ j; j0 j
cc1=[];
& ]6 Z. K7 V& o' c" Y% d
4 |+ i9 I& i3 S/ L& M$ |1 ]5 ^( Icc2=[];2 F! J `9 d* h! ^7 o9 D' `% d9 ~1 s* v
1 q9 t) `3 T* f6 S2 L- n9 i
cc3=[]; ~* m# r1 {! T; L7 R* M
+ e- O. p% o2 p7 Gcc4=[];9 w0 a& ?+ z" a+ z& y
2 y: h/ V! w8 s- N- C8 _: C- |[n,m]=size(xx);9 n9 I7 \* d$ u2 z( B
8 X# W- D: D# e1 p! S2 z
for i=1:n+ ?6 q$ t7 r7 [# T+ }* V3 B% }
' a$ U# |/ U* I. B5 r5 [( U8 q
if idx(i)==1' w: G. ]8 ~# [
, T+ L: F1 U" Q) D8 K9 F
cc1=[cc1;xx(i)]; J# F- Y6 A0 ]$ D0 T
+ W3 _3 i% u8 [5 g elseif idx(i)==2& I- T& e0 g) C
3 @, [% `5 c) Z6 R" g9 l, Y cc2=[cc2;xx(i)];+ n; U: R" ?8 m6 E
. `/ \; W; v( x3 h5 c% m D
elseif idx(i)==31 [: p& {8 V7 w6 i, H9 m
5 n9 I6 o4 M4 f9 ]
cc3=[cc3;xx(i)];0 U6 q% k( |- O
8 C9 [. V/ V" q4 @
elseif idx(i)==4
+ L: Q+ h; \" s' V5 O( I# K
# |$ H7 ~8 F) D# @3 R- b cc4=[cc4;xx(i)];5 `8 ], d' N6 P
: ~5 V6 r+ X# M; F/ r% E end) n/ u0 J A# }( @; |, |
5 ?- Y* [: `+ q. ]
end& q9 H U7 G6 M5 s4 T
0 M/ r6 {" m' R& S7 O& kdisp('第一类边界')( D4 K, s( I5 I: Z, H, m+ L
6 @1 T) c8 p6 Y& N$ R+ F! n
[min(cc1),max(cc1)]3 v7 T U; `" q7 n: e7 t
/ [6 x, [! `; a y6 k5 U; ?
disp('第二类边界')" U- k" [+ b5 r$ x4 S) F( u
' n; M$ W2 e4 _[min(cc2),max(cc2)]
- Q- x. `6 R4 V' x/ u( M3 @: h1 F
4 J5 ]& g% }. h8 o" K1 E: xdisp('第三类边界')6 H5 |: h# U- g3 @% T0 H# r( x( K
- X+ C1 ?: J5 L) K9 b# _: I
[min(cc3),max(cc3)]
" C& H3 [- S- G9 D2 K- H8 o& @
+ ^( G, B8 D7 _( O" R# W* o" t. Qdisp('第四类边界')) ]# I# g+ h. l
$ ]7 w! E# M- k/ M6 |6 z[min(cc4),max(cc4)]
0 W* H. P/ {2 o. A. ]+ p8 x# l/ n% y6 V( z/ [1 N6 w9 K
disp('四类中心')1 q, k, k9 }6 c2 }
4 b; |& `6 `) V/ l! N
c- ?1 B8 E t6 E+ b: d; F# Z
7 l5 w% i( e7 L' ^
h1=plot(xx,'w');grid on;hold on; 2 n( T$ \4 _! U, B, l+ q3 l
7 [1 v* [) G! M9 `9 E G& Dfor i=1:n
9 a7 A' k( `7 B3 z
7 U4 ^# j6 N( `4 z& a W if idx(i)==1. ]( O$ f/ x# ^
1 g; M* g/ N1 o1 q/ J- O" i text(i,xx(i),num2str(idx(i)),'color',[1 0 0]);
5 G Q4 S0 k1 |7 e, ]+ q0 d% s# B. _
elseif idx(i)==2/ d3 R4 i6 Q2 A9 Q- o
) c' s! U. U$ S
text(i,xx(i),num2str(idx(i)),'color',[0 1 0]);
; X& U8 m# \) b& m; B$ u$ l Z8 D, x# y* x
elseif idx(i)==3& H7 Y& g& O. h# ?2 {, q
% E2 T) L9 z) k+ u' E text(i,xx(i),num2str(idx(i)),'color',[0 0 1]);
, v! z6 _9 c& l3 E, v7 R* X5 C w/ j, t& [/ K0 Z5 M
elseif idx(i)==43 A) V) W, C l# C. H% q5 U3 @- |
' `6 n6 V* l1 `8 q6 N text(i,xx(i),num2str(idx(i)),'color',[1 0 1]);( |& w% F& s! n7 J! q; ^9 \0 w
8 p+ E/ K2 g6 n* e' U3 Q! v4 L
end/ b9 I6 g$ j3 e* w* }$ D
. P/ ]6 v; s1 L6 }end
- y0 i( W/ Q4 u
+ w& h: q: t% E( A" C/ Mylabel('一维样本数据值')
% Y5 z$ Y4 b0 K* _& @$ p! e# m. l+ }) N* y" b% n
xlabel('样本序列')
, w3 c( b! s: G; F" g1 N
# ~+ |" [( k' P2 O; w, a0 I
4 e- _. a$ r/ I: b8 r# _2.二维数据的聚类分析 参考博文:https://blog.csdn.net/zpp1994/article/details/53456306 https://blog.csdn.net/wys7541/article/details/82153844
. X5 `" m$ v2 k9 \1 ~! H5 r————————————————# e+ \/ p d" I/ ?4 H8 z
版权声明:本文为CSDN博主「马马也」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
! o! p; }2 Y5 O/ l" q( S6 a$ a" f3 t原文链接:https://blog.csdn.net/machi1/article/details/98181621
: c- d9 h" E" u( k0 @. N, D; |5 d. Q! u; i3 t7 }
" x' P& z4 S: U: b* J3 _
* E" A2 M2 Y: u! o! E& X- v
9 p7 _, s) O& _2 r( y
8 Z8 Y# r* B2 n; m' z
0 Q3 c1 W+ h N7 J) r, U4 v) j$ K5 W% O2 J9 ^
|