From 210a1d0b197b4aa91ca6c8adb87beb3af873a22b Mon Sep 17 00:00:00 2001 From: julien Lengrand-Lambert Date: Sat, 12 Dec 2015 10:21:41 +0100 Subject: [PATCH] Starts working on week 5 --- machine-learning-ex5.zip | Bin 0 -> 229688 bytes machine-learning-ex5/ex5.pdf | Bin 0 -> 187357 bytes machine-learning-ex5/ex5/ex5.m | 220 +++++++ machine-learning-ex5/ex5/ex5data1.mat | Bin 0 -> 1321 bytes machine-learning-ex5/ex5/featureNormalize.m | 17 + machine-learning-ex5/ex5/fmincg.m | 175 ++++++ machine-learning-ex5/ex5/learningCurve.m | 66 ++ .../ex5/lib/jsonlab/AUTHORS.txt | 41 ++ .../ex5/lib/jsonlab/ChangeLog.txt | 74 +++ .../ex5/lib/jsonlab/LICENSE_BSD.txt | 25 + .../ex5/lib/jsonlab/README.txt | 394 ++++++++++++ .../ex5/lib/jsonlab/jsonopt.m | 32 + .../ex5/lib/jsonlab/loadjson.m | 566 ++++++++++++++++++ .../ex5/lib/jsonlab/loadubjson.m | 528 ++++++++++++++++ .../ex5/lib/jsonlab/mergestruct.m | 33 + .../ex5/lib/jsonlab/savejson.m | 475 +++++++++++++++ .../ex5/lib/jsonlab/saveubjson.m | 504 ++++++++++++++++ .../ex5/lib/jsonlab/varargin2struct.m | 40 ++ .../ex5/lib/makeValidFieldName.m | 30 + .../ex5/lib/submitWithConfiguration.m | 125 ++++ .../ex5/linearRegCostFunction.m | 48 ++ machine-learning-ex5/ex5/plotFit.m | 28 + machine-learning-ex5/ex5/polyFeatures.m | 25 + machine-learning-ex5/ex5/sigmoid.m | 7 + machine-learning-ex5/ex5/submit.m | 63 ++ machine-learning-ex5/ex5/trainLinearReg.m | 21 + machine-learning-ex5/ex5/validationCurve.m | 53 ++ 27 files changed, 3590 insertions(+) create mode 100644 machine-learning-ex5.zip create mode 100644 machine-learning-ex5/ex5.pdf create mode 100644 machine-learning-ex5/ex5/ex5.m create mode 100644 machine-learning-ex5/ex5/ex5data1.mat create mode 100644 machine-learning-ex5/ex5/featureNormalize.m create mode 100644 machine-learning-ex5/ex5/fmincg.m create mode 100644 machine-learning-ex5/ex5/learningCurve.m create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/AUTHORS.txt create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/ChangeLog.txt create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/LICENSE_BSD.txt create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/README.txt create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/jsonopt.m create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/loadjson.m create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/loadubjson.m create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/mergestruct.m create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/savejson.m create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/saveubjson.m create mode 100644 machine-learning-ex5/ex5/lib/jsonlab/varargin2struct.m create mode 100644 machine-learning-ex5/ex5/lib/makeValidFieldName.m create mode 100644 machine-learning-ex5/ex5/lib/submitWithConfiguration.m create mode 100644 machine-learning-ex5/ex5/linearRegCostFunction.m create mode 100644 machine-learning-ex5/ex5/plotFit.m create mode 100644 machine-learning-ex5/ex5/polyFeatures.m create mode 100644 machine-learning-ex5/ex5/sigmoid.m create mode 100644 machine-learning-ex5/ex5/submit.m create mode 100644 machine-learning-ex5/ex5/trainLinearReg.m create mode 100644 machine-learning-ex5/ex5/validationCurve.m diff --git a/machine-learning-ex5.zip b/machine-learning-ex5.zip new file mode 100644 index 0000000000000000000000000000000000000000..bd2f512e98b70ca8bda51eb828acf6b8c3e734f9 GIT binary patch literal 229688 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%0D|zn)PQU*% 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®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

;_JSse4HrgLWK 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%0AY}75{YM5(QQRZkUD@zo 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%0DOB(nB$miB+Y(JnQ0)(&tA`pQ$ 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%0DP0QIVnXJs139JlD+s=2Yh%I6=SKEp-T9b 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

  • HLGDo6*%go$-?21g!h6CeT&@|Gjci!2GMR>oJv; zruD>*cjP)eZXZT5h4YmR#+Q@G4dV^XH!xlvNDEL=zjLVI5_&C zV*|l{oAP`=8<$U+(w~*??aO0lB!DihkrYD9f5~NcA)!hU^M&8BxYW)0Ir{mh>Cy|- z&+sIR$8WR;N5%&`7yCIioS5Wr1W4@kn6zc39k{bEkSg*Jki<}kfIl8I-d0lo*!c4e z3xNCQ)@wkw=pUQ5Mkbb4c4mwqGb1NED?1BDGj~pAO$`_TROFjy4Oe$000i_61ONby z3I6bZ4jpKB^UKh9|1tEjsPg|c^uLF9g{;;5Ux)t#1P=(Vb`qx%HjF%n0|1=y0RZAZ zhX?NppwK`6uZ9OBm~8(MLd0W)+J9jrIcgzQLIVJ_FaQAMzeD(gaR~o^Wap0%z%NrH z7b8|CTO*g>MVSaTY~q3U{~7$E|0SH8SAT&rH#2f^buv@3cd|7CS$UfMUTlBJgV11; zNs9~sFp>cPZ+-!~p#Bxm*2>Pr;!n(P$i$An)S?3g07xN#4fhM?C&6D}{^dAvS0}gs z8q}Y5uC@Nfb433Z>^0z6w1MQWXjaDmv^Bxl%U{{rGDPPW#Q*oi9|%O!|AMe~wzmTr z{fUCMJNe&H|Fk&3KR}9>$L;|D&YdxFmGH$^9e2 z_6{z8y7M<;Z7Rl}lLGTl!5QZGg&Dx`n@j~+aY-e0$#-Jv5`QOJjOD}{AXsV!Spb0f z7cv*iZ<0awMy7v6{QKdOi?7e>qX7W(0ssK(FVJg=zX5eM{(IP?Eit81u(D9#O#kYr z4&ZNMZOxo4%$!}ETuuIlx_ICl!GvQ00A=$3GsjcfzsXgT6qQhv{5!(ZBwuXeqXPh3 z;Eet%Y_HvKLYG`6LAtM9dcndz2>nlCCH?;f^zRBg)ABBv3=({B2d|M_zxc^1 z@i(zJMCpx?fcy7&QZqitZO2b?IN=-2Rvg|M22(m0SNTP#}w~r66%t!RJjO0c$Ie0Kz|c s;Nlxx9}`#n-#jJq;g{5boFP3+FSW1CvVB3G#XL#b?CWkKer z>8JJ6tAPr7;Mk!-idnTE6#HGmCQSY7yBZ70uZo)#_Lt!jg|+LSy=-x(j(x?pL&f-> zg~i3wewqg{53+O#QHI2%guXOU%s|AA6{r$|av&1T%p*v!mVH#|=n*PZnkpnNXYvbE zB@t~0a2XQMN3`v82BA8F3bbwmNOVj}32HEb8j-2cS(E^0^9;2P7l^r5;hWu;ZKa8Ow%V-9I!%?tVpFG4bagC% zI}IN~=w?mPL%?LR*D#jbe;Y&l0a<9GDYV#G;1Rac#Jcf%p|MuBG&?NYK^HYgVSOBk*jI~S=6MvLgNDbw2&3aBS6I=O$%eS#O2Q9&dL~Jfl<>xpRdt$Lsy#f<> zLej(2H$gfLlL=)okc$#%Qv|PxZGOGUr$HKBL?Ix^AjlS9)Dr4hU98C8eDcf8MieoM|v`AyIWPLo6GoeWVF0 zg})$=k0=wnX?KDp)VrM23%!9WD72_X)VAAU{z?JNL+T(-Vt_)+X#H5c5jYHFK(pf1fZ$ zlO-f5Imk zX+DFCLgTzV)y+3>7og2#%L`rMk=h`h!ixnPAYvj5jPcZ!^1^b!B zhxzW39ID4ZeT9=PU|^l0l+4Axh1lZM%Cj>oz|1mijUKaarA9~u`mx(Cd=y<*&~cZY z0Imqparu2@d?A47*!j)$DJ5q@t2L_hd_K8 z(WCC{BigvV!yuLWf&>S{K@IM;`=+j# zRB_D1{dB)K4+EcdtuXM~98RVK@Om#U8GCS@*(=`_wR1o4JhFGb|bDt^z# z1X?b1TG5^ZNqG1oPxhAS1TmL9wC+5SE(Bt2T|pL)|11vH$}De?b=Pkn@XFu67Gm@P zVZGR$fhCUQ;5*|QB4{C+ow~Jv6D_bLVI~E_{Fx&@THV{!GZY#~>SlfXz{$s3i$T4< zAFqtpZklbx#Xa3JVg=8-Rk16$y+nsT-lT{QLP{*Xj%TnChnE614~!Rx*?psk*`AjV zhP?Y@dS*K9Cp>Qrj^D!xGG#@bM@K5wKD{I}3`#gg?kzizbUgm-i4PdxBI$I(&gu*Z zAJWW~Zb&XVecLDYdp|sSh0SbSU>>8eOBrq-JSC*jpl@{R>kN^6I~wG#-JXC@dUK`^ zwVcOFr>30j+_s!22ZER8+%@C+hf$ma7u5Q5uH1g4tMb#d^Qu6DxJ%=X`@!$s9D2O% z(h6Fuyc<)uYsA6J&%kwF>8+kyX-hBNhlBbB;B66%B`D}mQSa&}udpAru=T*M!1tNo z%0rNmeL1I|E@>MjIFdCk|L~WoikZF29Im`?{LHw^)j*lrnfzb*{(JTh>1SvD7cqd7 znfc$10Vx`qaR+QjemDArhmv5USP9D`Wd=beWXL2Mm&Jhwj1$1L3#|yaaHO*CH+6rw zB(&YOgJ+PXM~b3ceX5nPa0^-9Z{y$Zy2irWZdB1A6Ha;377qB38f7Yl#6lM(Q=(2A zBKgMt*nN9^o?Uq>)~cTuPdjsjsWl5Pt(vtinN^t}{^UkgAH*^FZH!alp?`Z=b;Yj1 ztg^|>5YMd``=4LhC~7sYM9MT-K)+MyHYAS~VW$l_>KxCgRZ``~r9yt#={n-IX{2|(M#?=QjBTr5%%-iO0&ml9N5jSf65Trd(cq@oDLS3x)66EUd zbY*k5SQ7KoQ~|=Rd$!II4f1Mos+WFrsV{v&0kj)U1Tc!HN_kMa({~HD8i_La=C|XVio&@UKL-4f4oQ3~=XwMlhtQNLiV1`Vk6_U` zK>kzmeBg8ixDpSY{cS{=;9FIAJfKs5{f^*9Fd%}(DLf)l9v=bFM1`z#*ajS69+kuo zbD$;Jj27eyCf~8j2^8#CYt<1(JjGX91)*U3~ub!Y@;6ToX|R6 z_E}pt4ihbM#tw|bn$j5l3y&+D+oy$?|1bx$BMXKxdeU#Pm0t^cb{*`Jy-bk)#=C+Y=YaINw-)u-(i-c`T{&@2xAyt3*`HL;3>1cghSw-AE#iu<;NIgr==BQ1(ZE z9};S&-Whle|84~E$dbby8J`+~_ws5KzJykU)yC3g_ix zs^t&2KW0XSNM;!_>yAV6$s6%(4}V*uL4`9Euh&vvZ;+C%1XS_->I~?yVrK9cXQFX_ zIS3*Q_hDv+7EUEZw23m994>=*=U6b`yk}Q=jaqZO2H9onp$bVzmyYRP1XOQ*Vaja+ zZ%iImrGT6ECq_(4w}YRax-xa_<#m|$k^Jy?@?PI}e$z_vW)JW9`8ci%oU*roR^bmn zFUvyUeqaGZ!43yb!M`;HAExmWxMx8LmSDmG1Z;sKm_EwU7v)v+Ok=wFaH~WwhhvDn zK9tBHLtS3?ySrSm^hjDe_QaMFf{pu`@tvjbt9BZ1c#BX$vm!8&dsxgTEJz+{qe)`= zb_CVKafXXFuJOS*{LJ4I#N{^rOnOtf-{W}IiXsVUv6^zZie{PGYB<(82ZuZ1y1{H-&lFNos`3W0{w@k@V-tsN&*XNBDGbMJ1CUjI5mB7dq;Tj=!AcDp5!}zw2}@+}}Aapl`6ay4qIDz2n9%j_6Ww(VtP zHwmR;UV!U6r0STsF_(jJ59R#bVl5XlEPV7)CWNF{0z_e`3%@|4 zTf1^kQt8Bc@3n(UrewB!U95EvFvbA4hsgMXV#~=1b@mO9CiwW-(+urBauTJ%O4`){ zL@7MsWqNyu$r;PrUu7wCNVf|9fTiteSnimhA7_I$JlNltx;@G<_$Mf_WN6YmB!u@l z$sDmWIw}funEU;<07St@Ig&^GNKT73~M(uz;>tJkamyif2#7}5z)-|qE|+(GFR-k>V_8iVmV>+OzFY% z8svheI>6ZR2NL8r*4<=9K-`SV*EE=K@^T^%j6@>zs@%(~530pTI+MVQ{_YODqibkIvR5H$4b#3q;KUdU#U$ zH3T+3&~)}WpZuVFuV?==xO1@li{Q@0$oTID_Zl^6`vWnU-Vb$%zXLp$jJD!!Et{tG z-&hz|Kv{UD&%;+5h^H+A%!IGm{$kIlCOI8nk*e0-jb@*ek|BL_e9Su0mPe?MWy zq8eFNnFz!zR1vZ@OA?nnTi2mBRl0_`kVMkAB5YDs)s1SGzBv{9na8cj<@PBUf9=oa zr<*sulftl+agbcDi4v1xQ7ivisLWmJ;hDASnm{Demv_zt&(lX`&YS}e(pO_W6ig%3 zi@SA#*w9}0)n*IL;({tIB=8LY(+U8*gm`{u?`CIa@1x(=Q&*si+f|pH2Z$GJyM^t< z1?{`D!xbKlw6)TsvX*o$!Ce%P-6OAW-4`^IkFRh%g)dyBLO=!8fP})g8!X!t4T9o6 z*dC?Q+BKS)?0Kf0)xx3#ekb`p{dU6{F?y-+Ds^GtJjkA<Cr3x?w2gX(!Vf8qpa>&>vWfr1$e!PgT0uJHg1$z6T5aWRu zz7G$wfcBPR;n%TkU2GIe2i4Pp7=(tjkOu1%;{_yvz`W0`czGsRZg;!b;A#>DOgRIW zN2-k*E>iHa0>9bHE9_-o<5}~Ac*?Pyh3T_^s|%0HBsaZ8JWD@(CYlH=H>zmUrHM1F zz1vwH%e9j?bz==f>IV3cpNLbKS@?ipi%=VAZ=CwBAJAEpDy#7qCPfxwVJIw+@aBgp;JU*B!$DG(;H5P7hEWm!VVH6;>98*H5*U6C zw@^G{(;%Umj@_R1j{fCAgepTU$O!SmbB*q6L)X79$NTFE5P&6A?q&`25(O}qXi)eZ zw=|n-(%mHOHh&GY_(%q&?Vgw`;5OC*`$+`w{!t;%0*`d(+8z)>tr{-I~Q{cADeP`T|L z*RSbWlO)U4+-%)(!4zkGeJLbi&YulOGkmi6vgQ?t` zyUh~A-*LegVhET_T!Yu3FDD7@OcZ6e`zkDx%3)9c=S z=|>U(8vD!vaWdLSRP7O-U+gEf3Q0r_fTdSzE5mw#Hs?44}?Vz0l)e|j)N(JQEkYS8`VV5V}0wx$FWbaeEV zwua`W&h#dRE{1dtCT5iX*GJ*6RnFDc=r1q(&t{T#X7(bM#x4XL9Dkp!1Vt|-WbZ+s z&G7evg@uEFnVC%&ieAao+1}O3*wmTe9}rH#$=+Dm)P+Esfc`J4BcN9?^>88h>m};p zBChQ6m%{ziONpI;gY%zV^6~wBTRWG(Rswn@4g$`9^sV$4(f!^36Xa@~_xT@BSNX+pb$APa~B5=cqO*Gtab^!o1*sk?&xh6gQwytuIo zbXznv?9aWE9Xa1ltf%8}FU9ik_?Txtkgv|wHLp6bui9$Apg!p%(AuQ$6#BR@7PvzmvTZDY{mdy&AV8A4gj~*(~1+P?ALq;ac)(UYLfe z6*IlwE0&W)4CPvK{~F3Pn^>@4PBje8c#S7LmnLBNTCv;C=8lJ%o~muk7jp~9?ejo5 z*zs=gFsPOA!it5An?ziei~{^6u+3Pkg^YC2pyhE$%cD;lLOh4?u2pg9I5g*J)X2D{ z6!@3YzB$I7v$Gi#t7Y7h^Zkx7;yQuBf|q2}*rG!zVv&|*T~;3^J3UkFZWYrh{-cdE zg98eViwT}xV`HP{e>5{Iq`f%Nl&Z=qq7JW;RpQYV;oxkS<>LeXo~jvNe1a`=bgi%n zsuNDH*Ku=#oF)6_F%P}u6uGo>$;2A-DzA>?p`x-GLuddGPm%J>4}eSaAX!~cDvBca zU-59oEj9OaPY}b4LW1WBC%gf;4I9PEPt)B4t+^&lO(3b}U6>)i9o3 z^13Eo{M&li*wJVi4DAG4Opjk>IMx~KC=tM>8wbEUq!QN2Qy}yTgXozsl5^0KQZ0ER z>YE9S?p_2P`BQ@IThH_#H{Hr{RfZJQ5Subd^p~T+<=O9ceZLQ*wFhVLI|llAwy)W( zzuMPs+UzgXdvt%a?4M>fZnB&&A$|6M{PrUAAg$6aa6J2b{rtD>A0Ot}zkKTc;H|!Y zT*2vm3D+IF4d(SZ^+zTAPg&vo7a0~43kU1Jn_*pP+1ekBB7R@%5BO0167&9;Le$KVFa> zF6z^9_<6agibk(Xi48I6U}Wm-j1{5EK;x21Hjz4BSfTPl@9XjLe|jFVPLLy2Hd{oQ z(umA!-;=ZG%{Ch??}<+?NP&@Vnh@G|B3z>JlPpY-(ExH~8f{vZguv>1eOMXkqXY39 zAx4y>NsWY&!Y-|Uc5=SE=8aQJ_rZ27ZTQSV-4P)&BmKmS6 zr4k;+OuhQG#Q`~E{#!-H7&46ER7{rg^sn0yj3EW-p3nLgoF{aLTa7RiG-Q1gcZGLnjX& zawbtmoOyu!(i5Kn@eUYp#wi7-hGj*TF(axq}MLwI!zB6;`BQhHXv`LI-Tmr+a9lnNME+jvGU5zNE#VN=irV~0n zq(1&H{2!SMWCjHyAcybY z-vwaVHihdq8o%8zLVJiiFfLsSDgqJwN;c&PuF!L4hCKiys7lA`z8i@&StQE|Ur;ab z(58rOmfABQ-8J76xmh(;4_j4*iZfC=lwpYAoJ#Zsv!h3sGIbR6Uu>tgcXM4({h@oW zwB25}T|muhq~|90Y^zO8V*;+-Tq7Me!Ftivw$JhDquW`o>_)khRexW5_UaoOTwN9o z+LSxqYj1uAXV}p@9^9AcE9G_DqPK+5PJ61!>b{!Px2$xLQknUMZGW~h(LFOl@IM zD6iNxVcK;Sya&j_;KWlf=8b2qfY-O#*)uB3&d||rS?SkC^_9&VoFQWktC6BtaaZ3) zxI&^L?cua7KC=jF5ujyQRh4NvW$0oaKqasmB-M3SsM>TnX{5bho-)x>C>DzIYeCTK zLJ#`qB^Ic;+S+3j0{N%q>Wk{D^K@qkxMuPCRCM$;LqLGo&h2S(hP?(IXQ(JUr_b>` z(T`9ZkkJYGHVNiqq6ioMjZ(PRYzZwSC~1~wjg9lSLj4)Zx8DZ3NgH$%`k$W8X%U~N ztE##_mj_-axs61eTG*VNEoZ$b1*sAYVz}#TXeO=f za~J?d&Uvn^vNNmh*_kT`TTNx$JK+6Wx;5R z_xlrSN1oBaX`ZVsi(PNrbxo5HghR1Ao~fpfQbl`2dY_J9%I_tyYPVyU&9g-WY%LoA z#I*BU5cq7)r2Dh1vGD3kMu70o7gsS(mw4O%#2b+uE?RB0p+Q|HkHydS(1KIA-itP2 zosR~5*&c^|w7Z#a|F+YV`0%fmc3SY`eo<0DNxjYx%CBg>Z~{GI)#U_>L~TLyTg0J=r=?LJ zCo_w$!3hztTpJg?ADCMC)J#II<`#HQADnDJn4dh_`YJG~GwYqRm>?i?q*;jB| zmolWmg+MG-5D#U!gKshk1u|~j_e`vQ{wk$bLp9PVxPt1yc_VPVllr9l(~RqPt=y_f zXmAdG&#%hK2oNS=)2yCM+TyLBqWg4FvJeq8SDlc#=^*Qr9g@j%mnhRLVE`N89%TSe?vz^UG9^SJo#*Z^G=AYw zCfRyNzF>V{bkaBj2GO*HLTDqs_({pOUrMIxH#=(Bknt;Peg>;o06ny- z0;B%2 znUz4DIy(d;`Wpe`5ucELuJNz%a(Eid*J^DY(a1%*zIpqDf5 zl|N6whcXu6CxR_SW{M=#I3xhmcm|CJQUc&%lu zpNy%hcnYiUBQaFGL<}V{55JkO48B`=%Zpo&Wl*!(U^`RZ>@?z^q{?;;#J&8dWcp%t zY4-Vg(v?$Z0siUguOWvIGOE?uQpXKl7?6-aZFq_qzctpsh)!#C7@OdlhEejyPZP5% z%S{~>e{h>59>|=>jiFd{Tn94l-bSb`KiNYpru9iA$(xd^?=iACY;vBImjX-!#@*MI{mkKpYe!GCbt@lC$k~6<@#F=pOofW*8nf66hFsAm}G6e z`ZEWv7}W#=ZrG08yrD<(86d9N?1JGvv4_!^Obk!5%rOq8tQJ{1$IBw~b0{|dJqB#9 z0TXAwRP5WEouIngbtG@_R3po$@9P0YlqehfX}qa$P>BHPnJ3%b$DIvuRe$rzhMs!Q zLBgDajX4IZKg*vkdt#ovka8p+0=qXBx|AatbvutJ+}zE!WEPX_OQ{`tIqqqi$X4xV z;>ZMy%EzQ8If&5KMKOL4PVoNq2vyEjzCR_28zP@2-m}VBSsb_j+YpsJd$41uu0iBKuE!P8Qw> zr3%}Ei7=;HbEfjMA3#<^WrhEl1Tr%Gi!6|lnVs$5%>sX^|K)6d3n@O-Pbq+{MfZi{ zeq%Lj+AQE{fvgYN!N`>fGS7 zyTgm7pop$YOeBsG$9t+tCnPJG$f!&l5WXcok6q=(^=cfrJ)Be!r`4oi)AB&UDR!KPNfR`YIS=WL}z07SKd)(1t@^c zYfVM@n`{?ex1PGHSKSK~j?|~0iwQ=RfVV0g>{i_D85}IYcC}%JCB0f(0%{;JJ`%86 zuGW&}Q3N;}*OhPb9_2gOTX0tx12Oy_;f=LkM4(0#8rbXxF3ff)R@B_u!9!_-~AR3B#F?6x8)|ac&U3gUHB3 zY5~7s?NfUd)|vAKGt_ce67V`RM(&4X%YEAK2eQS`WBwQ*9!7GLihSNVCiy@%5}qAf z3cz*_g27Va!vOHMf%TIo0SXiX-pSe4kl!tcuWG^~qn2#)m2+807mn7AbPA(8=@|&` z^2p0S{;j4s7wConDiM+gM=POZfU{B%5j||U@D)F;=E)iHU32fM$RhkG1S^kKP$-n+ z&-=AvU7q&~KZVtv@y|ttO{Vq_p??sZNjoM9L7EV(doyekV(f<;vLj^aivqbkTjQXE z;_D4o-GwFZX&EC?1n9Yi`9L9qnR-99_c?B|UUUg;(G)>{Hwj6-l0-oNgsJ^??1|PJ zwIU!`brLs%9bOgS+rmwGB{#xdE^2}0ieV*~?vi+pAMUDwH!c}V5Z#C@f1)#g;);{g zLP23tR#{lgc%b)Uj@vv!B)2zh_JD@ZsD!1w_vD>JVJGO|dYl7MJgoXBUA{2=FhQWX zT~IQ8?bMOCMq%37^(n41Nx{vq)HgAO6K1lL)vrHZsKUv#?}Kx34Z$dqfX-Eu7a@$P zcP4))z&A}yhc1}1|HSWEyi+k<^R>{tRs8vc^G~{#G-0>=JyWTUS0-~Wb1bXGqN+B8 z5+}>g(s^rT%s&tPuvQTyOpJqeEOW5~Z0!(L50u-Lk3+za4#l(~2{s2UxVeG0$&hr` zqv-e2O}kgHA9McfWvdrJt(nol74{?UBMpExE_iNer|?h}1?^!QlsknG%4O6VHR^3q z>v5Zl;(?>5%#(`3lnarL!py+sejaeMiH8L@HW>u+N}IZAN2}ffi%DVu0e)^HmoO+D zp){}}Ff1ZWT|ca6S=8m1%?BkD=q!pSqYvmAS{d$`mc#V>cPPj)1wD}aTD3H~!M#9DQcc{^cm zePVAk|1TBf zWMcU@sG$0U91bHw&j+a%kPnmfN$Q~l;{9FPCya@m8Tyyw!K1o0a^(B`Ytt?v*|=nG(Hzbg@JvJIQp(Y9)|1_!UUM=dnbH)qhadS_aylm4{%w|rwy;Y9e_uptXKxCuV@ z1s*iG*lFSMyS+a^&C(SZxE8%~)VMh!Hshiz*14UZnlOx2c|W<9%&JgvizjnJGLsAM zeNz0fK(F0{PMO=Ul#yUyz7L=Tb$8NQwk!cLkCBE6c4B|ngp{Cjw~6<@_vq+QZAbBCE{3j)&`Dv3kQ31)imnTELtzY`h`O2yMs5=UmG#%gzBR1l zJXam;9X$bo)>=&=rt5?EFam18O9P_=ccIOJs3xa~Qsg&FD2NgH&_73ch=5d`T}UDJ zm92ssJ`zDm@zR8-v7~}BQl5oe6^U`8*J&Z8OHdv250{uB>?8RpSw8V3gCi7C#`BZx z7?Gv9uj!l-2%iO7gmD@}YMQ`wr2@Jj z?_(TNb^vIUr%lV60GHT@t(3iY0Y@f8PF!45u9wb2}?|W-ae(ei$ZPvcNEx~90o?Iy_m^N3tTY>hO z2s#!8$@evb^i}p)pPz8ty=t@L>S){oEy5>KC$_vi90Ne53Bo|b20+GoxEqL^;_3t` z5o3|5%J`{4TfDm>=#*LGIQC@%zR8m#qlAlN*ozpEj9jnqqvx}4|3cCj+5QU3e=Fu? zVq^NZNo0?vblhJO**jN9kO&Qq(eg2K48%twxY}SyGVTRHuJO^I;Kd?C;v}TR%{`mv zuB!e(+T!K|;e?n~9hL%~F-VHq=hjn7PoyCh_~YC-0j zuyfNG_trLZ1xEI;ccymeDo;PB%DyXce0A{JRtEXA;l9=R;(lA{^6f<(-Oan;Pye)s z0MF5U7f?`jUTXKuqR-mJarF^c>a#X5V~bvAhpnZs^X>Da+lmOvTpChlrln2vwp$e& ztFm~!rThXJdHcxK{7Q4Lt9zBz8rKBxx?<0_gO#MNtIMh_AD!Fvytf<2J2chnMLz{| zt+)y1cxO|@()1eCCPik){&!y5pZ||OMyGz{_KVB7*0DoGNDiCSM_!wpnB$$K4v+n& z_SrqUS4G^MK$5+KRel96Lnx1@mna@9{X>tvk2>sujRK;~+&!c>`CCLczPj2_6v+A` zg59m)xex7)@(sQ`_@UYfYxd&2!wJ6Jhi`JQmKErCHQYyQRXBO_)hG(v&u-faA)e67 zL1`3Os`rXi5$J|eU*QyjF7(nqQzjZrtM1kd3&}71b6wWufqDbD%bKhG)b{Gav4e_@ z*^8hfXHPfjn{bYD|GR#y^s(|~I?^ux76J`Y9S2$;u#b=vd7V=Nc*R3k;nJelMHi@{ zNuj|&>Y^WHh_NQ)$yKQ-55-vQcMnArwnT)y9DKR_(b`B7)klI1d+=nq-XefoOpsON zlDLCB3!4Q&(gU&Tj$G5QS#*=IYcv%UpH!6)VTA;}N(ws&yo{3WA3h1}6oXL);3A7p zup<R>$tnL^Y=pXBDc(I}hkZGw6GZsqTtmKY-^dB*>Ii{dxS6`hLU8H;}~ z^lPRy%P^W#Mj;W0LlByHUg{odL7TN}HSv;yof$kSN29r~FI+$lF~QA-0uVyfa`6H@ z@zw|s51Y^1r=MCyaIOTd&WeOtf5tnJXmTC*ixgRWCnV;Y4$Ab7p0?xXQj*yvNd4No zK()Pr`=Je{26;whkCDF|TMywoN_{TgK80ZTwOE9Bo0hN9uffHro#M0Vp-Fm+-J||P#ta!4fRMfmbxMUV4S&7`qM9Eq*Sy-*_HW#n8ixQ z<{ach66eK6-yH#!@7<*DQz^1&NiJtQNcHAN5mJMggm}?oYjr^Zhgq8r1KG(# z+v;R59gy1^uJ-}=(^sw2&$=swp%xlJ&=a6YkAMg3?h7D~45O(6F22i36Br~LG(~_U zhhyiJ7Ys91&C!@C%I$jr3JjfmR-}2q1O!8Avl3adkzx%N>KHC{p=Q_;)PNpl&Cfl? zd7^=La}}bZ6Ou<|D>9e2RIh$Cx|HC+;^ip`OY*XjyH;MlJTQMZ-k{}Bfo$VRxy&+? zBqs!yvI(qU+}H&InE7mWMH-}G#nToIiZD!c=XT0c9J_7M=|N7IJ%}%Y0-5>{X)7zuFeuV0i}#)FN;PUh z()Xe$N0QeT9EL$8-axZo{*C0d4Q)KXvi%z5N@Fm)VcZ~r4Y)E_Z>6Lv?r zGKacIwi7|k#f1xm0#=OU=qd5r{+jjAGoJM52vCjYm+54BLxl zK>)=f!{>c=Y~agwTnunr{NmW{YSpEm=#AkN<1u~QML>+FKJ9;%btv?zYLs=4iqi6y z*|n$lGyQhnfp6IVTVAwtOfr{*tumfLL0ZjP0fmzqb^CodqktZOBi-~356+pnO zmHsS~4qR-E%dtz^8?G`%-fu9XBLe)2{bXCDOK1V$`-w3=w9!!>C|o(aM56@OB@axw z7OQ5KmO?FuY!q0JGdn+3E;QO@7RkO*x8w$wzin@2z{yd&k4XyL#R4VJ1% zDgEQqkxG@ni+rR>yP{K95)-t`WEf)2iejSZt|!de*Ao`yF+ZStq!~``u=E&Q7vx6k z8eNUq0$?UM6Ve%dBVCg&${!fj0t+(!Nly!vjm5Iu1UXQ_fC#nO;1>!^X5E-}yR=D9 z;mt-qae}3JFA5NtHcuUFZZR#UWnl)iZ;g(E<})vcbqDJZ3!7!4SqQ*4ZQ*ksc2{gH zAqU&=OAX3eJ)yW4f78xp0G%GX}v~S5e8$6Rys$w!tip# zhQf=yUmA=c(D3fD&jEjyOB$v~XZ=pvyFeMg`_uaHkUA4V&pS;%dd(Lf5_+QWIv&4c zcB``S27~3_sYarQ;$HeqbA5bk0hB3wel~yo8~H;RMc*C1qJeOGyT&-fA}Iej{VA~p zJrCCq3Wd6MrPwQC2noSXv%Mg&zWwguiKQV%5Cn`qq~!jMX9uA)ygoKv9||p|ciU5x z4tC7}R`lv^#UCd*{d$V$j{3VT@G^YrP#O0XXkoC};4-ft5#m8Mj=~!t28dBl zu6_H@Wz@Ft8=jHMCwTjHs1iPk-j#!<4Y%I&FStTRlhw~}%AK&&dRRjO8!(OPd#aUA z#(>GELx}{BnW45xlSy}l=4o4!cNfW%@Os_@*A)CQ_%LvANT@iNn?N`3;14m zPEII3Pbfxi?aU+qEdj>(e$Ke+traAQf<7Q~rdqClk&!a}*FpAwE-zzaXZm-k=!(XU z{omzf{&V^T;+VfQ{rpW%r|L~D6j7)%!(nCdQM4mNCsN5LWE=bZ+(}HO;gU-6F&IE1 zCJydA@cHp>M4GZ<%=&WXi}b;MEJvA2aSescm7E7Lr_e5v`s5=@!yM-rvEEAz^+~#Y zdeAoLXC}N~xzTv>P3FW0{d+k)J!fS`F&w4tF88^N<$$s0iW!EL5_D;r;@&)6o2;ic zbR2S`n>KWyQu=DxOc#h|4sAV`Qgzi?v-*{XCQCQBLpF@o{Bi-+IX_(PjsveYwy6ex z%^V9M$*FQQ*qb@81O0%ec&gX5vF6H)>e-|QYPbg0Z=t9U8R4_*D3N^#Sh?Be(?<86 zPD=DVL9MU?8n@5r+wXs?Vy3en?Zh1U^7QIF8f;O{+W5t3XXz#@udrr=v48f`?s@(LGY% zU}1y?*53ay50Xu0v8pacXAy;g*w1wMyCiQ< zx7?%G7CT~!OUACs4^@m1PwJ2r0K!LS_-q(wJFu3zli^HV6kkj=PiwSiwFuPAySbl( zV?;Uv<#B?gsMfM`VrPumZZMich<6 z`2xGE=74qp3y9mt!ET92)Uxw-sGO>15zNViMPy?6h{NsaqjZ!flpxZDwAqYiDlD$8 zBpmsHXLO`e$iBM*6!|r5{way0lzX$d>EK5MA9&RYB2=smL8Y^-A{y*$d!pwe7+5pC z?;>a&xqNqtN(o9cNU)Ba?IB@R(4LpJkT*f0EI7C$qFT1WM33rKGkw~&Z!j(RR)u@G z#%TTfA-NWbP#ZqO&qO8laT^dyC_E$08*wfeq;LiRVx8=J7XSsZJXPemJEgqTcc1uI zny#0c?9Z2Mt^kLgvJ^U&0Vs%JpsRJAB^m+x{H4eXztvyX-kwiMYpSpgck!Tsc9di1Co=E3Ppqgb;mBxV`7x`ws zQIgCgtJRNjJ(x!LHfbFUb*n)Ek><0#Ev}@;trr5C6CUOLG9#-#BXIyBUyVR9XiKM8rWjxwo?oxCL7#ot8**bOFv^= zvD3UF+ky#YicoxC_ zLU1XQJK9WKEy^i)+Z!F_)SokM^glra$_rnpV&S&E&dGH&^UOKoH%YGdVqD{?AJ_RqN!d{u8C?;SB)T_j-wz_` zHPN>0^{Igm09^8RdvI?82Qd5*BreBLboIZ)y#RRVXHQBg5+D zy6ff8y0aPh=sezt5e(dZK$;x5KmZ08#PwBuABO>qt`iBKcRDBeLrRiCWyV-A%b#G#K*?db}SB^cPI#Cue~eqPkZ7oXvyDCbN59782VRExjspP4ieH- zFV`Izb`g-<41smy?jUt`DmPXX6|{lAiF+j6#`6=JpDlw2P|WeMd{lA->S~@b4-&}d zCw$9SMgOR|SHweohLDjF^1eM8Ju<2ZxrXACWfROgeonvNA+P+9>?&4dyx4wJ9Sr1wYo z1B#|QPW_9(#>n(vP|N>9E$M&IW0}7M*-qHi$<6fNhR96+n0NeNhRA=3(Leh9?+}^k zA9(4%m6oz|GXMV}a!;zX{T2hv*v&f%mm6^AnW<*49fcPrSTS3xb1Ii+6o+Px+twJq zBrgrQB_go)0?W5H{5M5p@%{LSj8mZhUdQEncvoT_{AI#k7o(g*&96P*slGd0>Q{TR zH{j1dOhqtjgSWHPkVUQ27~aL8lBlY%VdBo=f=>qJ*qD`bP3MO9)CcmHd5p|v)nMqeI3UcX6G3dK z4D=?Ggk~=TRDc&tbMBdlYGkWmyr_`KNb@BHO0uB^=z-_^JPhWM1En@J!N ziIMbx6t5{K?3x30f`AC<6r};4>hmz1Mhe(6<>L^INeF}}kYXCA=n2((@g`UlkGreF z6(pI8=Sq2=OJ;4->l5y(cqU>?BvsY}iZk6AfdeVe9fflQla&NSj~h*^NJaFMWTZC$ zXH=XRm4<;*Sq5IpJHh-SHwSfCW%{jDZNUMlXO){}Tj%vVsdn^cu3 zFIXr)>m9|%XkAH8+A7_p=4@fRsfvDX=cV=J1J(Z=9lLS=sCZQN&y6=zTCLov;wgfg^Ci=uLDrBx$=#k;u&Pxk;W0=xR2&ov$E4bg zIKNhyV9uJBLUITen*~y>gJ0vV!1w zc(5G<#o~aWz)7#DJxES46EW^9Jqm11g_T4%VKb?FiEnTzG_tjfQW2Ho}%$fa=NX7jUHAFN0 z((!S?{2Ulgz)vnd$5o<5HWVrM)xQkIqDqU4x>D;bhTYOix!xC_?F`CJEgw5o*{tYU zD7TK`dG$b`5~PYF^{5UtcF*l!!B?sl%k9tF)^E0?gYmtHc-rv5Q)vN{|76>{*YYo3 zcJJ(sv>#y2K8Vz18fvfHNv4_oQKtZ5BCBB_({FqVjoYxyk_S4Y$;Frj8WNy9HRniv zj^~Q^t2xgUE2AyHpRUqf(D!j5Ob5*{M8|inh8yeWjhQ+>G|*ofSjdx1u!aFgKBM{N zC-MySXNjgH&o!-HtlR?z=*4K*a)z`SakF%&Q4oh={!OQEv3~y|2CInbtMRo

    o~tv- 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�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 literal 0 HcmV?d00001 diff --git a/machine-learning-ex5/ex5/ex5.m b/machine-learning-ex5/ex5/ex5.m new file mode 100644 index 0000000..9af16eb --- /dev/null +++ b/machine-learning-ex5/ex5/ex5.m @@ -0,0 +1,220 @@ +%% Machine Learning Online Class +% Exercise 5 | Regularized Linear Regression and Bias-Variance +% +% Instructions +% ------------ +% +% This file contains code that helps you get started on the +% exercise. You will need to complete the following functions: +% +% linearRegCostFunction.m +% learningCurve.m +% validationCurve.m +% +% For this exercise, you will not need to change any code in this file, +% or any other files other than those mentioned above. +% + +%% Initialization +clear ; close all; clc + +%% =========== Part 1: Loading and Visualizing Data ============= +% We start the exercise by first loading and visualizing the dataset. +% The following code will load the dataset into your environment and plot +% the data. +% + +% Load Training Data +fprintf('Loading and Visualizing Data ...\n') + +% Load from ex5data1: +% You will have X, y, Xval, yval, Xtest, ytest in your environment +load ('ex5data1.mat'); + +% m = Number of examples +m = size(X, 1); + +% Plot training data +plot(X, y, 'rx', 'MarkerSize', 10, 'LineWidth', 1.5); +xlabel('Change in water level (x)'); +ylabel('Water flowing out of the dam (y)'); + +fprintf('Program paused. Press enter to continue.\n'); +% pause; + +%% =========== Part 2: Regularized Linear Regression Cost ============= +% You should now implement the cost function for regularized linear +% regression. +% + +theta = [1 ; 1]; +J = linearRegCostFunction([ones(m, 1) X], y, theta, 1); + +fprintf(['Cost at theta = [1 ; 1]: %f '... + '\n(this value should be about 303.993192)\n'], J); + +fprintf('Program paused. Press enter to continue.\n'); +pause; + +%% =========== Part 3: Regularized Linear Regression Gradient ============= +% You should now implement the gradient for regularized linear +% regression. +% + +theta = [1 ; 1]; +[J, grad] = linearRegCostFunction([ones(m, 1) X], y, theta, 1); + +fprintf(['Gradient at theta = [1 ; 1]: [%f; %f] '... + '\n(this value should be about [-15.303016; 598.250744])\n'], ... + grad(1), grad(2)); + +fprintf('Program paused. Press enter to continue.\n'); +pause; + + +%% =========== Part 4: Train Linear Regression ============= +% Once you have implemented the cost and gradient correctly, the +% trainLinearReg function will use your cost function to train +% regularized linear regression. +% +% Write Up Note: The data is non-linear, so this will not give a great +% fit. +% + +% Train linear regression with lambda = 0 +lambda = 0; +[theta] = trainLinearReg([ones(m, 1) X], y, lambda); + +% Plot fit over the data +plot(X, y, 'rx', 'MarkerSize', 10, 'LineWidth', 1.5); +xlabel('Change in water level (x)'); +ylabel('Water flowing out of the dam (y)'); +hold on; +plot(X, [ones(m, 1) X]*theta, '--', 'LineWidth', 2) +hold off; + +fprintf('Program paused. Press enter to continue.\n'); +pause; + + +%% =========== Part 5: Learning Curve for Linear Regression ============= +% Next, you should implement the learningCurve function. +% +% Write Up Note: Since the model is underfitting the data, we expect to +% see a graph with "high bias" -- slide 8 in ML-advice.pdf +% + +lambda = 0; +[error_train, error_val] = ... + learningCurve([ones(m, 1) X], y, ... + [ones(size(Xval, 1), 1) Xval], yval, ... + lambda); + +plot(1:m, error_train, 1:m, error_val); +title('Learning curve for linear regression') +legend('Train', 'Cross Validation') +xlabel('Number of training examples') +ylabel('Error') +axis([0 13 0 150]) + +fprintf('# Training Examples\tTrain Error\tCross Validation Error\n'); +for i = 1:m + fprintf(' \t%d\t\t%f\t%f\n', i, error_train(i), error_val(i)); +end + +fprintf('Program paused. Press enter to continue.\n'); +pause; + +%% =========== Part 6: Feature Mapping for Polynomial Regression ============= +% One solution to this is to use polynomial regression. You should now +% complete polyFeatures to map each example into its powers +% + +p = 8; + +% Map X onto Polynomial Features and Normalize +X_poly = polyFeatures(X, p); +[X_poly, mu, sigma] = featureNormalize(X_poly); % Normalize +X_poly = [ones(m, 1), X_poly]; % Add Ones + +% Map X_poly_test and normalize (using mu and sigma) +X_poly_test = polyFeatures(Xtest, p); +X_poly_test = bsxfun(@minus, X_poly_test, mu); +X_poly_test = bsxfun(@rdivide, X_poly_test, sigma); +X_poly_test = [ones(size(X_poly_test, 1), 1), X_poly_test]; % Add Ones + +% Map X_poly_val and normalize (using mu and sigma) +X_poly_val = polyFeatures(Xval, p); +X_poly_val = bsxfun(@minus, X_poly_val, mu); +X_poly_val = bsxfun(@rdivide, X_poly_val, sigma); +X_poly_val = [ones(size(X_poly_val, 1), 1), X_poly_val]; % Add Ones + +fprintf('Normalized Training Example 1:\n'); +fprintf(' %f \n', X_poly(1, :)); + +fprintf('\nProgram paused. Press enter to continue.\n'); +pause; + + + +%% =========== Part 7: Learning Curve for Polynomial Regression ============= +% Now, you will get to experiment with polynomial regression with multiple +% values of lambda. The code below runs polynomial regression with +% lambda = 0. You should try running the code with different values of +% lambda to see how the fit and learning curve change. +% + +lambda = 0; +[theta] = trainLinearReg(X_poly, y, lambda); + +% Plot training data and fit +figure(1); +plot(X, y, 'rx', 'MarkerSize', 10, 'LineWidth', 1.5); +plotFit(min(X), max(X), mu, sigma, theta, p); +xlabel('Change in water level (x)'); +ylabel('Water flowing out of the dam (y)'); +title (sprintf('Polynomial Regression Fit (lambda = %f)', lambda)); + +figure(2); +[error_train, error_val] = ... + learningCurve(X_poly, y, X_poly_val, yval, lambda); +plot(1:m, error_train, 1:m, error_val); + +title(sprintf('Polynomial Regression Learning Curve (lambda = %f)', lambda)); +xlabel('Number of training examples') +ylabel('Error') +axis([0 13 0 100]) +legend('Train', 'Cross Validation') + +fprintf('Polynomial Regression (lambda = %f)\n\n', lambda); +fprintf('# Training Examples\tTrain Error\tCross Validation Error\n'); +for i = 1:m + fprintf(' \t%d\t\t%f\t%f\n', i, error_train(i), error_val(i)); +end + +fprintf('Program paused. Press enter to continue.\n'); +pause; + +%% =========== Part 8: Validation for Selecting Lambda ============= +% You will now implement validationCurve to test various values of +% lambda on a validation set. You will then use this to select the +% "best" lambda value. +% + +[lambda_vec, error_train, error_val] = ... + validationCurve(X_poly, y, X_poly_val, yval); + +close all; +plot(lambda_vec, error_train, lambda_vec, error_val); +legend('Train', 'Cross Validation'); +xlabel('lambda'); +ylabel('Error'); + +fprintf('lambda\t\tTrain Error\tValidation Error\n'); +for i = 1:length(lambda_vec) + fprintf(' %f\t%f\t%f\n', ... + lambda_vec(i), error_train(i), error_val(i)); +end + +fprintf('Program paused. Press enter to continue.\n'); +pause; diff --git a/machine-learning-ex5/ex5/ex5data1.mat b/machine-learning-ex5/ex5/ex5data1.mat new file mode 100644 index 0000000000000000000000000000000000000000..5a17abdbb0c1ff969b288e6fae7b795a309f40b1 GIT binary patch literal 1321 zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQgHY2i*PhE(NSnFH=x3Q7|&HGBUR^GE*=zFf>#k5il@%`tma{FmwZP#hk~<2?;Y8j^sF; zVO;9iAbRRKW0IReT1p4Qr8y3B7>*Qw^OBoa9{=A#D)~>4Z|QC3G(WDcb3%T66VopL z|9k)WlZ5H1`!>(L``F>)_Zi7K{UZE19CMG@)vlX&_^!Up`pb)C_+u{mSAW0!Y4%^M zW!UHF`|f(7EFKXrdjHXZ8WtC}V3 zzuw~4$$xC?S6wfUb#LFGeR7lEO+UVE`Dkaa?u^Q ziz<);Nt`vwO@pn|b;=U4=?s~E3UQ1_Y_{vUx`3Xh+>^3dh&qYvp)dh9VK=DKBKS8X@EnYZ?-Q8_#N>FcNeKbwE0 zXvXG8vDafY&D+gc`6nCM*uDM#(BS#&LwskM_shE${7EV<;do*gZ&=;8x!LjH5%sy3 z|KIk1I9qO=?fq*Dmmhu=b}s8P^URtz;X7|k;S1^1i<TyIqFgWlqKZ z3zI@`GBPCAhMR)?cmtmwL#HA9*uU+M*N@u=pFUXl^V`<1C4ubCxu=fb&#_5(f7Wj0 znMW&HoR>vx{841++%7+l?Yx>_ZRY*g+EL4lC!bYRc(qOId5tu?|1(WJ{vEusPEYrQ z_L^5&PdPJx!!6T*1BxFOemQeUkCpxOje^_Sj^Ft9znymah)-b|hsFC3m3#Y|oFhW? z-52+?HYYU~y!z99hHrVzTP32_hIvE zw4@&wImACb@V&QZ9=p?3-*+i#QgQ*_v%i(x6O(Ii;WB^PS0LHWdd6pUXviJeU1fPc zg0fe>W?;C;6|xBA!Rz=uxIzc!!BgFvYR;E3@im=ayi0BehlP*P=iayhvW()`|62d&ENEU?cyXs~UK$?{&;B*jj5fTVZu8sg zXL@tz;ZE=VeEWT;pDR=(uPgCfv#~k+PWH|DvWNKIi~Y6OeLmpq!o;2Ky?@`2F@~|PPWQ1^zZ+D#A@ugN%UeAUHa=b2zcZq1I&-zd=AYMdqxcv~ InY~{C067#^{r~^~ literal 0 HcmV?d00001 diff --git a/machine-learning-ex5/ex5/featureNormalize.m b/machine-learning-ex5/ex5/featureNormalize.m new file mode 100644 index 0000000..da03bee --- /dev/null +++ b/machine-learning-ex5/ex5/featureNormalize.m @@ -0,0 +1,17 @@ +function [X_norm, mu, sigma] = featureNormalize(X) +%FEATURENORMALIZE Normalizes the features in X +% FEATURENORMALIZE(X) returns a normalized version of X where +% the mean value of each feature is 0 and the standard deviation +% is 1. This is often a good preprocessing step to do when +% working with learning algorithms. + +mu = mean(X); +X_norm = bsxfun(@minus, X, mu); + +sigma = std(X_norm); +X_norm = bsxfun(@rdivide, X_norm, sigma); + + +% ============================================================ + +end diff --git a/machine-learning-ex5/ex5/fmincg.m b/machine-learning-ex5/ex5/fmincg.m new file mode 100644 index 0000000..47a8816 --- /dev/null +++ b/machine-learning-ex5/ex5/fmincg.m @@ -0,0 +1,175 @@ +function [X, fX, i] = fmincg(f, X, options, P1, P2, P3, P4, P5) +% Minimize a continuous differentialble multivariate function. Starting point +% is given by "X" (D by 1), and the function named in the string "f", must +% return a function value and a vector of partial derivatives. The Polack- +% Ribiere flavour of conjugate gradients is used to compute search directions, +% and a line search using quadratic and cubic polynomial approximations and the +% Wolfe-Powell stopping criteria is used together with the slope ratio method +% for guessing initial step sizes. Additionally a bunch of checks are made to +% make sure that exploration is taking place and that extrapolation will not +% be unboundedly large. The "length" gives the length of the run: if it is +% positive, it gives the maximum number of line searches, if negative its +% absolute gives the maximum allowed number of function evaluations. You can +% (optionally) give "length" a second component, which will indicate the +% reduction in function value to be expected in the first line-search (defaults +% to 1.0). The function returns when either its length is up, or if no further +% progress can be made (ie, we are at a minimum, or so close that due to +% numerical problems, we cannot get any closer). If the function terminates +% within a few iterations, it could be an indication that the function value +% and derivatives are not consistent (ie, there may be a bug in the +% implementation of your "f" function). The function returns the found +% solution "X", a vector of function values "fX" indicating the progress made +% and "i" the number of iterations (line searches or function evaluations, +% depending on the sign of "length") used. +% +% Usage: [X, fX, i] = fmincg(f, X, options, P1, P2, P3, P4, P5) +% +% See also: checkgrad +% +% Copyright (C) 2001 and 2002 by Carl Edward Rasmussen. Date 2002-02-13 +% +% +% (C) Copyright 1999, 2000 & 2001, Carl Edward Rasmussen +% +% Permission is granted for anyone to copy, use, or modify these +% programs and accompanying documents for purposes of research or +% education, provided this copyright notice is retained, and note is +% made of any changes that have been made. +% +% These programs and documents are distributed without any warranty, +% express or implied. As the programs were written for research +% purposes only, they have not been tested to the degree that would be +% advisable in any important application. All use of these programs is +% entirely at the user's own risk. +% +% [ml-class] Changes Made: +% 1) Function name and argument specifications +% 2) Output display +% + +% Read options +if exist('options', 'var') && ~isempty(options) && isfield(options, 'MaxIter') + length = options.MaxIter; +else + length = 100; +end + + +RHO = 0.01; % a bunch of constants for line searches +SIG = 0.5; % RHO and SIG are the constants in the Wolfe-Powell conditions +INT = 0.1; % don't reevaluate within 0.1 of the limit of the current bracket +EXT = 3.0; % extrapolate maximum 3 times the current bracket +MAX = 20; % max 20 function evaluations per line search +RATIO = 100; % maximum allowed slope ratio + +argstr = ['feval(f, X']; % compose string used to call function +for i = 1:(nargin - 3) + argstr = [argstr, ',P', int2str(i)]; +end +argstr = [argstr, ')']; + +if max(size(length)) == 2, red=length(2); length=length(1); else red=1; end +S=['Iteration ']; + +i = 0; % zero the run length counter +ls_failed = 0; % no previous line search has failed +fX = []; +[f1 df1] = eval(argstr); % get function value and gradient +i = i + (length<0); % count epochs?! +s = -df1; % search direction is steepest +d1 = -s'*s; % this is the slope +z1 = red/(1-d1); % initial step is red/(|s|+1) + +while i < abs(length) % while not finished + i = i + (length>0); % count iterations?! + + X0 = X; f0 = f1; df0 = df1; % make a copy of current values + X = X + z1*s; % begin line search + [f2 df2] = eval(argstr); + i = i + (length<0); % count epochs?! + d2 = df2'*s; + f3 = f1; d3 = d1; z3 = -z1; % initialize point 3 equal to point 1 + if length>0, M = MAX; else M = min(MAX, -length-i); end + success = 0; limit = -1; % initialize quanteties + while 1 + while ((f2 > f1+z1*RHO*d1) || (d2 > -SIG*d1)) && (M > 0) + limit = z1; % tighten the bracket + if f2 > f1 + z2 = z3 - (0.5*d3*z3*z3)/(d3*z3+f2-f3); % quadratic fit + else + A = 6*(f2-f3)/z3+3*(d2+d3); % cubic fit + B = 3*(f3-f2)-z3*(d3+2*d2); + z2 = (sqrt(B*B-A*d2*z3*z3)-B)/A; % numerical error possible - ok! + end + if isnan(z2) || isinf(z2) + z2 = z3/2; % if we had a numerical problem then bisect + end + z2 = max(min(z2, INT*z3),(1-INT)*z3); % don't accept too close to limits + z1 = z1 + z2; % update the step + X = X + z2*s; + [f2 df2] = eval(argstr); + M = M - 1; i = i + (length<0); % count epochs?! + d2 = df2'*s; + z3 = z3-z2; % z3 is now relative to the location of z2 + end + if f2 > f1+z1*RHO*d1 || d2 > -SIG*d1 + break; % this is a failure + elseif d2 > SIG*d1 + success = 1; break; % success + elseif M == 0 + break; % failure + end + A = 6*(f2-f3)/z3+3*(d2+d3); % make cubic extrapolation + B = 3*(f3-f2)-z3*(d3+2*d2); + z2 = -d2*z3*z3/(B+sqrt(B*B-A*d2*z3*z3)); % num. error possible - ok! + if ~isreal(z2) || isnan(z2) || isinf(z2) || z2 < 0 % num prob or wrong sign? + if limit < -0.5 % if we have no upper limit + z2 = z1 * (EXT-1); % the extrapolate the maximum amount + else + z2 = (limit-z1)/2; % otherwise bisect + end + elseif (limit > -0.5) && (z2+z1 > limit) % extraplation beyond max? + z2 = (limit-z1)/2; % bisect + elseif (limit < -0.5) && (z2+z1 > z1*EXT) % extrapolation beyond limit + z2 = z1*(EXT-1.0); % set to extrapolation limit + elseif z2 < -z3*INT + z2 = -z3*INT; + elseif (limit > -0.5) && (z2 < (limit-z1)*(1.0-INT)) % too close to limit? + z2 = (limit-z1)*(1.0-INT); + end + f3 = f2; d3 = d2; z3 = -z2; % set point 3 equal to point 2 + z1 = z1 + z2; X = X + z2*s; % update current estimates + [f2 df2] = eval(argstr); + M = M - 1; i = i + (length<0); % count epochs?! + d2 = df2'*s; + end % end of line search + + if success % if line search succeeded + f1 = f2; fX = [fX' f1]'; + fprintf('%s %4i | Cost: %4.6e\r', S, i, f1); + s = (df2'*df2-df1'*df2)/(df1'*df1)*s - df2; % Polack-Ribiere direction + tmp = df1; df1 = df2; df2 = tmp; % swap derivatives + d2 = df1'*s; + if d2 > 0 % new slope must be negative + s = -df1; % otherwise use steepest direction + d2 = -s'*s; + end + z1 = z1 * min(RATIO, d1/(d2-realmin)); % slope ratio but max RATIO + d1 = d2; + ls_failed = 0; % this line search did not fail + else + X = X0; f1 = f0; df1 = df0; % restore point from before failed line search + if ls_failed || i > abs(length) % line search failed twice in a row + break; % or we ran out of time, so we give up + end + tmp = df1; df1 = df2; df2 = tmp; % swap derivatives + s = -df1; % try steepest + d1 = -s'*s; + z1 = 1/(1-d1); + ls_failed = 1; % this line search failed + end + if exist('OCTAVE_VERSION') + fflush(stdout); + end +end +fprintf('\n'); diff --git a/machine-learning-ex5/ex5/learningCurve.m b/machine-learning-ex5/ex5/learningCurve.m new file mode 100644 index 0000000..6ea4333 --- /dev/null +++ b/machine-learning-ex5/ex5/learningCurve.m @@ -0,0 +1,66 @@ +function [error_train, error_val] = ... + learningCurve(X, y, Xval, yval, lambda) +%LEARNINGCURVE Generates the train and cross validation set errors needed +%to plot a learning curve +% [error_train, error_val] = ... +% LEARNINGCURVE(X, y, Xval, yval, lambda) returns the train and +% cross validation set errors for a learning curve. In particular, +% it returns two vectors of the same length - error_train and +% error_val. Then, error_train(i) contains the training error for +% i examples (and similarly for error_val(i)). +% +% In this function, you will compute the train and test errors for +% dataset sizes from 1 up to m. In practice, when working with larger +% datasets, you might want to do this in larger intervals. +% + +% Number of training examples +m = size(X, 1); + +% You need to return these values correctly +error_train = zeros(m, 1); +error_val = zeros(m, 1); + +% ====================== YOUR CODE HERE ====================== +% Instructions: Fill in this function to return training errors in +% error_train and the cross validation errors in error_val. +% i.e., error_train(i) and +% error_val(i) should give you the errors +% obtained after training on i examples. +% +% Note: You should evaluate the training error on the first i training +% examples (i.e., X(1:i, :) and y(1:i)). +% +% For the cross-validation error, you should instead evaluate on +% the _entire_ cross validation set (Xval and yval). +% +% Note: If you are using your cost function (linearRegCostFunction) +% to compute the training and cross validation error, you should +% call the function with the lambda argument set to 0. +% Do note that you will still need to use lambda when running +% the training to obtain the theta parameters. +% +% Hint: You can loop over the examples with the following: +% +% for i = 1:m +% % Compute train/cross validation errors using training examples +% % X(1:i, :) and y(1:i), storing the result in +% % error_train(i) and error_val(i) +% .... +% +% end +% + +% ---------------------- Sample Solution ---------------------- + + + + + + + +% ------------------------------------------------------------- + +% ========================================================================= + +end diff --git a/machine-learning-ex5/ex5/lib/jsonlab/AUTHORS.txt b/machine-learning-ex5/ex5/lib/jsonlab/AUTHORS.txt new file mode 100644 index 0000000..9dd3fc7 --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/AUTHORS.txt @@ -0,0 +1,41 @@ +The author of "jsonlab" toolbox is Qianqian Fang. Qianqian +is currently an Assistant Professor at Massachusetts General Hospital, +Harvard Medical School. + +Address: Martinos Center for Biomedical Imaging, + Massachusetts General Hospital, + Harvard Medical School + Bldg 149, 13th St, Charlestown, MA 02129, USA +URL: http://nmr.mgh.harvard.edu/~fangq/ +Email: or + + +The script loadjson.m was built upon previous works by + +- Nedialko Krouchev: http://www.mathworks.com/matlabcentral/fileexchange/25713 + date: 2009/11/02 +- François Glineur: http://www.mathworks.com/matlabcentral/fileexchange/23393 + date: 2009/03/22 +- Joel Feenstra: http://www.mathworks.com/matlabcentral/fileexchange/20565 + date: 2008/07/03 + + +This toolbox contains patches submitted by the following contributors: + +- Blake Johnson + part of revision 341 + +- Niclas Borlin + various fixes in revision 394, including + - loadjson crashes for all-zero sparse matrix. + - loadjson crashes for empty sparse matrix. + - Non-zero size of 0-by-N and N-by-0 empty matrices is lost after savejson/loadjson. + - loadjson crashes for sparse real column vector. + - loadjson crashes for sparse complex column vector. + - Data is corrupted by savejson for sparse real row vector. + - savejson crashes for sparse complex row vector. + +- Yul Kang + patches for svn revision 415. + - savejson saves an empty cell array as [] instead of null + - loadjson differentiates an empty struct from an empty array diff --git a/machine-learning-ex5/ex5/lib/jsonlab/ChangeLog.txt b/machine-learning-ex5/ex5/lib/jsonlab/ChangeLog.txt new file mode 100644 index 0000000..07824f5 --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/ChangeLog.txt @@ -0,0 +1,74 @@ +============================================================================ + + JSONlab - a toolbox to encode/decode JSON/UBJSON files in MATLAB/Octave + +---------------------------------------------------------------------------- + +JSONlab ChangeLog (key features marked by *): + +== JSONlab 1.0 (codename: Optimus - Final), FangQ == + + 2015/01/02 polish help info for all major functions, update examples, finalize 1.0 + 2014/12/19 fix a bug to strictly respect NoRowBracket in savejson + +== JSONlab 1.0.0-RC2 (codename: Optimus - RC2), FangQ == + + 2014/11/22 show progress bar in loadjson ('ShowProgress') + 2014/11/17 add Compact option in savejson to output compact JSON format ('Compact') + 2014/11/17 add FastArrayParser in loadjson to specify fast parser applicable levels + 2014/09/18 start official github mirror: https://github.com/fangq/jsonlab + +== JSONlab 1.0.0-RC1 (codename: Optimus - RC1), FangQ == + + 2014/09/17 fix several compatibility issues when running on octave versions 3.2-3.8 + 2014/09/17 support 2D cell and struct arrays in both savejson and saveubjson + 2014/08/04 escape special characters in a JSON string + 2014/02/16 fix a bug when saving ubjson files + +== JSONlab 0.9.9 (codename: Optimus - beta), FangQ == + + 2014/01/22 use binary read and write in saveubjson and loadubjson + +== JSONlab 0.9.8-1 (codename: Optimus - alpha update 1), FangQ == + + 2013/10/07 better round-trip conservation for empty arrays and structs (patch submitted by Yul Kang) + +== JSONlab 0.9.8 (codename: Optimus - alpha), FangQ == + 2013/08/23 *universal Binary JSON (UBJSON) support, including both saveubjson and loadubjson + +== JSONlab 0.9.1 (codename: Rodimus, update 1), FangQ == + 2012/12/18 *handling of various empty and sparse matrices (fixes submitted by Niclas Borlin) + +== JSONlab 0.9.0 (codename: Rodimus), FangQ == + + 2012/06/17 *new format for an invalid leading char, unpacking hex code in savejson + 2012/06/01 support JSONP in savejson + 2012/05/25 fix the empty cell bug (reported by Cyril Davin) + 2012/04/05 savejson can save to a file (suggested by Patrick Rapin) + +== JSONlab 0.8.1 (codename: Sentiel, Update 1), FangQ == + + 2012/02/28 loadjson quotation mark escape bug, see http://bit.ly/yyk1nS + 2012/01/25 patch to handle root-less objects, contributed by Blake Johnson + +== JSONlab 0.8.0 (codename: Sentiel), FangQ == + + 2012/01/13 *speed up loadjson by 20 fold when parsing large data arrays in matlab + 2012/01/11 remove row bracket if an array has 1 element, suggested by Mykel Kochenderfer + 2011/12/22 *accept sequence of 'param',value input in savejson and loadjson + 2011/11/18 fix struct array bug reported by Mykel Kochenderfer + +== JSONlab 0.5.1 (codename: Nexus Update 1), FangQ == + + 2011/10/21 fix a bug in loadjson, previous code does not use any of the acceleration + 2011/10/20 loadjson supports JSON collections - concatenated JSON objects + +== JSONlab 0.5.0 (codename: Nexus), FangQ == + + 2011/10/16 package and release jsonlab 0.5.0 + 2011/10/15 *add json demo and regression test, support cpx numbers, fix double quote bug + 2011/10/11 *speed up readjson dramatically, interpret _Array* tags, show data in root level + 2011/10/10 create jsonlab project, start jsonlab website, add online documentation + 2011/10/07 *speed up savejson by 25x using sprintf instead of mat2str, add options support + 2011/10/06 *savejson works for structs, cells and arrays + 2011/09/09 derive loadjson from JSON parser from MATLAB Central, draft savejson.m diff --git a/machine-learning-ex5/ex5/lib/jsonlab/LICENSE_BSD.txt b/machine-learning-ex5/ex5/lib/jsonlab/LICENSE_BSD.txt new file mode 100644 index 0000000..32d66cb --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/LICENSE_BSD.txt @@ -0,0 +1,25 @@ +Copyright 2011-2015 Qianqian Fang . All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are +permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those of the +authors and should not be interpreted as representing official policies, either expressed +or implied, of the copyright holders. diff --git a/machine-learning-ex5/ex5/lib/jsonlab/README.txt b/machine-learning-ex5/ex5/lib/jsonlab/README.txt new file mode 100644 index 0000000..7b4f732 --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/README.txt @@ -0,0 +1,394 @@ +=============================================================================== += JSONLab = += An open-source MATLAB/Octave JSON encoder and decoder = +=============================================================================== + +*Copyright (C) 2011-2015 Qianqian Fang +*License: BSD License, see License_BSD.txt for details +*Version: 1.0 (Optimus - Final) + +------------------------------------------------------------------------------- + +Table of Content: + +I. Introduction +II. Installation +III.Using JSONLab +IV. Known Issues and TODOs +V. Contribution and feedback + +------------------------------------------------------------------------------- + +I. Introduction + +JSON ([http://www.json.org/ JavaScript Object Notation]) is a highly portable, +human-readable and "[http://en.wikipedia.org/wiki/JSON fat-free]" text format +to represent complex and hierarchical data. It is as powerful as +[http://en.wikipedia.org/wiki/XML XML], but less verbose. JSON format is widely +used for data-exchange in applications, and is essential for the wild success +of [http://en.wikipedia.org/wiki/Ajax_(programming) Ajax] and +[http://en.wikipedia.org/wiki/Web_2.0 Web2.0]. + +UBJSON (Universal Binary JSON) is a binary JSON format, specifically +optimized for compact file size and better performance while keeping +the semantics as simple as the text-based JSON format. Using the UBJSON +format allows to wrap complex binary data in a flexible and extensible +structure, making it possible to process complex and large dataset +without accuracy loss due to text conversions. + +We envision that both JSON and its binary version will serve as part of +the mainstream data-exchange formats for scientific research in the future. +It will provide the flexibility and generality achieved by other popular +general-purpose file specifications, such as +[http://www.hdfgroup.org/HDF5/whatishdf5.html HDF5], with significantly +reduced complexity and enhanced performance. + +JSONLab is a free and open-source implementation of a JSON/UBJSON encoder +and a decoder in the native MATLAB language. It can be used to convert a MATLAB +data structure (array, struct, cell, struct array and cell array) into +JSON/UBJSON formatted strings, or to decode a JSON/UBJSON file into MATLAB +data structure. JSONLab supports both MATLAB and +[http://www.gnu.org/software/octave/ GNU Octave] (a free MATLAB clone). + +------------------------------------------------------------------------------- + +II. Installation + +The installation of JSONLab is no different than any other simple +MATLAB toolbox. You only need to download/unzip the JSONLab package +to a folder, and add the folder's path to MATLAB/Octave's path list +by using the following command: + + addpath('/path/to/jsonlab'); + +If you want to add this path permanently, you need to type "pathtool", +browse to the jsonlab root folder and add to the list, then click "Save". +Then, run "rehash" in MATLAB, and type "which loadjson", if you see an +output, that means JSONLab is installed for MATLAB/Octave. + +------------------------------------------------------------------------------- + +III.Using JSONLab + +JSONLab provides two functions, loadjson.m -- a MATLAB->JSON decoder, +and savejson.m -- a MATLAB->JSON encoder, for the text-based JSON, and +two equivallent functions -- loadubjson and saveubjson for the binary +JSON. The detailed help info for the four functions can be found below: + +=== loadjson.m === +

    +  data=loadjson(fname,opt)
    +     or
    +  data=loadjson(fname,'param1',value1,'param2',value2,...)
    + 
    +  parse a JSON (JavaScript Object Notation) file or string
    + 
    +  authors:Qianqian Fang (fangq nmr.mgh.harvard.edu)
    +  created on 2011/09/09, including previous works from 
    + 
    +          Nedialko Krouchev: http://www.mathworks.com/matlabcentral/fileexchange/25713
    +             created on 2009/11/02
    +          François Glineur: http://www.mathworks.com/matlabcentral/fileexchange/23393
    +             created on  2009/03/22
    +          Joel Feenstra:
    +          http://www.mathworks.com/matlabcentral/fileexchange/20565
    +             created on 2008/07/03
    + 
    +  $Id: loadjson.m 452 2014-11-22 16:43:33Z fangq $
    + 
    +  input:
    +       fname: input file name, if fname contains "{}" or "[]", fname
    +              will be interpreted as a JSON string
    +       opt: a struct to store parsing options, opt can be replaced by 
    +            a list of ('param',value) pairs - the param string is equivallent
    +            to a field in opt. opt can have the following 
    +            fields (first in [.|.] is the default)
    + 
    +            opt.SimplifyCell [0|1]: if set to 1, loadjson will call cell2mat
    +                          for each element of the JSON data, and group 
    +                          arrays based on the cell2mat rules.
    +            opt.FastArrayParser [1|0 or integer]: if set to 1, use a
    +                          speed-optimized array parser when loading an 
    +                          array object. The fast array parser may 
    +                          collapse block arrays into a single large
    +                          array similar to rules defined in cell2mat; 0 to 
    +                          use a legacy parser; if set to a larger-than-1
    +                          value, this option will specify the minimum
    +                          dimension to enable the fast array parser. For
    +                          example, if the input is a 3D array, setting
    +                          FastArrayParser to 1 will return a 3D array;
    +                          setting to 2 will return a cell array of 2D
    +                          arrays; setting to 3 will return to a 2D cell
    +                          array of 1D vectors; setting to 4 will return a
    +                          3D cell array.
    +            opt.ShowProgress [0|1]: if set to 1, loadjson displays a progress bar.
    + 
    +  output:
    +       dat: a cell array, where {...} blocks are converted into cell arrays,
    +            and [...] are converted to arrays
    + 
    +  examples:
    +       dat=loadjson('{"obj":{"string":"value","array":[1,2,3]}}')
    +       dat=loadjson(['examples' filesep 'example1.json'])
    +       dat=loadjson(['examples' filesep 'example1.json'],'SimplifyCell',1)
    +
    + +=== savejson.m === + +
    +  json=savejson(rootname,obj,filename)
    +     or
    +  json=savejson(rootname,obj,opt)
    +  json=savejson(rootname,obj,'param1',value1,'param2',value2,...)
    + 
    +  convert a MATLAB object (cell, struct or array) into a JSON (JavaScript
    +  Object Notation) string
    + 
    +  author: Qianqian Fang (fangq nmr.mgh.harvard.edu)
    +  created on 2011/09/09
    + 
    +  $Id: savejson.m 458 2014-12-19 22:17:17Z fangq $
    + 
    +  input:
    +       rootname: the name of the root-object, when set to '', the root name
    +         is ignored, however, when opt.ForceRootName is set to 1 (see below),
    +         the MATLAB variable name will be used as the root name.
    +       obj: a MATLAB object (array, cell, cell array, struct, struct array).
    +       filename: a string for the file name to save the output JSON data.
    +       opt: a struct for additional options, ignore to use default values.
    +         opt can have the following fields (first in [.|.] is the default)
    + 
    +         opt.FileName [''|string]: a file name to save the output JSON data
    +         opt.FloatFormat ['%.10g'|string]: format to show each numeric element
    +                          of a 1D/2D array;
    +         opt.ArrayIndent [1|0]: if 1, output explicit data array with
    +                          precedent indentation; if 0, no indentation
    +         opt.ArrayToStruct[0|1]: when set to 0, savejson outputs 1D/2D
    +                          array in JSON array format; if sets to 1, an
    +                          array will be shown as a struct with fields
    +                          "_ArrayType_", "_ArraySize_" and "_ArrayData_"; for
    +                          sparse arrays, the non-zero elements will be
    +                          saved to _ArrayData_ field in triplet-format i.e.
    +                          (ix,iy,val) and "_ArrayIsSparse_" will be added
    +                          with a value of 1; for a complex array, the 
    +                          _ArrayData_ array will include two columns 
    +                          (4 for sparse) to record the real and imaginary 
    +                          parts, and also "_ArrayIsComplex_":1 is added. 
    +         opt.ParseLogical [0|1]: if this is set to 1, logical array elem
    +                          will use true/false rather than 1/0.
    +         opt.NoRowBracket [1|0]: if this is set to 1, arrays with a single
    +                          numerical element will be shown without a square
    +                          bracket, unless it is the root object; if 0, square
    +                          brackets are forced for any numerical arrays.
    +         opt.ForceRootName [0|1]: when set to 1 and rootname is empty, savejson
    +                          will use the name of the passed obj variable as the 
    +                          root object name; if obj is an expression and 
    +                          does not have a name, 'root' will be used; if this 
    +                          is set to 0 and rootname is empty, the root level 
    +                          will be merged down to the lower level.
    +         opt.Inf ['"$1_Inf_"'|string]: a customized regular expression pattern
    +                          to represent +/-Inf. The matched pattern is '([-+]*)Inf'
    +                          and $1 represents the sign. For those who want to use
    +                          1e999 to represent Inf, they can set opt.Inf to '$11e999'
    +         opt.NaN ['"_NaN_"'|string]: a customized regular expression pattern
    +                          to represent NaN
    +         opt.JSONP [''|string]: to generate a JSONP output (JSON with padding),
    +                          for example, if opt.JSONP='foo', the JSON data is
    +                          wrapped inside a function call as 'foo(...);'
    +         opt.UnpackHex [1|0]: conver the 0x[hex code] output by loadjson 
    +                          back to the string form
    +         opt.SaveBinary [0|1]: 1 - save the JSON file in binary mode; 0 - text mode.
    +         opt.Compact [0|1]: 1- out compact JSON format (remove all newlines and tabs)
    + 
    +         opt can be replaced by a list of ('param',value) pairs. The param 
    +         string is equivallent to a field in opt and is case sensitive.
    +  output:
    +       json: a string in the JSON format (see http://json.org)
    + 
    +  examples:
    +       jsonmesh=struct('MeshNode',[0 0 0;1 0 0;0 1 0;1 1 0;0 0 1;1 0 1;0 1 1;1 1 1],... 
    +                'MeshTetra',[1 2 4 8;1 3 4 8;1 2 6 8;1 5 6 8;1 5 7 8;1 3 7 8],...
    +                'MeshTri',[1 2 4;1 2 6;1 3 4;1 3 7;1 5 6;1 5 7;...
    +                           2 8 4;2 8 6;3 8 4;3 8 7;5 8 6;5 8 7],...
    +                'MeshCreator','FangQ','MeshTitle','T6 Cube',...
    +                'SpecialData',[nan, inf, -inf]);
    +       savejson('jmesh',jsonmesh)
    +       savejson('',jsonmesh,'ArrayIndent',0,'FloatFormat','\t%.5g')
    + 
    + +=== loadubjson.m === + +
    +  data=loadubjson(fname,opt)
    +     or
    +  data=loadubjson(fname,'param1',value1,'param2',value2,...)
    + 
    +  parse a JSON (JavaScript Object Notation) file or string
    + 
    +  authors:Qianqian Fang (fangq nmr.mgh.harvard.edu)
    +  created on 2013/08/01
    + 
    +  $Id: loadubjson.m 436 2014-08-05 20:51:40Z fangq $
    + 
    +  input:
    +       fname: input file name, if fname contains "{}" or "[]", fname
    +              will be interpreted as a UBJSON string
    +       opt: a struct to store parsing options, opt can be replaced by 
    +            a list of ('param',value) pairs - the param string is equivallent
    +            to a field in opt. opt can have the following 
    +            fields (first in [.|.] is the default)
    + 
    +            opt.SimplifyCell [0|1]: if set to 1, loadubjson will call cell2mat
    +                          for each element of the JSON data, and group 
    +                          arrays based on the cell2mat rules.
    +            opt.IntEndian [B|L]: specify the endianness of the integer fields
    +                          in the UBJSON input data. B - Big-Endian format for 
    +                          integers (as required in the UBJSON specification); 
    +                          L - input integer fields are in Little-Endian order.
    + 
    +  output:
    +       dat: a cell array, where {...} blocks are converted into cell arrays,
    +            and [...] are converted to arrays
    + 
    +  examples:
    +       obj=struct('string','value','array',[1 2 3]);
    +       ubjdata=saveubjson('obj',obj);
    +       dat=loadubjson(ubjdata)
    +       dat=loadubjson(['examples' filesep 'example1.ubj'])
    +       dat=loadubjson(['examples' filesep 'example1.ubj'],'SimplifyCell',1)
    +
    + +=== saveubjson.m === + +
    +  json=saveubjson(rootname,obj,filename)
    +     or
    +  json=saveubjson(rootname,obj,opt)
    +  json=saveubjson(rootname,obj,'param1',value1,'param2',value2,...)
    + 
    +  convert a MATLAB object (cell, struct or array) into a Universal 
    +  Binary JSON (UBJSON) binary string
    + 
    +  author: Qianqian Fang (fangq nmr.mgh.harvard.edu)
    +  created on 2013/08/17
    + 
    +  $Id: saveubjson.m 440 2014-09-17 19:59:45Z fangq $
    + 
    +  input:
    +       rootname: the name of the root-object, when set to '', the root name
    +         is ignored, however, when opt.ForceRootName is set to 1 (see below),
    +         the MATLAB variable name will be used as the root name.
    +       obj: a MATLAB object (array, cell, cell array, struct, struct array)
    +       filename: a string for the file name to save the output UBJSON data
    +       opt: a struct for additional options, ignore to use default values.
    +         opt can have the following fields (first in [.|.] is the default)
    + 
    +         opt.FileName [''|string]: a file name to save the output JSON data
    +         opt.ArrayToStruct[0|1]: when set to 0, saveubjson outputs 1D/2D
    +                          array in JSON array format; if sets to 1, an
    +                          array will be shown as a struct with fields
    +                          "_ArrayType_", "_ArraySize_" and "_ArrayData_"; for
    +                          sparse arrays, the non-zero elements will be
    +                          saved to _ArrayData_ field in triplet-format i.e.
    +                          (ix,iy,val) and "_ArrayIsSparse_" will be added
    +                          with a value of 1; for a complex array, the 
    +                          _ArrayData_ array will include two columns 
    +                          (4 for sparse) to record the real and imaginary 
    +                          parts, and also "_ArrayIsComplex_":1 is added. 
    +         opt.ParseLogical [1|0]: if this is set to 1, logical array elem
    +                          will use true/false rather than 1/0.
    +         opt.NoRowBracket [1|0]: if this is set to 1, arrays with a single
    +                          numerical element will be shown without a square
    +                          bracket, unless it is the root object; if 0, square
    +                          brackets are forced for any numerical arrays.
    +         opt.ForceRootName [0|1]: when set to 1 and rootname is empty, saveubjson
    +                          will use the name of the passed obj variable as the 
    +                          root object name; if obj is an expression and 
    +                          does not have a name, 'root' will be used; if this 
    +                          is set to 0 and rootname is empty, the root level 
    +                          will be merged down to the lower level.
    +         opt.JSONP [''|string]: to generate a JSONP output (JSON with padding),
    +                          for example, if opt.JSON='foo', the JSON data is
    +                          wrapped inside a function call as 'foo(...);'
    +         opt.UnpackHex [1|0]: conver the 0x[hex code] output by loadjson 
    +                          back to the string form
    + 
    +         opt can be replaced by a list of ('param',value) pairs. The param 
    +         string is equivallent to a field in opt and is case sensitive.
    +  output:
    +       json: a binary string in the UBJSON format (see http://ubjson.org)
    + 
    +  examples:
    +       jsonmesh=struct('MeshNode',[0 0 0;1 0 0;0 1 0;1 1 0;0 0 1;1 0 1;0 1 1;1 1 1],... 
    +                'MeshTetra',[1 2 4 8;1 3 4 8;1 2 6 8;1 5 6 8;1 5 7 8;1 3 7 8],...
    +                'MeshTri',[1 2 4;1 2 6;1 3 4;1 3 7;1 5 6;1 5 7;...
    +                           2 8 4;2 8 6;3 8 4;3 8 7;5 8 6;5 8 7],...
    +                'MeshCreator','FangQ','MeshTitle','T6 Cube',...
    +                'SpecialData',[nan, inf, -inf]);
    +       saveubjson('jsonmesh',jsonmesh)
    +       saveubjson('jsonmesh',jsonmesh,'meshdata.ubj')
    +
    + + +=== examples === + +Under the "examples" folder, you can find several scripts to demonstrate the +basic utilities of JSONLab. Running the "demo_jsonlab_basic.m" script, you +will see the conversions from MATLAB data structure to JSON text and backward. +In "jsonlab_selftest.m", we load complex JSON files downloaded from the Internet +and validate the loadjson/savejson functions for regression testing purposes. +Similarly, a "demo_ubjson_basic.m" script is provided to test the saveubjson +and loadubjson pairs for various matlab data structures. + +Please run these examples and understand how JSONLab works before you use +it to process your data. + +------------------------------------------------------------------------------- + +IV. Known Issues and TODOs + +JSONLab has several known limitations. We are striving to make it more general +and robust. Hopefully in a few future releases, the limitations become less. + +Here are the known issues: + +# 3D or higher dimensional cell/struct-arrays will be converted to 2D arrays; +# When processing names containing multi-byte characters, Octave and MATLAB \ +can give different field-names; you can use feature('DefaultCharacterSet','latin1') \ +in MATLAB to get consistant results +# savejson can not handle class and dataset. +# saveubjson converts a logical array into a uint8 ([U]) array +# an unofficial N-D array count syntax is implemented in saveubjson. We are \ +actively communicating with the UBJSON spec maintainer to investigate the \ +possibility of making it upstream +# loadubjson can not parse all UBJSON Specification (Draft 9) compliant \ +files, however, it can parse all UBJSON files produced by saveubjson. + +------------------------------------------------------------------------------- + +V. Contribution and feedback + +JSONLab is an open-source project. This means you can not only use it and modify +it as you wish, but also you can contribute your changes back to JSONLab so +that everyone else can enjoy the improvement. For anyone who want to contribute, +please download JSONLab source code from it's subversion repository by using the +following command: + + svn checkout svn://svn.code.sf.net/p/iso2mesh/code/trunk/jsonlab jsonlab + +You can make changes to the files as needed. Once you are satisfied with your +changes, and ready to share it with others, please cd the root directory of +JSONLab, and type + + svn diff > yourname_featurename.patch + +You then email the .patch file to JSONLab's maintainer, Qianqian Fang, at +the email address shown in the beginning of this file. Qianqian will review +the changes and commit it to the subversion if they are satisfactory. + +We appreciate any suggestions and feedbacks from you. Please use iso2mesh's +mailing list to report any questions you may have with JSONLab: + +http://groups.google.com/group/iso2mesh-users?hl=en&pli=1 + +(Subscription to the mailing list is needed in order to post messages). diff --git a/machine-learning-ex5/ex5/lib/jsonlab/jsonopt.m b/machine-learning-ex5/ex5/lib/jsonlab/jsonopt.m new file mode 100644 index 0000000..0bebd8d --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/jsonopt.m @@ -0,0 +1,32 @@ +function val=jsonopt(key,default,varargin) +% +% val=jsonopt(key,default,optstruct) +% +% setting options based on a struct. The struct can be produced +% by varargin2struct from a list of 'param','value' pairs +% +% authors:Qianqian Fang (fangq nmr.mgh.harvard.edu) +% +% $Id: loadjson.m 371 2012-06-20 12:43:06Z fangq $ +% +% input: +% key: a string with which one look up a value from a struct +% default: if the key does not exist, return default +% optstruct: a struct where each sub-field is a key +% +% output: +% val: if key exists, val=optstruct.key; otherwise val=default +% +% license: +% BSD, see LICENSE_BSD.txt files for details +% +% -- this function is part of jsonlab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) +% + +val=default; +if(nargin<=2) return; end +opt=varargin{1}; +if(isstruct(opt) && isfield(opt,key)) + val=getfield(opt,key); +end + diff --git a/machine-learning-ex5/ex5/lib/jsonlab/loadjson.m b/machine-learning-ex5/ex5/lib/jsonlab/loadjson.m new file mode 100644 index 0000000..42798c0 --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/loadjson.m @@ -0,0 +1,566 @@ +function data = loadjson(fname,varargin) +% +% data=loadjson(fname,opt) +% or +% data=loadjson(fname,'param1',value1,'param2',value2,...) +% +% parse a JSON (JavaScript Object Notation) file or string +% +% authors:Qianqian Fang (fangq nmr.mgh.harvard.edu) +% created on 2011/09/09, including previous works from +% +% Nedialko Krouchev: http://www.mathworks.com/matlabcentral/fileexchange/25713 +% created on 2009/11/02 +% François Glineur: http://www.mathworks.com/matlabcentral/fileexchange/23393 +% created on 2009/03/22 +% Joel Feenstra: +% http://www.mathworks.com/matlabcentral/fileexchange/20565 +% created on 2008/07/03 +% +% $Id: loadjson.m 460 2015-01-03 00:30:45Z fangq $ +% +% input: +% fname: input file name, if fname contains "{}" or "[]", fname +% will be interpreted as a JSON string +% opt: a struct to store parsing options, opt can be replaced by +% a list of ('param',value) pairs - the param string is equivallent +% to a field in opt. opt can have the following +% fields (first in [.|.] is the default) +% +% opt.SimplifyCell [0|1]: if set to 1, loadjson will call cell2mat +% for each element of the JSON data, and group +% arrays based on the cell2mat rules. +% opt.FastArrayParser [1|0 or integer]: if set to 1, use a +% speed-optimized array parser when loading an +% array object. The fast array parser may +% collapse block arrays into a single large +% array similar to rules defined in cell2mat; 0 to +% use a legacy parser; if set to a larger-than-1 +% value, this option will specify the minimum +% dimension to enable the fast array parser. For +% example, if the input is a 3D array, setting +% FastArrayParser to 1 will return a 3D array; +% setting to 2 will return a cell array of 2D +% arrays; setting to 3 will return to a 2D cell +% array of 1D vectors; setting to 4 will return a +% 3D cell array. +% opt.ShowProgress [0|1]: if set to 1, loadjson displays a progress bar. +% +% output: +% dat: a cell array, where {...} blocks are converted into cell arrays, +% and [...] are converted to arrays +% +% examples: +% dat=loadjson('{"obj":{"string":"value","array":[1,2,3]}}') +% dat=loadjson(['examples' filesep 'example1.json']) +% dat=loadjson(['examples' filesep 'example1.json'],'SimplifyCell',1) +% +% license: +% BSD, see LICENSE_BSD.txt files for details +% +% -- this function is part of JSONLab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) +% + +global pos inStr len esc index_esc len_esc isoct arraytoken + +if(regexp(fname,'[\{\}\]\[]','once')) + string=fname; +elseif(exist(fname,'file')) + fid = fopen(fname,'rb'); + string = fread(fid,inf,'uint8=>char')'; + fclose(fid); +else + error('input file does not exist'); +end + +pos = 1; len = length(string); inStr = string; +isoct=exist('OCTAVE_VERSION','builtin'); +arraytoken=find(inStr=='[' | inStr==']' | inStr=='"'); +jstr=regexprep(inStr,'\\\\',' '); +escquote=regexp(jstr,'\\"'); +arraytoken=sort([arraytoken escquote]); + +% String delimiters and escape chars identified to improve speed: +esc = find(inStr=='"' | inStr=='\' ); % comparable to: regexp(inStr, '["\\]'); +index_esc = 1; len_esc = length(esc); + +opt=varargin2struct(varargin{:}); + +if(jsonopt('ShowProgress',0,opt)==1) + opt.progressbar_=waitbar(0,'loading ...'); +end +jsoncount=1; +while pos <= len + switch(next_char) + case '{' + data{jsoncount} = parse_object(opt); + case '[' + data{jsoncount} = parse_array(opt); + otherwise + error_pos('Outer level structure must be an object or an array'); + end + jsoncount=jsoncount+1; +end % while + +jsoncount=length(data); +if(jsoncount==1 && iscell(data)) + data=data{1}; +end + +if(~isempty(data)) + if(isstruct(data)) % data can be a struct array + data=jstruct2array(data); + elseif(iscell(data)) + data=jcell2array(data); + end +end +if(isfield(opt,'progressbar_')) + close(opt.progressbar_); +end + +%% +function newdata=jcell2array(data) +len=length(data); +newdata=data; +for i=1:len + if(isstruct(data{i})) + newdata{i}=jstruct2array(data{i}); + elseif(iscell(data{i})) + newdata{i}=jcell2array(data{i}); + end +end + +%%------------------------------------------------------------------------- +function newdata=jstruct2array(data) +fn=fieldnames(data); +newdata=data; +len=length(data); +for i=1:length(fn) % depth-first + for j=1:len + if(isstruct(getfield(data(j),fn{i}))) + newdata(j)=setfield(newdata(j),fn{i},jstruct2array(getfield(data(j),fn{i}))); + end + end +end +if(~isempty(strmatch('x0x5F_ArrayType_',fn)) && ~isempty(strmatch('x0x5F_ArrayData_',fn))) + newdata=cell(len,1); + for j=1:len + ndata=cast(data(j).x0x5F_ArrayData_,data(j).x0x5F_ArrayType_); + iscpx=0; + if(~isempty(strmatch('x0x5F_ArrayIsComplex_',fn))) + if(data(j).x0x5F_ArrayIsComplex_) + iscpx=1; + end + end + if(~isempty(strmatch('x0x5F_ArrayIsSparse_',fn))) + if(data(j).x0x5F_ArrayIsSparse_) + if(~isempty(strmatch('x0x5F_ArraySize_',fn))) + dim=data(j).x0x5F_ArraySize_; + if(iscpx && size(ndata,2)==4-any(dim==1)) + ndata(:,end-1)=complex(ndata(:,end-1),ndata(:,end)); + end + if isempty(ndata) + % All-zeros sparse + ndata=sparse(dim(1),prod(dim(2:end))); + elseif dim(1)==1 + % Sparse row vector + ndata=sparse(1,ndata(:,1),ndata(:,2),dim(1),prod(dim(2:end))); + elseif dim(2)==1 + % Sparse column vector + ndata=sparse(ndata(:,1),1,ndata(:,2),dim(1),prod(dim(2:end))); + else + % Generic sparse array. + ndata=sparse(ndata(:,1),ndata(:,2),ndata(:,3),dim(1),prod(dim(2:end))); + end + else + if(iscpx && size(ndata,2)==4) + ndata(:,3)=complex(ndata(:,3),ndata(:,4)); + end + ndata=sparse(ndata(:,1),ndata(:,2),ndata(:,3)); + end + end + elseif(~isempty(strmatch('x0x5F_ArraySize_',fn))) + if(iscpx && size(ndata,2)==2) + ndata=complex(ndata(:,1),ndata(:,2)); + end + ndata=reshape(ndata(:),data(j).x0x5F_ArraySize_); + end + newdata{j}=ndata; + end + if(len==1) + newdata=newdata{1}; + end +end + +%%------------------------------------------------------------------------- +function object = parse_object(varargin) + parse_char('{'); + object = []; + if next_char ~= '}' + while 1 + str = parseStr(varargin{:}); + if isempty(str) + error_pos('Name of value at position %d cannot be empty'); + end + parse_char(':'); + val = parse_value(varargin{:}); + eval( sprintf( 'object.%s = val;', valid_field(str) ) ); + if next_char == '}' + break; + end + parse_char(','); + end + end + parse_char('}'); + +%%------------------------------------------------------------------------- + +function object = parse_array(varargin) % JSON array is written in row-major order +global pos inStr isoct + parse_char('['); + object = cell(0, 1); + dim2=[]; + arraydepth=jsonopt('JSONLAB_ArrayDepth_',1,varargin{:}); + pbar=jsonopt('progressbar_',-1,varargin{:}); + + if next_char ~= ']' + if(jsonopt('FastArrayParser',1,varargin{:})>=1 && arraydepth>=jsonopt('FastArrayParser',1,varargin{:})) + [endpos, e1l, e1r, maxlevel]=matching_bracket(inStr,pos); + arraystr=['[' inStr(pos:endpos)]; + arraystr=regexprep(arraystr,'"_NaN_"','NaN'); + arraystr=regexprep(arraystr,'"([-+]*)_Inf_"','$1Inf'); + arraystr(arraystr==sprintf('\n'))=[]; + arraystr(arraystr==sprintf('\r'))=[]; + %arraystr=regexprep(arraystr,'\s*,',','); % this is slow,sometimes needed + if(~isempty(e1l) && ~isempty(e1r)) % the array is in 2D or higher D + astr=inStr((e1l+1):(e1r-1)); + astr=regexprep(astr,'"_NaN_"','NaN'); + astr=regexprep(astr,'"([-+]*)_Inf_"','$1Inf'); + astr(astr==sprintf('\n'))=[]; + astr(astr==sprintf('\r'))=[]; + astr(astr==' ')=''; + if(isempty(find(astr=='[', 1))) % array is 2D + dim2=length(sscanf(astr,'%f,',[1 inf])); + end + else % array is 1D + astr=arraystr(2:end-1); + astr(astr==' ')=''; + [obj, count, errmsg, nextidx]=sscanf(astr,'%f,',[1,inf]); + if(nextidx>=length(astr)-1) + object=obj; + pos=endpos; + parse_char(']'); + return; + end + end + if(~isempty(dim2)) + astr=arraystr; + astr(astr=='[')=''; + astr(astr==']')=''; + astr(astr==' ')=''; + [obj, count, errmsg, nextidx]=sscanf(astr,'%f,',inf); + if(nextidx>=length(astr)-1) + object=reshape(obj,dim2,numel(obj)/dim2)'; + pos=endpos; + parse_char(']'); + if(pbar>0) + waitbar(pos/length(inStr),pbar,'loading ...'); + end + return; + end + end + arraystr=regexprep(arraystr,'\]\s*,','];'); + else + arraystr='['; + end + try + if(isoct && regexp(arraystr,'"','once')) + error('Octave eval can produce empty cells for JSON-like input'); + end + object=eval(arraystr); + pos=endpos; + catch + while 1 + newopt=varargin2struct(varargin{:},'JSONLAB_ArrayDepth_',arraydepth+1); + val = parse_value(newopt); + object{end+1} = val; + if next_char == ']' + break; + end + parse_char(','); + end + end + end + if(jsonopt('SimplifyCell',0,varargin{:})==1) + try + oldobj=object; + object=cell2mat(object')'; + if(iscell(oldobj) && isstruct(object) && numel(object)>1 && jsonopt('SimplifyCellArray',1,varargin{:})==0) + object=oldobj; + elseif(size(object,1)>1 && ndims(object)==2) + object=object'; + end + catch + end + end + parse_char(']'); + + if(pbar>0) + waitbar(pos/length(inStr),pbar,'loading ...'); + end +%%------------------------------------------------------------------------- + +function parse_char(c) + global pos inStr len + skip_whitespace; + if pos > len || inStr(pos) ~= c + error_pos(sprintf('Expected %c at position %%d', c)); + else + pos = pos + 1; + skip_whitespace; + end + +%%------------------------------------------------------------------------- + +function c = next_char + global pos inStr len + skip_whitespace; + if pos > len + c = []; + else + c = inStr(pos); + end + +%%------------------------------------------------------------------------- + +function skip_whitespace + global pos inStr len + while pos <= len && isspace(inStr(pos)) + pos = pos + 1; + end + +%%------------------------------------------------------------------------- +function str = parseStr(varargin) + global pos inStr len esc index_esc len_esc + % len, ns = length(inStr), keyboard + if inStr(pos) ~= '"' + error_pos('String starting with " expected at position %d'); + else + pos = pos + 1; + end + str = ''; + while pos <= len + while index_esc <= len_esc && esc(index_esc) < pos + index_esc = index_esc + 1; + end + if index_esc > len_esc + str = [str inStr(pos:len)]; + pos = len + 1; + break; + else + str = [str inStr(pos:esc(index_esc)-1)]; + pos = esc(index_esc); + end + nstr = length(str); switch inStr(pos) + case '"' + pos = pos + 1; + if(~isempty(str)) + if(strcmp(str,'_Inf_')) + str=Inf; + elseif(strcmp(str,'-_Inf_')) + str=-Inf; + elseif(strcmp(str,'_NaN_')) + str=NaN; + end + end + return; + case '\' + if pos+1 > len + error_pos('End of file reached right after escape character'); + end + pos = pos + 1; + switch inStr(pos) + case {'"' '\' '/'} + str(nstr+1) = inStr(pos); + pos = pos + 1; + case {'b' 'f' 'n' 'r' 't'} + str(nstr+1) = sprintf(['\' inStr(pos)]); + pos = pos + 1; + case 'u' + if pos+4 > len + error_pos('End of file reached in escaped unicode character'); + end + str(nstr+(1:6)) = inStr(pos-1:pos+4); + pos = pos + 5; + end + otherwise % should never happen + str(nstr+1) = inStr(pos), keyboard + pos = pos + 1; + end + end + error_pos('End of file while expecting end of inStr'); + +%%------------------------------------------------------------------------- + +function num = parse_number(varargin) + global pos inStr len isoct + currstr=inStr(pos:end); + numstr=0; + if(isoct~=0) + numstr=regexp(currstr,'^\s*-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+\-]?\d+)?','end'); + [num, one] = sscanf(currstr, '%f', 1); + delta=numstr+1; + else + [num, one, err, delta] = sscanf(currstr, '%f', 1); + if ~isempty(err) + error_pos('Error reading number at position %d'); + end + end + pos = pos + delta-1; + +%%------------------------------------------------------------------------- + +function val = parse_value(varargin) + global pos inStr len + true = 1; false = 0; + + pbar=jsonopt('progressbar_',-1,varargin{:}); + if(pbar>0) + waitbar(pos/len,pbar,'loading ...'); + end + + switch(inStr(pos)) + case '"' + val = parseStr(varargin{:}); + return; + case '[' + val = parse_array(varargin{:}); + return; + case '{' + val = parse_object(varargin{:}); + if isstruct(val) + if(~isempty(strmatch('x0x5F_ArrayType_',fieldnames(val), 'exact'))) + val=jstruct2array(val); + end + elseif isempty(val) + val = struct; + end + return; + case {'-','0','1','2','3','4','5','6','7','8','9'} + val = parse_number(varargin{:}); + return; + case 't' + if pos+3 <= len && strcmpi(inStr(pos:pos+3), 'true') + val = true; + pos = pos + 4; + return; + end + case 'f' + if pos+4 <= len && strcmpi(inStr(pos:pos+4), 'false') + val = false; + pos = pos + 5; + return; + end + case 'n' + if pos+3 <= len && strcmpi(inStr(pos:pos+3), 'null') + val = []; + pos = pos + 4; + return; + end + end + error_pos('Value expected at position %d'); +%%------------------------------------------------------------------------- + +function error_pos(msg) + global pos inStr len + poShow = max(min([pos-15 pos-1 pos pos+20],len),1); + if poShow(3) == poShow(2) + poShow(3:4) = poShow(2)+[0 -1]; % display nothing after + end + msg = [sprintf(msg, pos) ': ' ... + inStr(poShow(1):poShow(2)) '' inStr(poShow(3):poShow(4)) ]; + error( ['JSONparser:invalidFormat: ' msg] ); + +%%------------------------------------------------------------------------- + +function str = valid_field(str) +global isoct +% From MATLAB doc: field names must begin with a letter, which may be +% followed by any combination of letters, digits, and underscores. +% Invalid characters will be converted to underscores, and the prefix +% "x0x[Hex code]_" will be added if the first character is not a letter. + pos=regexp(str,'^[^A-Za-z]','once'); + if(~isempty(pos)) + if(~isoct) + str=regexprep(str,'^([^A-Za-z])','x0x${sprintf(''%X'',unicode2native($1))}_','once'); + else + str=sprintf('x0x%X_%s',char(str(1)),str(2:end)); + end + end + if(isempty(regexp(str,'[^0-9A-Za-z_]', 'once' ))) return; end + if(~isoct) + str=regexprep(str,'([^0-9A-Za-z_])','_0x${sprintf(''%X'',unicode2native($1))}_'); + else + pos=regexp(str,'[^0-9A-Za-z_]'); + if(isempty(pos)) return; end + str0=str; + pos0=[0 pos(:)' length(str)]; + str=''; + for i=1:length(pos) + str=[str str0(pos0(i)+1:pos(i)-1) sprintf('_0x%X_',str0(pos(i)))]; + end + if(pos(end)~=length(str)) + str=[str str0(pos0(end-1)+1:pos0(end))]; + end + end + %str(~isletter(str) & ~('0' <= str & str <= '9')) = '_'; + +%%------------------------------------------------------------------------- +function endpos = matching_quote(str,pos) +len=length(str); +while(pos1 && str(pos-1)=='\')) + endpos=pos; + return; + end + end + pos=pos+1; +end +error('unmatched quotation mark'); +%%------------------------------------------------------------------------- +function [endpos, e1l, e1r, maxlevel] = matching_bracket(str,pos) +global arraytoken +level=1; +maxlevel=level; +endpos=0; +bpos=arraytoken(arraytoken>=pos); +tokens=str(bpos); +len=length(tokens); +pos=1; +e1l=[]; +e1r=[]; +while(pos<=len) + c=tokens(pos); + if(c==']') + level=level-1; + if(isempty(e1r)) e1r=bpos(pos); end + if(level==0) + endpos=bpos(pos); + return + end + end + if(c=='[') + if(isempty(e1l)) e1l=bpos(pos); end + level=level+1; + maxlevel=max(maxlevel,level); + end + if(c=='"') + pos=matching_quote(tokens,pos+1); + end + pos=pos+1; +end +if(endpos==0) + error('unmatched "]"'); +end + diff --git a/machine-learning-ex5/ex5/lib/jsonlab/loadubjson.m b/machine-learning-ex5/ex5/lib/jsonlab/loadubjson.m new file mode 100644 index 0000000..0155115 --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/loadubjson.m @@ -0,0 +1,528 @@ +function data = loadubjson(fname,varargin) +% +% data=loadubjson(fname,opt) +% or +% data=loadubjson(fname,'param1',value1,'param2',value2,...) +% +% parse a JSON (JavaScript Object Notation) file or string +% +% authors:Qianqian Fang (fangq nmr.mgh.harvard.edu) +% created on 2013/08/01 +% +% $Id: loadubjson.m 460 2015-01-03 00:30:45Z fangq $ +% +% input: +% fname: input file name, if fname contains "{}" or "[]", fname +% will be interpreted as a UBJSON string +% opt: a struct to store parsing options, opt can be replaced by +% a list of ('param',value) pairs - the param string is equivallent +% to a field in opt. opt can have the following +% fields (first in [.|.] is the default) +% +% opt.SimplifyCell [0|1]: if set to 1, loadubjson will call cell2mat +% for each element of the JSON data, and group +% arrays based on the cell2mat rules. +% opt.IntEndian [B|L]: specify the endianness of the integer fields +% in the UBJSON input data. B - Big-Endian format for +% integers (as required in the UBJSON specification); +% L - input integer fields are in Little-Endian order. +% +% output: +% dat: a cell array, where {...} blocks are converted into cell arrays, +% and [...] are converted to arrays +% +% examples: +% obj=struct('string','value','array',[1 2 3]); +% ubjdata=saveubjson('obj',obj); +% dat=loadubjson(ubjdata) +% dat=loadubjson(['examples' filesep 'example1.ubj']) +% dat=loadubjson(['examples' filesep 'example1.ubj'],'SimplifyCell',1) +% +% license: +% BSD, see LICENSE_BSD.txt files for details +% +% -- this function is part of JSONLab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) +% + +global pos inStr len esc index_esc len_esc isoct arraytoken fileendian systemendian + +if(regexp(fname,'[\{\}\]\[]','once')) + string=fname; +elseif(exist(fname,'file')) + fid = fopen(fname,'rb'); + string = fread(fid,inf,'uint8=>char')'; + fclose(fid); +else + error('input file does not exist'); +end + +pos = 1; len = length(string); inStr = string; +isoct=exist('OCTAVE_VERSION','builtin'); +arraytoken=find(inStr=='[' | inStr==']' | inStr=='"'); +jstr=regexprep(inStr,'\\\\',' '); +escquote=regexp(jstr,'\\"'); +arraytoken=sort([arraytoken escquote]); + +% String delimiters and escape chars identified to improve speed: +esc = find(inStr=='"' | inStr=='\' ); % comparable to: regexp(inStr, '["\\]'); +index_esc = 1; len_esc = length(esc); + +opt=varargin2struct(varargin{:}); +fileendian=upper(jsonopt('IntEndian','B',opt)); +[os,maxelem,systemendian]=computer; + +jsoncount=1; +while pos <= len + switch(next_char) + case '{' + data{jsoncount} = parse_object(opt); + case '[' + data{jsoncount} = parse_array(opt); + otherwise + error_pos('Outer level structure must be an object or an array'); + end + jsoncount=jsoncount+1; +end % while + +jsoncount=length(data); +if(jsoncount==1 && iscell(data)) + data=data{1}; +end + +if(~isempty(data)) + if(isstruct(data)) % data can be a struct array + data=jstruct2array(data); + elseif(iscell(data)) + data=jcell2array(data); + end +end + + +%% +function newdata=parse_collection(id,data,obj) + +if(jsoncount>0 && exist('data','var')) + if(~iscell(data)) + newdata=cell(1); + newdata{1}=data; + data=newdata; + end +end + +%% +function newdata=jcell2array(data) +len=length(data); +newdata=data; +for i=1:len + if(isstruct(data{i})) + newdata{i}=jstruct2array(data{i}); + elseif(iscell(data{i})) + newdata{i}=jcell2array(data{i}); + end +end + +%%------------------------------------------------------------------------- +function newdata=jstruct2array(data) +fn=fieldnames(data); +newdata=data; +len=length(data); +for i=1:length(fn) % depth-first + for j=1:len + if(isstruct(getfield(data(j),fn{i}))) + newdata(j)=setfield(newdata(j),fn{i},jstruct2array(getfield(data(j),fn{i}))); + end + end +end +if(~isempty(strmatch('x0x5F_ArrayType_',fn)) && ~isempty(strmatch('x0x5F_ArrayData_',fn))) + newdata=cell(len,1); + for j=1:len + ndata=cast(data(j).x0x5F_ArrayData_,data(j).x0x5F_ArrayType_); + iscpx=0; + if(~isempty(strmatch('x0x5F_ArrayIsComplex_',fn))) + if(data(j).x0x5F_ArrayIsComplex_) + iscpx=1; + end + end + if(~isempty(strmatch('x0x5F_ArrayIsSparse_',fn))) + if(data(j).x0x5F_ArrayIsSparse_) + if(~isempty(strmatch('x0x5F_ArraySize_',fn))) + dim=double(data(j).x0x5F_ArraySize_); + if(iscpx && size(ndata,2)==4-any(dim==1)) + ndata(:,end-1)=complex(ndata(:,end-1),ndata(:,end)); + end + if isempty(ndata) + % All-zeros sparse + ndata=sparse(dim(1),prod(dim(2:end))); + elseif dim(1)==1 + % Sparse row vector + ndata=sparse(1,ndata(:,1),ndata(:,2),dim(1),prod(dim(2:end))); + elseif dim(2)==1 + % Sparse column vector + ndata=sparse(ndata(:,1),1,ndata(:,2),dim(1),prod(dim(2:end))); + else + % Generic sparse array. + ndata=sparse(ndata(:,1),ndata(:,2),ndata(:,3),dim(1),prod(dim(2:end))); + end + else + if(iscpx && size(ndata,2)==4) + ndata(:,3)=complex(ndata(:,3),ndata(:,4)); + end + ndata=sparse(ndata(:,1),ndata(:,2),ndata(:,3)); + end + end + elseif(~isempty(strmatch('x0x5F_ArraySize_',fn))) + if(iscpx && size(ndata,2)==2) + ndata=complex(ndata(:,1),ndata(:,2)); + end + ndata=reshape(ndata(:),data(j).x0x5F_ArraySize_); + end + newdata{j}=ndata; + end + if(len==1) + newdata=newdata{1}; + end +end + +%%------------------------------------------------------------------------- +function object = parse_object(varargin) + parse_char('{'); + object = []; + type=''; + count=-1; + if(next_char == '$') + type=inStr(pos+1); % TODO + pos=pos+2; + end + if(next_char == '#') + pos=pos+1; + count=double(parse_number()); + end + if next_char ~= '}' + num=0; + while 1 + str = parseStr(varargin{:}); + if isempty(str) + error_pos('Name of value at position %d cannot be empty'); + end + %parse_char(':'); + val = parse_value(varargin{:}); + num=num+1; + eval( sprintf( 'object.%s = val;', valid_field(str) ) ); + if next_char == '}' || (count>=0 && num>=count) + break; + end + %parse_char(','); + end + end + if(count==-1) + parse_char('}'); + end + +%%------------------------------------------------------------------------- +function [cid,len]=elem_info(type) +id=strfind('iUIlLdD',type); +dataclass={'int8','uint8','int16','int32','int64','single','double'}; +bytelen=[1,1,2,4,8,4,8]; +if(id>0) + cid=dataclass{id}; + len=bytelen(id); +else + error_pos('unsupported type at position %d'); +end +%%------------------------------------------------------------------------- + + +function [data adv]=parse_block(type,count,varargin) +global pos inStr isoct fileendian systemendian +[cid,len]=elem_info(type); +datastr=inStr(pos:pos+len*count-1); +if(isoct) + newdata=int8(datastr); +else + newdata=uint8(datastr); +end +id=strfind('iUIlLdD',type); +if(id<=5 && fileendian~=systemendian) + newdata=swapbytes(typecast(newdata,cid)); +end +data=typecast(newdata,cid); +adv=double(len*count); + +%%------------------------------------------------------------------------- + + +function object = parse_array(varargin) % JSON array is written in row-major order +global pos inStr isoct + parse_char('['); + object = cell(0, 1); + dim=[]; + type=''; + count=-1; + if(next_char == '$') + type=inStr(pos+1); + pos=pos+2; + end + if(next_char == '#') + pos=pos+1; + if(next_char=='[') + dim=parse_array(varargin{:}); + count=prod(double(dim)); + else + count=double(parse_number()); + end + end + if(~isempty(type)) + if(count>=0) + [object adv]=parse_block(type,count,varargin{:}); + if(~isempty(dim)) + object=reshape(object,dim); + end + pos=pos+adv; + return; + else + endpos=matching_bracket(inStr,pos); + [cid,len]=elem_info(type); + count=(endpos-pos)/len; + [object adv]=parse_block(type,count,varargin{:}); + pos=pos+adv; + parse_char(']'); + return; + end + end + if next_char ~= ']' + while 1 + val = parse_value(varargin{:}); + object{end+1} = val; + if next_char == ']' + break; + end + %parse_char(','); + end + end + if(jsonopt('SimplifyCell',0,varargin{:})==1) + try + oldobj=object; + object=cell2mat(object')'; + if(iscell(oldobj) && isstruct(object) && numel(object)>1 && jsonopt('SimplifyCellArray',1,varargin{:})==0) + object=oldobj; + elseif(size(object,1)>1 && ndims(object)==2) + object=object'; + end + catch + end + end + if(count==-1) + parse_char(']'); + end + +%%------------------------------------------------------------------------- + +function parse_char(c) + global pos inStr len + skip_whitespace; + if pos > len || inStr(pos) ~= c + error_pos(sprintf('Expected %c at position %%d', c)); + else + pos = pos + 1; + skip_whitespace; + end + +%%------------------------------------------------------------------------- + +function c = next_char + global pos inStr len + skip_whitespace; + if pos > len + c = []; + else + c = inStr(pos); + end + +%%------------------------------------------------------------------------- + +function skip_whitespace + global pos inStr len + while pos <= len && isspace(inStr(pos)) + pos = pos + 1; + end + +%%------------------------------------------------------------------------- +function str = parseStr(varargin) + global pos inStr esc index_esc len_esc + % len, ns = length(inStr), keyboard + type=inStr(pos); + if type ~= 'S' && type ~= 'C' && type ~= 'H' + error_pos('String starting with S expected at position %d'); + else + pos = pos + 1; + end + if(type == 'C') + str=inStr(pos); + pos=pos+1; + return; + end + bytelen=double(parse_number()); + if(length(inStr)>=pos+bytelen-1) + str=inStr(pos:pos+bytelen-1); + pos=pos+bytelen; + else + error_pos('End of file while expecting end of inStr'); + end + +%%------------------------------------------------------------------------- + +function num = parse_number(varargin) + global pos inStr len isoct fileendian systemendian + id=strfind('iUIlLdD',inStr(pos)); + if(isempty(id)) + error_pos('expecting a number at position %d'); + end + type={'int8','uint8','int16','int32','int64','single','double'}; + bytelen=[1,1,2,4,8,4,8]; + datastr=inStr(pos+1:pos+bytelen(id)); + if(isoct) + newdata=int8(datastr); + else + newdata=uint8(datastr); + end + if(id<=5 && fileendian~=systemendian) + newdata=swapbytes(typecast(newdata,type{id})); + end + num=typecast(newdata,type{id}); + pos = pos + bytelen(id)+1; + +%%------------------------------------------------------------------------- + +function val = parse_value(varargin) + global pos inStr len + true = 1; false = 0; + + switch(inStr(pos)) + case {'S','C','H'} + val = parseStr(varargin{:}); + return; + case '[' + val = parse_array(varargin{:}); + return; + case '{' + val = parse_object(varargin{:}); + if isstruct(val) + if(~isempty(strmatch('x0x5F_ArrayType_',fieldnames(val), 'exact'))) + val=jstruct2array(val); + end + elseif isempty(val) + val = struct; + end + return; + case {'i','U','I','l','L','d','D'} + val = parse_number(varargin{:}); + return; + case 'T' + val = true; + pos = pos + 1; + return; + case 'F' + val = false; + pos = pos + 1; + return; + case {'Z','N'} + val = []; + pos = pos + 1; + return; + end + error_pos('Value expected at position %d'); +%%------------------------------------------------------------------------- + +function error_pos(msg) + global pos inStr len + poShow = max(min([pos-15 pos-1 pos pos+20],len),1); + if poShow(3) == poShow(2) + poShow(3:4) = poShow(2)+[0 -1]; % display nothing after + end + msg = [sprintf(msg, pos) ': ' ... + inStr(poShow(1):poShow(2)) '' inStr(poShow(3):poShow(4)) ]; + error( ['JSONparser:invalidFormat: ' msg] ); + +%%------------------------------------------------------------------------- + +function str = valid_field(str) +global isoct +% From MATLAB doc: field names must begin with a letter, which may be +% followed by any combination of letters, digits, and underscores. +% Invalid characters will be converted to underscores, and the prefix +% "x0x[Hex code]_" will be added if the first character is not a letter. + pos=regexp(str,'^[^A-Za-z]','once'); + if(~isempty(pos)) + if(~isoct) + str=regexprep(str,'^([^A-Za-z])','x0x${sprintf(''%X'',unicode2native($1))}_','once'); + else + str=sprintf('x0x%X_%s',char(str(1)),str(2:end)); + end + end + if(isempty(regexp(str,'[^0-9A-Za-z_]', 'once' ))) return; end + if(~isoct) + str=regexprep(str,'([^0-9A-Za-z_])','_0x${sprintf(''%X'',unicode2native($1))}_'); + else + pos=regexp(str,'[^0-9A-Za-z_]'); + if(isempty(pos)) return; end + str0=str; + pos0=[0 pos(:)' length(str)]; + str=''; + for i=1:length(pos) + str=[str str0(pos0(i)+1:pos(i)-1) sprintf('_0x%X_',str0(pos(i)))]; + end + if(pos(end)~=length(str)) + str=[str str0(pos0(end-1)+1:pos0(end))]; + end + end + %str(~isletter(str) & ~('0' <= str & str <= '9')) = '_'; + +%%------------------------------------------------------------------------- +function endpos = matching_quote(str,pos) +len=length(str); +while(pos1 && str(pos-1)=='\')) + endpos=pos; + return; + end + end + pos=pos+1; +end +error('unmatched quotation mark'); +%%------------------------------------------------------------------------- +function [endpos e1l e1r maxlevel] = matching_bracket(str,pos) +global arraytoken +level=1; +maxlevel=level; +endpos=0; +bpos=arraytoken(arraytoken>=pos); +tokens=str(bpos); +len=length(tokens); +pos=1; +e1l=[]; +e1r=[]; +while(pos<=len) + c=tokens(pos); + if(c==']') + level=level-1; + if(isempty(e1r)) e1r=bpos(pos); end + if(level==0) + endpos=bpos(pos); + return + end + end + if(c=='[') + if(isempty(e1l)) e1l=bpos(pos); end + level=level+1; + maxlevel=max(maxlevel,level); + end + if(c=='"') + pos=matching_quote(tokens,pos+1); + end + pos=pos+1; +end +if(endpos==0) + error('unmatched "]"'); +end + diff --git a/machine-learning-ex5/ex5/lib/jsonlab/mergestruct.m b/machine-learning-ex5/ex5/lib/jsonlab/mergestruct.m new file mode 100644 index 0000000..6de6100 --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/mergestruct.m @@ -0,0 +1,33 @@ +function s=mergestruct(s1,s2) +% +% s=mergestruct(s1,s2) +% +% merge two struct objects into one +% +% authors:Qianqian Fang (fangq nmr.mgh.harvard.edu) +% date: 2012/12/22 +% +% input: +% s1,s2: a struct object, s1 and s2 can not be arrays +% +% output: +% s: the merged struct object. fields in s1 and s2 will be combined in s. +% +% license: +% BSD, see LICENSE_BSD.txt files for details +% +% -- this function is part of jsonlab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) +% + +if(~isstruct(s1) || ~isstruct(s2)) + error('input parameters contain non-struct'); +end +if(length(s1)>1 || length(s2)>1) + error('can not merge struct arrays'); +end +fn=fieldnames(s2); +s=s1; +for i=1:length(fn) + s=setfield(s,fn{i},getfield(s2,fn{i})); +end + diff --git a/machine-learning-ex5/ex5/lib/jsonlab/savejson.m b/machine-learning-ex5/ex5/lib/jsonlab/savejson.m new file mode 100644 index 0000000..7e84076 --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/savejson.m @@ -0,0 +1,475 @@ +function json=savejson(rootname,obj,varargin) +% +% json=savejson(rootname,obj,filename) +% or +% json=savejson(rootname,obj,opt) +% json=savejson(rootname,obj,'param1',value1,'param2',value2,...) +% +% convert a MATLAB object (cell, struct or array) into a JSON (JavaScript +% Object Notation) string +% +% author: Qianqian Fang (fangq nmr.mgh.harvard.edu) +% created on 2011/09/09 +% +% $Id: savejson.m 460 2015-01-03 00:30:45Z fangq $ +% +% input: +% rootname: the name of the root-object, when set to '', the root name +% is ignored, however, when opt.ForceRootName is set to 1 (see below), +% the MATLAB variable name will be used as the root name. +% obj: a MATLAB object (array, cell, cell array, struct, struct array). +% filename: a string for the file name to save the output JSON data. +% opt: a struct for additional options, ignore to use default values. +% opt can have the following fields (first in [.|.] is the default) +% +% opt.FileName [''|string]: a file name to save the output JSON data +% opt.FloatFormat ['%.10g'|string]: format to show each numeric element +% of a 1D/2D array; +% opt.ArrayIndent [1|0]: if 1, output explicit data array with +% precedent indentation; if 0, no indentation +% opt.ArrayToStruct[0|1]: when set to 0, savejson outputs 1D/2D +% array in JSON array format; if sets to 1, an +% array will be shown as a struct with fields +% "_ArrayType_", "_ArraySize_" and "_ArrayData_"; for +% sparse arrays, the non-zero elements will be +% saved to _ArrayData_ field in triplet-format i.e. +% (ix,iy,val) and "_ArrayIsSparse_" will be added +% with a value of 1; for a complex array, the +% _ArrayData_ array will include two columns +% (4 for sparse) to record the real and imaginary +% parts, and also "_ArrayIsComplex_":1 is added. +% opt.ParseLogical [0|1]: if this is set to 1, logical array elem +% will use true/false rather than 1/0. +% opt.NoRowBracket [1|0]: if this is set to 1, arrays with a single +% numerical element will be shown without a square +% bracket, unless it is the root object; if 0, square +% brackets are forced for any numerical arrays. +% opt.ForceRootName [0|1]: when set to 1 and rootname is empty, savejson +% will use the name of the passed obj variable as the +% root object name; if obj is an expression and +% does not have a name, 'root' will be used; if this +% is set to 0 and rootname is empty, the root level +% will be merged down to the lower level. +% opt.Inf ['"$1_Inf_"'|string]: a customized regular expression pattern +% to represent +/-Inf. The matched pattern is '([-+]*)Inf' +% and $1 represents the sign. For those who want to use +% 1e999 to represent Inf, they can set opt.Inf to '$11e999' +% opt.NaN ['"_NaN_"'|string]: a customized regular expression pattern +% to represent NaN +% opt.JSONP [''|string]: to generate a JSONP output (JSON with padding), +% for example, if opt.JSONP='foo', the JSON data is +% wrapped inside a function call as 'foo(...);' +% opt.UnpackHex [1|0]: conver the 0x[hex code] output by loadjson +% back to the string form +% opt.SaveBinary [0|1]: 1 - save the JSON file in binary mode; 0 - text mode. +% opt.Compact [0|1]: 1- out compact JSON format (remove all newlines and tabs) +% +% opt can be replaced by a list of ('param',value) pairs. The param +% string is equivallent to a field in opt and is case sensitive. +% output: +% json: a string in the JSON format (see http://json.org) +% +% examples: +% jsonmesh=struct('MeshNode',[0 0 0;1 0 0;0 1 0;1 1 0;0 0 1;1 0 1;0 1 1;1 1 1],... +% 'MeshTetra',[1 2 4 8;1 3 4 8;1 2 6 8;1 5 6 8;1 5 7 8;1 3 7 8],... +% 'MeshTri',[1 2 4;1 2 6;1 3 4;1 3 7;1 5 6;1 5 7;... +% 2 8 4;2 8 6;3 8 4;3 8 7;5 8 6;5 8 7],... +% 'MeshCreator','FangQ','MeshTitle','T6 Cube',... +% 'SpecialData',[nan, inf, -inf]); +% savejson('jmesh',jsonmesh) +% savejson('',jsonmesh,'ArrayIndent',0,'FloatFormat','\t%.5g') +% +% license: +% BSD, see LICENSE_BSD.txt files for details +% +% -- this function is part of JSONLab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) +% + +if(nargin==1) + varname=inputname(1); + obj=rootname; + if(isempty(varname)) + varname='root'; + end + rootname=varname; +else + varname=inputname(2); +end +if(length(varargin)==1 && ischar(varargin{1})) + opt=struct('FileName',varargin{1}); +else + opt=varargin2struct(varargin{:}); +end +opt.IsOctave=exist('OCTAVE_VERSION','builtin'); +rootisarray=0; +rootlevel=1; +forceroot=jsonopt('ForceRootName',0,opt); +if((isnumeric(obj) || islogical(obj) || ischar(obj) || isstruct(obj) || iscell(obj)) && isempty(rootname) && forceroot==0) + rootisarray=1; + rootlevel=0; +else + if(isempty(rootname)) + rootname=varname; + end +end +if((isstruct(obj) || iscell(obj))&& isempty(rootname) && forceroot) + rootname='root'; +end + +whitespaces=struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')); +if(jsonopt('Compact',0,opt)==1) + whitespaces=struct('tab','','newline','','sep',','); +end +if(~isfield(opt,'whitespaces_')) + opt.whitespaces_=whitespaces; +end + +nl=whitespaces.newline; + +json=obj2json(rootname,obj,rootlevel,opt); +if(rootisarray) + json=sprintf('%s%s',json,nl); +else + json=sprintf('{%s%s%s}\n',nl,json,nl); +end + +jsonp=jsonopt('JSONP','',opt); +if(~isempty(jsonp)) + json=sprintf('%s(%s);%s',jsonp,json,nl); +end + +% save to a file if FileName is set, suggested by Patrick Rapin +if(~isempty(jsonopt('FileName','',opt))) + if(jsonopt('SaveBinary',0,opt)==1) + fid = fopen(opt.FileName, 'wb'); + fwrite(fid,json); + else + fid = fopen(opt.FileName, 'wt'); + fwrite(fid,json,'char'); + end + fclose(fid); +end + +%%------------------------------------------------------------------------- +function txt=obj2json(name,item,level,varargin) + +if(iscell(item)) + txt=cell2json(name,item,level,varargin{:}); +elseif(isstruct(item)) + txt=struct2json(name,item,level,varargin{:}); +elseif(ischar(item)) + txt=str2json(name,item,level,varargin{:}); +else + txt=mat2json(name,item,level,varargin{:}); +end + +%%------------------------------------------------------------------------- +function txt=cell2json(name,item,level,varargin) +txt=''; +if(~iscell(item)) + error('input is not a cell'); +end + +dim=size(item); +if(ndims(squeeze(item))>2) % for 3D or higher dimensions, flatten to 2D for now + item=reshape(item,dim(1),numel(item)/dim(1)); + dim=size(item); +end +len=numel(item); +ws=jsonopt('whitespaces_',struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')),varargin{:}); +padding0=repmat(ws.tab,1,level); +padding2=repmat(ws.tab,1,level+1); +nl=ws.newline; +if(len>1) + if(~isempty(name)) + txt=sprintf('%s"%s": [%s',padding0, checkname(name,varargin{:}),nl); name=''; + else + txt=sprintf('%s[%s',padding0,nl); + end +elseif(len==0) + if(~isempty(name)) + txt=sprintf('%s"%s": []',padding0, checkname(name,varargin{:})); name=''; + else + txt=sprintf('%s[]',padding0); + end +end +for j=1:dim(2) + if(dim(1)>1) txt=sprintf('%s%s[%s',txt,padding2,nl); end + for i=1:dim(1) + txt=sprintf('%s%s',txt,obj2json(name,item{i,j},level+(dim(1)>1)+1,varargin{:})); + if(i1) txt=sprintf('%s%s%s]',txt,nl,padding2); end + if(j1) txt=sprintf('%s%s%s]',txt,nl,padding0); end + +%%------------------------------------------------------------------------- +function txt=struct2json(name,item,level,varargin) +txt=''; +if(~isstruct(item)) + error('input is not a struct'); +end +dim=size(item); +if(ndims(squeeze(item))>2) % for 3D or higher dimensions, flatten to 2D for now + item=reshape(item,dim(1),numel(item)/dim(1)); + dim=size(item); +end +len=numel(item); +ws=struct('tab',sprintf('\t'),'newline',sprintf('\n')); +ws=jsonopt('whitespaces_',ws,varargin{:}); +padding0=repmat(ws.tab,1,level); +padding2=repmat(ws.tab,1,level+1); +padding1=repmat(ws.tab,1,level+(dim(1)>1)+(len>1)); +nl=ws.newline; + +if(~isempty(name)) + if(len>1) txt=sprintf('%s"%s": [%s',padding0,checkname(name,varargin{:}),nl); end +else + if(len>1) txt=sprintf('%s[%s',padding0,nl); end +end +for j=1:dim(2) + if(dim(1)>1) txt=sprintf('%s%s[%s',txt,padding2,nl); end + for i=1:dim(1) + names = fieldnames(item(i,j)); + if(~isempty(name) && len==1) + txt=sprintf('%s%s"%s": {%s',txt,padding1, checkname(name,varargin{:}),nl); + else + txt=sprintf('%s%s{%s',txt,padding1,nl); + end + if(~isempty(names)) + for e=1:length(names) + txt=sprintf('%s%s',txt,obj2json(names{e},getfield(item(i,j),... + names{e}),level+(dim(1)>1)+1+(len>1),varargin{:})); + if(e1) txt=sprintf('%s%s%s]',txt,nl,padding2); end + if(j1) txt=sprintf('%s%s%s]',txt,nl,padding0); end + +%%------------------------------------------------------------------------- +function txt=str2json(name,item,level,varargin) +txt=''; +if(~ischar(item)) + error('input is not a string'); +end +item=reshape(item, max(size(item),[1 0])); +len=size(item,1); +ws=struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')); +ws=jsonopt('whitespaces_',ws,varargin{:}); +padding1=repmat(ws.tab,1,level); +padding0=repmat(ws.tab,1,level+1); +nl=ws.newline; +sep=ws.sep; + +if(~isempty(name)) + if(len>1) txt=sprintf('%s"%s": [%s',padding1,checkname(name,varargin{:}),nl); end +else + if(len>1) txt=sprintf('%s[%s',padding1,nl); end +end +isoct=jsonopt('IsOctave',0,varargin{:}); +for e=1:len + if(isoct) + val=regexprep(item(e,:),'\\','\\'); + val=regexprep(val,'"','\"'); + val=regexprep(val,'^"','\"'); + else + val=regexprep(item(e,:),'\\','\\\\'); + val=regexprep(val,'"','\\"'); + val=regexprep(val,'^"','\\"'); + end + val=escapejsonstring(val); + if(len==1) + obj=['"' checkname(name,varargin{:}) '": ' '"',val,'"']; + if(isempty(name)) obj=['"',val,'"']; end + txt=sprintf('%s%s%s%s',txt,padding1,obj); + else + txt=sprintf('%s%s%s%s',txt,padding0,['"',val,'"']); + end + if(e==len) sep=''; end + txt=sprintf('%s%s',txt,sep); +end +if(len>1) txt=sprintf('%s%s%s%s',txt,nl,padding1,']'); end + +%%------------------------------------------------------------------------- +function txt=mat2json(name,item,level,varargin) +if(~isnumeric(item) && ~islogical(item)) + error('input is not an array'); +end +ws=struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')); +ws=jsonopt('whitespaces_',ws,varargin{:}); +padding1=repmat(ws.tab,1,level); +padding0=repmat(ws.tab,1,level+1); +nl=ws.newline; +sep=ws.sep; + +if(length(size(item))>2 || issparse(item) || ~isreal(item) || ... + isempty(item) ||jsonopt('ArrayToStruct',0,varargin{:})) + if(isempty(name)) + txt=sprintf('%s{%s%s"_ArrayType_": "%s",%s%s"_ArraySize_": %s,%s',... + padding1,nl,padding0,class(item),nl,padding0,regexprep(mat2str(size(item)),'\s+',','),nl); + else + txt=sprintf('%s"%s": {%s%s"_ArrayType_": "%s",%s%s"_ArraySize_": %s,%s',... + padding1,checkname(name,varargin{:}),nl,padding0,class(item),nl,padding0,regexprep(mat2str(size(item)),'\s+',','),nl); + end +else + if(numel(item)==1 && jsonopt('NoRowBracket',1,varargin{:})==1 && level>0) + numtxt=regexprep(regexprep(matdata2json(item,level+1,varargin{:}),'^\[',''),']',''); + else + numtxt=matdata2json(item,level+1,varargin{:}); + end + if(isempty(name)) + txt=sprintf('%s%s',padding1,numtxt); + else + if(numel(item)==1 && jsonopt('NoRowBracket',1,varargin{:})==1) + txt=sprintf('%s"%s": %s',padding1,checkname(name,varargin{:}),numtxt); + else + txt=sprintf('%s"%s": %s',padding1,checkname(name,varargin{:}),numtxt); + end + end + return; +end +dataformat='%s%s%s%s%s'; + +if(issparse(item)) + [ix,iy]=find(item); + data=full(item(find(item))); + if(~isreal(item)) + data=[real(data(:)),imag(data(:))]; + if(size(item,1)==1) + % Kludge to have data's 'transposedness' match item's. + % (Necessary for complex row vector handling below.) + data=data'; + end + txt=sprintf(dataformat,txt,padding0,'"_ArrayIsComplex_": ','1', sep); + end + txt=sprintf(dataformat,txt,padding0,'"_ArrayIsSparse_": ','1', sep); + if(size(item,1)==1) + % Row vector, store only column indices. + txt=sprintf(dataformat,txt,padding0,'"_ArrayData_": ',... + matdata2json([iy(:),data'],level+2,varargin{:}), nl); + elseif(size(item,2)==1) + % Column vector, store only row indices. + txt=sprintf(dataformat,txt,padding0,'"_ArrayData_": ',... + matdata2json([ix,data],level+2,varargin{:}), nl); + else + % General case, store row and column indices. + txt=sprintf(dataformat,txt,padding0,'"_ArrayData_": ',... + matdata2json([ix,iy,data],level+2,varargin{:}), nl); + end +else + if(isreal(item)) + txt=sprintf(dataformat,txt,padding0,'"_ArrayData_": ',... + matdata2json(item(:)',level+2,varargin{:}), nl); + else + txt=sprintf(dataformat,txt,padding0,'"_ArrayIsComplex_": ','1', sep); + txt=sprintf(dataformat,txt,padding0,'"_ArrayData_": ',... + matdata2json([real(item(:)) imag(item(:))],level+2,varargin{:}), nl); + end +end +txt=sprintf('%s%s%s',txt,padding1,'}'); + +%%------------------------------------------------------------------------- +function txt=matdata2json(mat,level,varargin) + +ws=struct('tab',sprintf('\t'),'newline',sprintf('\n'),'sep',sprintf(',\n')); +ws=jsonopt('whitespaces_',ws,varargin{:}); +tab=ws.tab; +nl=ws.newline; + +if(size(mat,1)==1) + pre=''; + post=''; + level=level-1; +else + pre=sprintf('[%s',nl); + post=sprintf('%s%s]',nl,repmat(tab,1,level-1)); +end + +if(isempty(mat)) + txt='null'; + return; +end +floatformat=jsonopt('FloatFormat','%.10g',varargin{:}); +%if(numel(mat)>1) + formatstr=['[' repmat([floatformat ','],1,size(mat,2)-1) [floatformat sprintf('],%s',nl)]]; +%else +% formatstr=[repmat([floatformat ','],1,size(mat,2)-1) [floatformat sprintf(',\n')]]; +%end + +if(nargin>=2 && size(mat,1)>1 && jsonopt('ArrayIndent',1,varargin{:})==1) + formatstr=[repmat(tab,1,level) formatstr]; +end + +txt=sprintf(formatstr,mat'); +txt(end-length(nl):end)=[]; +if(islogical(mat) && jsonopt('ParseLogical',0,varargin{:})==1) + txt=regexprep(txt,'1','true'); + txt=regexprep(txt,'0','false'); +end +%txt=regexprep(mat2str(mat),'\s+',','); +%txt=regexprep(txt,';',sprintf('],\n[')); +% if(nargin>=2 && size(mat,1)>1) +% txt=regexprep(txt,'\[',[repmat(sprintf('\t'),1,level) '[']); +% end +txt=[pre txt post]; +if(any(isinf(mat(:)))) + txt=regexprep(txt,'([-+]*)Inf',jsonopt('Inf','"$1_Inf_"',varargin{:})); +end +if(any(isnan(mat(:)))) + txt=regexprep(txt,'NaN',jsonopt('NaN','"_NaN_"',varargin{:})); +end + +%%------------------------------------------------------------------------- +function newname=checkname(name,varargin) +isunpack=jsonopt('UnpackHex',1,varargin{:}); +newname=name; +if(isempty(regexp(name,'0x([0-9a-fA-F]+)_','once'))) + return +end +if(isunpack) + isoct=jsonopt('IsOctave',0,varargin{:}); + if(~isoct) + newname=regexprep(name,'(^x|_){1}0x([0-9a-fA-F]+)_','${native2unicode(hex2dec($2))}'); + else + pos=regexp(name,'(^x|_){1}0x([0-9a-fA-F]+)_','start'); + pend=regexp(name,'(^x|_){1}0x([0-9a-fA-F]+)_','end'); + if(isempty(pos)) return; end + str0=name; + pos0=[0 pend(:)' length(name)]; + newname=''; + for i=1:length(pos) + newname=[newname str0(pos0(i)+1:pos(i)-1) char(hex2dec(str0(pos(i)+3:pend(i)-1)))]; + end + if(pos(end)~=length(name)) + newname=[newname str0(pos0(end-1)+1:pos0(end))]; + end + end +end + +%%------------------------------------------------------------------------- +function newstr=escapejsonstring(str) +newstr=str; +isoct=exist('OCTAVE_VERSION','builtin'); +if(isoct) + vv=sscanf(OCTAVE_VERSION,'%f'); + if(vv(1)>=3.8) isoct=0; end +end +if(isoct) + escapechars={'\a','\f','\n','\r','\t','\v'}; + for i=1:length(escapechars); + newstr=regexprep(newstr,escapechars{i},escapechars{i}); + end +else + escapechars={'\a','\b','\f','\n','\r','\t','\v'}; + for i=1:length(escapechars); + newstr=regexprep(newstr,escapechars{i},regexprep(escapechars{i},'\\','\\\\')); + end +end diff --git a/machine-learning-ex5/ex5/lib/jsonlab/saveubjson.m b/machine-learning-ex5/ex5/lib/jsonlab/saveubjson.m new file mode 100644 index 0000000..eaec433 --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/saveubjson.m @@ -0,0 +1,504 @@ +function json=saveubjson(rootname,obj,varargin) +% +% json=saveubjson(rootname,obj,filename) +% or +% json=saveubjson(rootname,obj,opt) +% json=saveubjson(rootname,obj,'param1',value1,'param2',value2,...) +% +% convert a MATLAB object (cell, struct or array) into a Universal +% Binary JSON (UBJSON) binary string +% +% author: Qianqian Fang (fangq nmr.mgh.harvard.edu) +% created on 2013/08/17 +% +% $Id: saveubjson.m 460 2015-01-03 00:30:45Z fangq $ +% +% input: +% rootname: the name of the root-object, when set to '', the root name +% is ignored, however, when opt.ForceRootName is set to 1 (see below), +% the MATLAB variable name will be used as the root name. +% obj: a MATLAB object (array, cell, cell array, struct, struct array) +% filename: a string for the file name to save the output UBJSON data +% opt: a struct for additional options, ignore to use default values. +% opt can have the following fields (first in [.|.] is the default) +% +% opt.FileName [''|string]: a file name to save the output JSON data +% opt.ArrayToStruct[0|1]: when set to 0, saveubjson outputs 1D/2D +% array in JSON array format; if sets to 1, an +% array will be shown as a struct with fields +% "_ArrayType_", "_ArraySize_" and "_ArrayData_"; for +% sparse arrays, the non-zero elements will be +% saved to _ArrayData_ field in triplet-format i.e. +% (ix,iy,val) and "_ArrayIsSparse_" will be added +% with a value of 1; for a complex array, the +% _ArrayData_ array will include two columns +% (4 for sparse) to record the real and imaginary +% parts, and also "_ArrayIsComplex_":1 is added. +% opt.ParseLogical [1|0]: if this is set to 1, logical array elem +% will use true/false rather than 1/0. +% opt.NoRowBracket [1|0]: if this is set to 1, arrays with a single +% numerical element will be shown without a square +% bracket, unless it is the root object; if 0, square +% brackets are forced for any numerical arrays. +% opt.ForceRootName [0|1]: when set to 1 and rootname is empty, saveubjson +% will use the name of the passed obj variable as the +% root object name; if obj is an expression and +% does not have a name, 'root' will be used; if this +% is set to 0 and rootname is empty, the root level +% will be merged down to the lower level. +% opt.JSONP [''|string]: to generate a JSONP output (JSON with padding), +% for example, if opt.JSON='foo', the JSON data is +% wrapped inside a function call as 'foo(...);' +% opt.UnpackHex [1|0]: conver the 0x[hex code] output by loadjson +% back to the string form +% +% opt can be replaced by a list of ('param',value) pairs. The param +% string is equivallent to a field in opt and is case sensitive. +% output: +% json: a binary string in the UBJSON format (see http://ubjson.org) +% +% examples: +% jsonmesh=struct('MeshNode',[0 0 0;1 0 0;0 1 0;1 1 0;0 0 1;1 0 1;0 1 1;1 1 1],... +% 'MeshTetra',[1 2 4 8;1 3 4 8;1 2 6 8;1 5 6 8;1 5 7 8;1 3 7 8],... +% 'MeshTri',[1 2 4;1 2 6;1 3 4;1 3 7;1 5 6;1 5 7;... +% 2 8 4;2 8 6;3 8 4;3 8 7;5 8 6;5 8 7],... +% 'MeshCreator','FangQ','MeshTitle','T6 Cube',... +% 'SpecialData',[nan, inf, -inf]); +% saveubjson('jsonmesh',jsonmesh) +% saveubjson('jsonmesh',jsonmesh,'meshdata.ubj') +% +% license: +% BSD, see LICENSE_BSD.txt files for details +% +% -- this function is part of JSONLab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) +% + +if(nargin==1) + varname=inputname(1); + obj=rootname; + if(isempty(varname)) + varname='root'; + end + rootname=varname; +else + varname=inputname(2); +end +if(length(varargin)==1 && ischar(varargin{1})) + opt=struct('FileName',varargin{1}); +else + opt=varargin2struct(varargin{:}); +end +opt.IsOctave=exist('OCTAVE_VERSION','builtin'); +rootisarray=0; +rootlevel=1; +forceroot=jsonopt('ForceRootName',0,opt); +if((isnumeric(obj) || islogical(obj) || ischar(obj) || isstruct(obj) || iscell(obj)) && isempty(rootname) && forceroot==0) + rootisarray=1; + rootlevel=0; +else + if(isempty(rootname)) + rootname=varname; + end +end +if((isstruct(obj) || iscell(obj))&& isempty(rootname) && forceroot) + rootname='root'; +end +json=obj2ubjson(rootname,obj,rootlevel,opt); +if(~rootisarray) + json=['{' json '}']; +end + +jsonp=jsonopt('JSONP','',opt); +if(~isempty(jsonp)) + json=[jsonp '(' json ')']; +end + +% save to a file if FileName is set, suggested by Patrick Rapin +if(~isempty(jsonopt('FileName','',opt))) + fid = fopen(opt.FileName, 'wb'); + fwrite(fid,json); + fclose(fid); +end + +%%------------------------------------------------------------------------- +function txt=obj2ubjson(name,item,level,varargin) + +if(iscell(item)) + txt=cell2ubjson(name,item,level,varargin{:}); +elseif(isstruct(item)) + txt=struct2ubjson(name,item,level,varargin{:}); +elseif(ischar(item)) + txt=str2ubjson(name,item,level,varargin{:}); +else + txt=mat2ubjson(name,item,level,varargin{:}); +end + +%%------------------------------------------------------------------------- +function txt=cell2ubjson(name,item,level,varargin) +txt=''; +if(~iscell(item)) + error('input is not a cell'); +end + +dim=size(item); +if(ndims(squeeze(item))>2) % for 3D or higher dimensions, flatten to 2D for now + item=reshape(item,dim(1),numel(item)/dim(1)); + dim=size(item); +end +len=numel(item); % let's handle 1D cell first +if(len>1) + if(~isempty(name)) + txt=[S_(checkname(name,varargin{:})) '[']; name=''; + else + txt='['; + end +elseif(len==0) + if(~isempty(name)) + txt=[S_(checkname(name,varargin{:})) 'Z']; name=''; + else + txt='Z'; + end +end +for j=1:dim(2) + if(dim(1)>1) txt=[txt '[']; end + for i=1:dim(1) + txt=[txt obj2ubjson(name,item{i,j},level+(len>1),varargin{:})]; + end + if(dim(1)>1) txt=[txt ']']; end +end +if(len>1) txt=[txt ']']; end + +%%------------------------------------------------------------------------- +function txt=struct2ubjson(name,item,level,varargin) +txt=''; +if(~isstruct(item)) + error('input is not a struct'); +end +dim=size(item); +if(ndims(squeeze(item))>2) % for 3D or higher dimensions, flatten to 2D for now + item=reshape(item,dim(1),numel(item)/dim(1)); + dim=size(item); +end +len=numel(item); + +if(~isempty(name)) + if(len>1) txt=[S_(checkname(name,varargin{:})) '[']; end +else + if(len>1) txt='['; end +end +for j=1:dim(2) + if(dim(1)>1) txt=[txt '[']; end + for i=1:dim(1) + names = fieldnames(item(i,j)); + if(~isempty(name) && len==1) + txt=[txt S_(checkname(name,varargin{:})) '{']; + else + txt=[txt '{']; + end + if(~isempty(names)) + for e=1:length(names) + txt=[txt obj2ubjson(names{e},getfield(item(i,j),... + names{e}),level+(dim(1)>1)+1+(len>1),varargin{:})]; + end + end + txt=[txt '}']; + end + if(dim(1)>1) txt=[txt ']']; end +end +if(len>1) txt=[txt ']']; end + +%%------------------------------------------------------------------------- +function txt=str2ubjson(name,item,level,varargin) +txt=''; +if(~ischar(item)) + error('input is not a string'); +end +item=reshape(item, max(size(item),[1 0])); +len=size(item,1); + +if(~isempty(name)) + if(len>1) txt=[S_(checkname(name,varargin{:})) '[']; end +else + if(len>1) txt='['; end +end +isoct=jsonopt('IsOctave',0,varargin{:}); +for e=1:len + val=item(e,:); + if(len==1) + obj=['' S_(checkname(name,varargin{:})) '' '',S_(val),'']; + if(isempty(name)) obj=['',S_(val),'']; end + txt=[txt,'',obj]; + else + txt=[txt,'',['',S_(val),'']]; + end +end +if(len>1) txt=[txt ']']; end + +%%------------------------------------------------------------------------- +function txt=mat2ubjson(name,item,level,varargin) +if(~isnumeric(item) && ~islogical(item)) + error('input is not an array'); +end + +if(length(size(item))>2 || issparse(item) || ~isreal(item) || ... + isempty(item) || jsonopt('ArrayToStruct',0,varargin{:})) + cid=I_(uint32(max(size(item)))); + if(isempty(name)) + txt=['{' S_('_ArrayType_'),S_(class(item)),S_('_ArraySize_'),I_a(size(item),cid(1)) ]; + else + if(isempty(item)) + txt=[S_(checkname(name,varargin{:})),'Z']; + return; + else + txt=[S_(checkname(name,varargin{:})),'{',S_('_ArrayType_'),S_(class(item)),S_('_ArraySize_'),I_a(size(item),cid(1))]; + end + end +else + if(isempty(name)) + txt=matdata2ubjson(item,level+1,varargin{:}); + else + if(numel(item)==1 && jsonopt('NoRowBracket',1,varargin{:})==1) + numtxt=regexprep(regexprep(matdata2ubjson(item,level+1,varargin{:}),'^\[',''),']',''); + txt=[S_(checkname(name,varargin{:})) numtxt]; + else + txt=[S_(checkname(name,varargin{:})),matdata2ubjson(item,level+1,varargin{:})]; + end + end + return; +end +if(issparse(item)) + [ix,iy]=find(item); + data=full(item(find(item))); + if(~isreal(item)) + data=[real(data(:)),imag(data(:))]; + if(size(item,1)==1) + % Kludge to have data's 'transposedness' match item's. + % (Necessary for complex row vector handling below.) + data=data'; + end + txt=[txt,S_('_ArrayIsComplex_'),'T']; + end + txt=[txt,S_('_ArrayIsSparse_'),'T']; + if(size(item,1)==1) + % Row vector, store only column indices. + txt=[txt,S_('_ArrayData_'),... + matdata2ubjson([iy(:),data'],level+2,varargin{:})]; + elseif(size(item,2)==1) + % Column vector, store only row indices. + txt=[txt,S_('_ArrayData_'),... + matdata2ubjson([ix,data],level+2,varargin{:})]; + else + % General case, store row and column indices. + txt=[txt,S_('_ArrayData_'),... + matdata2ubjson([ix,iy,data],level+2,varargin{:})]; + end +else + if(isreal(item)) + txt=[txt,S_('_ArrayData_'),... + matdata2ubjson(item(:)',level+2,varargin{:})]; + else + txt=[txt,S_('_ArrayIsComplex_'),'T']; + txt=[txt,S_('_ArrayData_'),... + matdata2ubjson([real(item(:)) imag(item(:))],level+2,varargin{:})]; + end +end +txt=[txt,'}']; + +%%------------------------------------------------------------------------- +function txt=matdata2ubjson(mat,level,varargin) +if(isempty(mat)) + txt='Z'; + return; +end +if(size(mat,1)==1) + level=level-1; +end +type=''; +hasnegtive=(mat<0); +if(isa(mat,'integer') || isinteger(mat) || (isfloat(mat) && all(mod(mat(:),1) == 0))) + if(isempty(hasnegtive)) + if(max(mat(:))<=2^8) + type='U'; + end + end + if(isempty(type)) + % todo - need to consider negative ones separately + id= histc(abs(max(mat(:))),[0 2^7 2^15 2^31 2^63]); + if(isempty(find(id))) + error('high-precision data is not yet supported'); + end + key='iIlL'; + type=key(find(id)); + end + txt=[I_a(mat(:),type,size(mat))]; +elseif(islogical(mat)) + logicalval='FT'; + if(numel(mat)==1) + txt=logicalval(mat+1); + else + txt=['[$U#' I_a(size(mat),'l') typecast(swapbytes(uint8(mat(:)')),'uint8')]; + end +else + if(numel(mat)==1) + txt=['[' D_(mat) ']']; + else + txt=D_a(mat(:),'D',size(mat)); + end +end + +%txt=regexprep(mat2str(mat),'\s+',','); +%txt=regexprep(txt,';',sprintf('],[')); +% if(nargin>=2 && size(mat,1)>1) +% txt=regexprep(txt,'\[',[repmat(sprintf('\t'),1,level) '[']); +% end +if(any(isinf(mat(:)))) + txt=regexprep(txt,'([-+]*)Inf',jsonopt('Inf','"$1_Inf_"',varargin{:})); +end +if(any(isnan(mat(:)))) + txt=regexprep(txt,'NaN',jsonopt('NaN','"_NaN_"',varargin{:})); +end + +%%------------------------------------------------------------------------- +function newname=checkname(name,varargin) +isunpack=jsonopt('UnpackHex',1,varargin{:}); +newname=name; +if(isempty(regexp(name,'0x([0-9a-fA-F]+)_','once'))) + return +end +if(isunpack) + isoct=jsonopt('IsOctave',0,varargin{:}); + if(~isoct) + newname=regexprep(name,'(^x|_){1}0x([0-9a-fA-F]+)_','${native2unicode(hex2dec($2))}'); + else + pos=regexp(name,'(^x|_){1}0x([0-9a-fA-F]+)_','start'); + pend=regexp(name,'(^x|_){1}0x([0-9a-fA-F]+)_','end'); + if(isempty(pos)) return; end + str0=name; + pos0=[0 pend(:)' length(name)]; + newname=''; + for i=1:length(pos) + newname=[newname str0(pos0(i)+1:pos(i)-1) char(hex2dec(str0(pos(i)+3:pend(i)-1)))]; + end + if(pos(end)~=length(name)) + newname=[newname str0(pos0(end-1)+1:pos0(end))]; + end + end +end +%%------------------------------------------------------------------------- +function val=S_(str) +if(length(str)==1) + val=['C' str]; +else + val=['S' I_(int32(length(str))) str]; +end +%%------------------------------------------------------------------------- +function val=I_(num) +if(~isinteger(num)) + error('input is not an integer'); +end +if(num>=0 && num<255) + val=['U' data2byte(swapbytes(cast(num,'uint8')),'uint8')]; + return; +end +key='iIlL'; +cid={'int8','int16','int32','int64'}; +for i=1:4 + if((num>0 && num<2^(i*8-1)) || (num<0 && num>=-2^(i*8-1))) + val=[key(i) data2byte(swapbytes(cast(num,cid{i})),'uint8')]; + return; + end +end +error('unsupported integer'); + +%%------------------------------------------------------------------------- +function val=D_(num) +if(~isfloat(num)) + error('input is not a float'); +end + +if(isa(num,'single')) + val=['d' data2byte(num,'uint8')]; +else + val=['D' data2byte(num,'uint8')]; +end +%%------------------------------------------------------------------------- +function data=I_a(num,type,dim,format) +id=find(ismember('iUIlL',type)); + +if(id==0) + error('unsupported integer array'); +end + +% based on UBJSON specs, all integer types are stored in big endian format + +if(id==1) + data=data2byte(swapbytes(int8(num)),'uint8'); + blen=1; +elseif(id==2) + data=data2byte(swapbytes(uint8(num)),'uint8'); + blen=1; +elseif(id==3) + data=data2byte(swapbytes(int16(num)),'uint8'); + blen=2; +elseif(id==4) + data=data2byte(swapbytes(int32(num)),'uint8'); + blen=4; +elseif(id==5) + data=data2byte(swapbytes(int64(num)),'uint8'); + blen=8; +end + +if(nargin>=3 && length(dim)>=2 && prod(dim)~=dim(2)) + format='opt'; +end +if((nargin<4 || strcmp(format,'opt')) && numel(num)>1) + if(nargin>=3 && (length(dim)==1 || (length(dim)>=2 && prod(dim)~=dim(2)))) + cid=I_(uint32(max(dim))); + data=['$' type '#' I_a(dim,cid(1)) data(:)']; + else + data=['$' type '#' I_(int32(numel(data)/blen)) data(:)']; + end + data=['[' data(:)']; +else + data=reshape(data,blen,numel(data)/blen); + data(2:blen+1,:)=data; + data(1,:)=type; + data=data(:)'; + data=['[' data(:)' ']']; +end +%%------------------------------------------------------------------------- +function data=D_a(num,type,dim,format) +id=find(ismember('dD',type)); + +if(id==0) + error('unsupported float array'); +end + +if(id==1) + data=data2byte(single(num),'uint8'); +elseif(id==2) + data=data2byte(double(num),'uint8'); +end + +if(nargin>=3 && length(dim)>=2 && prod(dim)~=dim(2)) + format='opt'; +end +if((nargin<4 || strcmp(format,'opt')) && numel(num)>1) + if(nargin>=3 && (length(dim)==1 || (length(dim)>=2 && prod(dim)~=dim(2)))) + cid=I_(uint32(max(dim))); + data=['$' type '#' I_a(dim,cid(1)) data(:)']; + else + data=['$' type '#' I_(int32(numel(data)/(id*4))) data(:)']; + end + data=['[' data]; +else + data=reshape(data,(id*4),length(data)/(id*4)); + data(2:(id*4+1),:)=data; + data(1,:)=type; + data=data(:)'; + data=['[' data(:)' ']']; +end +%%------------------------------------------------------------------------- +function bytes=data2byte(varargin) +bytes=typecast(varargin{:}); +bytes=bytes(:)'; diff --git a/machine-learning-ex5/ex5/lib/jsonlab/varargin2struct.m b/machine-learning-ex5/ex5/lib/jsonlab/varargin2struct.m new file mode 100644 index 0000000..9a5c2b6 --- /dev/null +++ b/machine-learning-ex5/ex5/lib/jsonlab/varargin2struct.m @@ -0,0 +1,40 @@ +function opt=varargin2struct(varargin) +% +% opt=varargin2struct('param1',value1,'param2',value2,...) +% or +% opt=varargin2struct(...,optstruct,...) +% +% convert a series of input parameters into a structure +% +% authors:Qianqian Fang (fangq nmr.mgh.harvard.edu) +% date: 2012/12/22 +% +% input: +% 'param', value: the input parameters should be pairs of a string and a value +% optstruct: if a parameter is a struct, the fields will be merged to the output struct +% +% output: +% opt: a struct where opt.param1=value1, opt.param2=value2 ... +% +% license: +% BSD, see LICENSE_BSD.txt files for details +% +% -- this function is part of jsonlab toolbox (http://iso2mesh.sf.net/cgi-bin/index.cgi?jsonlab) +% + +len=length(varargin); +opt=struct; +if(len==0) return; end +i=1; +while(i<=len) + if(isstruct(varargin{i})) + opt=mergestruct(opt,varargin{i}); + elseif(ischar(varargin{i}) && i