From 0a433d21ff5a1d58139746ab0077ade3dc31883b Mon Sep 17 00:00:00 2001 From: szcf-weiya Date: Mon, 5 Aug 2019 00:45:51 +0800 Subject: [PATCH] code for som helix #49 --- code/SOM/SOM.jl | 50 +++++++++++++++++++++++++++++++++++++++++ code/SOM/som_helix.png | Bin 0 -> 47514 bytes 2 files changed, 50 insertions(+) create mode 100644 code/SOM/SOM.jl create mode 100644 code/SOM/som_helix.png diff --git a/code/SOM/SOM.jl b/code/SOM/SOM.jl new file mode 100644 index 0000000000..0a83dc40df --- /dev/null +++ b/code/SOM/SOM.jl @@ -0,0 +1,50 @@ +function classify(x::Array{Float64,1}, prototype::Array{Float64, 2}) + dist = sum((prototype .- x').^2, dims = 2) + return findmin(dist[:]) +end + +function calc_dist(x::Array{Int, 1}, m::Array{Array{Int, 1}, 1}) + res = zeros(length(m)) + for i = 1:length(m) + res[i] = sum((m[i] - x).^2) + end + return res +end + +function SOM(data; q1::Int = 5, q2::Int = 5, R = 2, niter = 40) + K = q1 * q2 + # numbe of observations + N = size(data, 1) + idx = sample(1:N, K, replace=false) + coor = data[idx, :] + coor_grid = [ [i...] for i in Iterators.product(1:q1, 1:q2)][:] + + total_niter = niter * N + for iter = 1:niter + for i = 1:N + iter_i = N * (iter - 1) + i + α = -1 / total_niter * iter_i + 1 + r = -R / total_niter * iter_i + R + + xi = data[i, :] + mj_val, mj_idx = classify(xi, coor) + mj = coor_grid[mj_idx] + # distance in Q1xQ2 + mk_idx = findall( calc_dist(mj, coor_grid) .<= r ) + mk = coor_grid[mk_idx] + # distance in R^p + coor[mk_idx, :] += α * (xi .- coor[mk_idx, :]')' + end + end + return coor +end + +# data from ../PCA/principal_curve.jl +coor = SOM(hcat(X1, X2, X3)) +p1 = scatter(coor[:,1], coor[:, 2], coor[:,3], legend=false, title = "q1 = q2 = 5") + +coor = SOM(hcat(X1, X2, X3), q1 = 10, q2 = 10) +p2 = scatter(coor[:,1], coor[:, 2], coor[:,3], legend=false, title = "q1 = q2 = 10") + +plot(p1, p2) +savefig("som_helix.png") diff --git a/code/SOM/som_helix.png b/code/SOM/som_helix.png new file mode 100644 index 0000000000000000000000000000000000000000..ab60f27b966f66d3f52445616626be478b916d67 GIT binary patch literal 47514 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 JY>ni|idI!59KkZg7ubZE0RqK9^ zQwk-ltK$e3=8cV6dzCXLp(ls5XMAN>?CaNt#^T1!;R5Zr=wRVb>U}LL7_QvzWrUL_ zR-uR-p}Q6z-wS8`e=yrn70ji;=qq7vF8GQa+T`FtpNdSE)9X-9Y>nf6` zY_r9Oo}RcnANjGF8)qM)s8iT?a{vBWG*>jw4Tdj&{`ceKDP88p1Fx2Cv}&uQG;S61 zs3cpz`D$zPJCXy^5Dj~6eOsSaD=OhERzObQT=-i{E?R7+etG^d+KOP?%V&>pb{aL@g z@vH22=Mor%%Ef^SJE^R|Mnu@haZR&p*J$^>Jk6>%btaxbKD@{*8~0 z7FBg9phSjT3(bv=l*~-U#9An{Rv)nwU2;$d4flZ#9U2`?a;28Gx3>?=Wz0-Z&s7U+ z!R}w&2@rZa^yDdcmoVwWrnjb#KaoX?2ImJPUm==BM^pOOx3;Q@igtVF_xJZtOxXIb zqH6{<{>w5`fa#u|o*hMg&i(trNtz0k_Vn^*WMmxWn(76(1>KL+cz?Te^uDR%sGFf_ z;cM!DQ{ZN}_UPd5nVG#sKXH3u2jx-r_wQc*^^hpLjjqAT$IB|0gEktrw3`R#b-`02 zzFHgt@3qqus9=J6;vYiF(9jSfd*y6>#PZ;`O8^3RwiZ^Mvw$cOtR_>M|~8Nwm;c&Czaj1 z*W)Q~d;esKSGj(s`wz9uS_{Gsm0{+n@D2&e3FM{SU3Xz>{dQk4x(%42^QgDE&ot-P zoPJ9F#}BMk3A0-K9e9|#TJFG(_t~?@~w4- zlh7}$+djORo|kt{?lxX*C3)n>bBFfdXhk`ZU-K{7I>6LuOr;ODjDh>EBxzFPYG7_FQzBjyw(~}~Q zJyYGsU21hx~7_iYRO0ieSN+#|w!aXeqY_VMxpkhFg2b9;qdRzLu@ zlUg=o?(+N5D~B5rn&(thRQFGMJB`+N)h#sg7^{+S6@kO*{=nv2$Pi_22y*?eKWHOM zOUt$!CgN{9U%qS!T-Km#FD(_y&#P;)djS3$UAlK}a%a2`qSQZAc_yhgo?2!aRxEcz zXf3bbxKT;p4y$b;ODH2v8M2Jg3D&ib)nz;<-hAhiKQ(V%VsaYWSolsKi_>A|BugLA}rz5qU