• MATLAB中“fitgmdist”的用法及其GMM聚类算法


    MATLAB中“fitgmdist”的用法及其GMM聚类算法

    作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

    高斯混合模型的基本原理:聚类——GMM,MATLAB官方文档中有关于fitgmdist的介绍:fitgmdist。我之前写过有关GMM聚类的算法:GMM算法的matlab程序。这篇文章主要应用MATLAB自带的函数来进行聚类。

    1. fitgmdist函数介绍

    fitgmdist的使用形式:gmm = fitgmdist(X,k,Name,Value)

    输入

    ‘RegularizationValue’, 0。(取值:0, 0.1, 0.01,....,正则化系数,防止协方差奇异)

    'CovarianceType', 'full'。(取值: 'full',协方差矩阵是非对角阵,'diagonal',协方差矩阵为对角阵)

    ‘Start’, 'plus'。 (取值:‘randSample’,随机初始化,‘plus’,k-means++初始化,‘S’,自定义初始化),其中S = struct('mu',init_Mu,'Sigma',init_Sigma,'ComponentProportion',init_Components);

    ‘Options’,statset('Display', 'final', 'MaxIter', MaxIter, 'TolFun', TolFun)。 ('Display'有三个取值:‘final’ 显示最终的输出结果、‘iter’ 显示每次迭代的结果、‘off’ 不显示优化参数信息;'MaxIter':默认100,最大迭代次数;'TolFun':默认1e-6,目标函数的终止误差)

    输出

    gmm.mu:更新完后的聚类中心(均值)

    gmm.Sigma:更新完后的协方差矩阵

    gmm.ComponentProportion:更新完后的混合比例

    gmm.NegativeLogLikelihood:更新完后的负对数似然函数

    gmm.NumIterations:实际迭代次数

    gmm.BIC:贝叶斯信息准则,用于模型选择

    更多参数,请在命令行输入properties(gmm)

    2. 高斯混合模型聚类实例

    generate.m

    function data=generate()
    %生成数据
    mu1 = [1 2];
    Sigma1 = [2 0; 0 0.5];
    mu2 = [-1 -2];
    Sigma2 = [1 0;0 1];
    data = [mvnrnd(mu1,Sigma1,400), ones(400,1);mvnrnd(mu2,Sigma2,600), 2*ones(600,1)];
    X=[data(:, 1), data(:, 2)];
    figure(1)
    plot(X(:,1), X(:,2),'bo')
    title('Scatter Plot')
    xlim([min(X(:)) max(X(:))]) % Make axes have the same scale
    ylim([min(X(:)) max(X(:))])

    具体数据

    -0.752713846442762	2.48140797998545	1
    -0.798625575507672	2.14835001132099	1
    2.82002920206994	1.97084621196340	1
    0.913856576539988	2.24942313999122	1
    1.57243525115195	2.68322568351427	1
    0.241170005783610	1.89791938743627	1
    2.10634746115858	2.20631449410867	1
    1.61173455443266	2.69163655587553	1
    1.39436249281445	1.28104472307183	1
    1.65267727628557	1.85771163664832	1
    0.0927741368750946	2.00698799954306	1
    2.79887910552062	1.70868183551872	1
    0.652907219449091	1.88702134773695	1
    3.43327629572431	2.17571612839302	1
    1.96527202098605	2.34069549818768	1
    0.867813825335363	1.68534433959204	1
    2.08252259376894	1.02114736190308	1
    0.613863159235077	2.17081564512242	1
    0.399552396654452	2.11342763957560	1
    2.91186118166440	1.82639334702902	1
    0.377524852838774	3.08573945644000	1
    1.98881806018168	1.98460069084178	1
    2.68223790603780	1.96134300697451	1
    -0.622058850926772	3.30007822155342	1
    0.275231442237888	1.59279139683080	1
    3.34643957013717	1.68055674830698	1
    1.03601109129843	2.70541249651070	1
    0.752332013138056	2.49601620599903	1
    0.508824726005269	2.57436514443626	1
    1.73027562632102	2.19502286037081	1
    -0.713230300478002	3.73262960861479	1
    0.00814731258125789	1.52233440802986	1
    4.86084534117603	2.64339300870922	1
    2.82851799598685	1.79094004967764	1
    0.725784406602703	1.32609248276320	1
    0.147485590657029	1.49033710171378	1
    0.601129894478657	3.58795933263211	1
    1.32767044246750	1.73683867424831	1
    1.27723837775742	2.62061783710240	1
    0.240726647338080	1.43127112737987	1
    0.387110343064517	2.39576239976627	1
    -0.735171242460893	2.21884994425795	1
    0.821208540380224	2.28230651108960	1
    2.84910757299470	2.40958045875721	1
    -0.00305938218238255	1.36758622169689	1
    0.664256129846708	1.22550082896155	1
    -0.178114240634728	2.30408704591301	1
    2.00786623874121	2.03129722636611	1
    1.20272622506596	2.22475373629028	1
    2.50250207292945	2.98770457384530	1
    -0.874927698714206	1.71654280942273	1
    2.39750117925196	1.84040401876970	1
    0.369966892118764	2.74170598529279	1
    2.15279953669453	1.58546917422906	1
    0.591444584760838	2.29854661364821	1
    2.57828408797099	2.37460697014727	1
    0.816618335677021	1.11574196519408	1
    1.86043373148875	2.20777177264008	1
    0.100606202686330	3.21045350847405	1
    2.53445397100630	0.854302259627375	1
    1.39168420124415	1.49609940831950	1
    1.93929865340817	1.15181790512326	1
    -0.727792104505467	1.79285231965211	1
    0.646252982052485	1.03986431564848	1
    1.19673169055003	1.93448155511090	1
    1.12984878643876	2.22883744483371	1
    4.02666426647567	1.86649614448613	1
    1.27117265547696	2.03774514826000	1
    1.00533765244964	1.17061188123361	1
    -0.414741919400961	2.28828102447677	1
    0.495317556413179	1.83288455064957	1
    2.76823223857300	2.97934893222715	1
    1.08058855707478	2.26487370266768	1
    1.38546325331279	1.40278788558597	1
    1.52167644900484	2.69183023331115	1
    1.67505702182493	2.85222287490608	1
    4.10199034200796	2.18231282334728	1
    2.40054022033848	2.07878116194682	1
    1.49836399169312	1.92754270979332	1
    1.52768214037169	0.604144369658773	1
    1.48106369736206	1.89716183115311	1
    1.88582351601666	2.33794971444330	1
    2.26705524676369	1.71381451846972	1
    1.60866449353269	1.49135394247519	1
    -0.115055715038331	1.12849347288791	1
    3.57622395160265	1.10664344270162	1
    2.26630255633806	1.22083515972890	1
    1.33163191466841	1.44619768873473	1
    -1.45842213709207	2.22949005602252	1
    1.70411565663116	3.47971193248190	1
    1.48213175474953	2.96603725956335	1
    1.72101076041395	3.01672973472638	1
    -1.35146166439553	2.85558221164039	1
    0.380649241141038	2.56729542762187	1
    1.88667156332277	2.85630884112937	1
    1.97758943297860	1.70558017430484	1
    3.24821546740318	1.82804963183289	1
    0.843823793198429	2.64758378735128	1
    0.0405183480549609	1.71670699774521	1
    0.976813370248264	2.49595625636074	1
    -0.962694637418230	2.58074576675867	1
    1.82963248497625	1.90436660429995	1
    -0.0311001170696965	2.55990131230256	1
    1.78671558216327	1.30722487774421	1
    -0.0804210798437657	1.50783793009072	1
    0.592128283430208	0.755659320204709	1
    1.95365332837982	2.16200348956491	1
    1.36682968081700	1.73744055959892	1
    0.979475411390431	2.42632494823554	1
    1.39902046293800	1.73826197272758	1
    -0.765939069959433	1.80573420327555	1
    -0.635816070635523	2.54485465981086	1
    0.430871671985252	2.95078063841104	1
    1.07190555054187	2.60824897906429	1
    0.190820867383636	1.56628799263572	1
    -0.877375755503489	2.32098851030493	1
    2.18596583418406	1.73505362502330	1
    -0.858977422721553	1.67583237334513	1
    -0.209010836036135	1.61369208932597	1
    0.320019483215927	1.82234886961005	1
    2.22606598804851	2.92553777460368	1
    -1.34847806650935	1.73833614701202	1
    -1.10055386975634	1.73836801433344	1
    -0.742975839183661	2.56906224418957	1
    0.417690253375689	2.64425612559673	1
    2.21840601718359	1.86213274353155	1
    -1.80189093986379	1.88663190741782	1
    2.18214937211589	2.81206394431873	1
    0.0239657716321194	2.37810261200744	1
    1.48366333882258	1.88062228076692	1
    -1.50485783728876	1.75467615653968	1
    -0.156597929943039	2.92699154393160	1
    1.00641966523359	1.82300801832677	1
    0.229462398563604	0.218216163076399	1
    3.08788315084484	2.44977421952063	1
    -2.75317240661940	1.47607778387816	1
    1.57689796637766	1.14148728120332	1
    0.289637818858192	1.37410983329226	1
    1.80546824398122	1.11123227831127	1
    2.05342064550405	2.59331992761210	1
    -0.908793900499392	1.78719275353105	1
    0.366987870101896	0.201547399427021	1
    0.449481220306850	3.37425663694842	1
    1.77118120808653	1.75664778049838	1
    -0.418491981240371	1.67286506452260	1
    3.52677560506185	2.36946900535883	1
    1.02163690286654	2.47962254560261	1
    1.41689244102377	2.38217492483121	1
    1.13691599064491	0.957013586442155	1
    0.671020944057007	2.56279320248092	1
    0.416289186862122	1.39483608724636	1
    -0.0282160104049050	2.45786458707630	1
    0.0521611900408511	2.82924447860124	1
    1.24447082399573	3.12144145109146	1
    2.55665751225502	2.59582682074224	1
    -1.72738716416235	2.87567939582205	1
    0.818034818369206	2.08879327658097	1
    0.665710432632597	3.02252628314314	1
    -0.830517107648893	1.19084685791838	1
    -0.738848145854706	1.25759468066556	1
    0.884558977595650	2.40820510111672	1
    0.588696730035120	0.647436434761032	1
    0.458454700841834	2.31765414523682	1
    1.64997736187883	3.05662030735942	1
    1.39057520552050	1.64617201786334	1
    0.694081545245352	2.15199590331699	1
    0.0806501948918665	1.80117182589078	1
    -0.184406277418025	1.67502632215727	1
    0.775990550072731	2.43159523244796	1
    0.442197809595544	2.42563275519744	1
    0.408665021617116	1.66059134779610	1
    0.587376671955379	1.86069409237464	1
    -0.342114019627880	1.33691809907463	1
    -0.142841819015369	1.71852333719017	1
    -0.260651941264746	1.99425566102537	1
    1.09807519449644	2.47217799103807	1
    2.62993953926983	0.646836252256355	1
    3.36278068810442	3.41074385787854	1
    1.80913370829291	3.17557239985633	1
    -1.59335469603891	2.64454888986985	1
    -0.735293470649240	1.69761457507026	1
    1.46149445409731	2.51621553558738	1
    0.0529118189982672	2.66819865723460	1
    1.98005993371040	2.93220202949268	1
    1.33800754576975	1.75196414069653	1
    2.15416642093573	1.87958480581846	1
    1.28247803384193	3.41980786237121	1
    2.92917443686860	2.35403149513118	1
    -0.470738428706770	0.823541040173880	1
    2.78697845539703	2.47701324514116	1
    0.518320239654389	2.40424725623016	1
    3.02250396484622	2.55097729604176	1
    -0.839762255830834	2.00164329123226	1
    1.97089798972180	2.55221447381585	1
    -0.289887426353096	2.07610884850028	1
    -0.718531739571935	2.78476179702835	1
    0.159548738233182	2.22484818846287	1
    0.0714188829572822	2.17574623522435	1
    0.464260706095287	2.07341615166054	1
    2.02556814345805	1.45062673448325	1
    0.737020824815466	3.63975837407915	1
    2.14750623700563	2.23282234495443	1
    2.53296991781638	2.22406578277892	1
    0.240179086504137	1.76265939266772	1
    2.36877906808012	1.99152631129811	1
    -0.893624073060507	2.42679500507945	1
    -0.723268011951694	2.32859127688179	1
    -2.59545056360228	1.52181861224035	1
    0.657633251364557	2.01724805594542	1
    2.85299832181112	0.880567071545951	1
    1.95540343663813	1.24583714921799	1
    0.960390843211572	1.77723068955129	1
    0.407588468887096	2.22032850805760	1
    2.04391159921017	2.62263432946166	1
    0.139422860698296	3.46606702350245	1
    0.183723949354679	1.53015817186665	1
    3.39797551359993	0.230231575623043	1
    -0.497286845513600	3.06777504068115	1
    2.70349699479679	2.60386143158266	1
    0.185856815839956	2.77421368229388	1
    -1.25352566567544	2.61455356095118	1
    2.97698189327392	2.79489518362215	1
    2.96340883068021	1.70435402189933	1
    -2.93795294934390	1.69031063599255	1
    3.20630707170919	1.90544165791216	1
    -0.781101952149974	1.34505757509867	1
    -0.110254964395879	1.88887924037098	1
    -0.148493182169401	2.78931982306986	1
    1.57894475487651	1.95012113995437	1
    0.358692212589937	2.45874960327494	1
    -0.552629537041592	1.95247795012209	1
    1.32766937201009	1.23501275935944	1
    1.34151713650691	2.68772457510701	1
    -0.268674132203379	1.66058617107181	1
    1.25359742611476	1.23987634100201	1
    2.46812252319339	1.25605626114578	1
    3.09198334328765	2.36801154533005	1
    -0.566282976514046	1.25079006691005	1
    1.85783758415852	2.81172759538976	1
    0.875253856836606	1.99065650370977	1
    0.535551500053441	1.93194332848913	1
    2.07892805534457	2.03389849312396	1
    1.10683822574576	2.60514294021722	1
    -0.0297454662589745	1.33412963408874	1
    -0.274875295549741	1.98869630893035	1
    -0.611926311082764	2.95137346161668	1
    -0.215504880369949	2.27174327492410	1
    0.403380418836380	2.04217817886391	1
    3.55063319312173	2.10491549317915	1
    0.795219956773059	1.21562325860728	1
    0.789938421848367	1.90695351738886	1
    1.29465079260286	2.47202780980209	1
    -1.12683343851593	3.06350234612551	1
    -0.0799676654748724	1.69008029097531	1
    0.487673784247081	1.50046684588507	1
    3.91777486308584	1.52272565018330	1
    -1.15152954154729	1.99965584856603	1
    2.47432687749385	2.74948515633273	1
    1.00678950632924	2.25465914519267	1
    -0.227915979053637	2.45191696972133	1
    -0.0543477750084895	1.12278291234785	1
    1.51878847200521	1.85528303596989	1
    -1.91498109886475	2.76529330031460	1
    -1.78417806800794	1.60752691808620	1
    -0.578763215473953	2.10444755619117	1
    -2.39019616041897	1.28932825131823	1
    -2.30764835245406	1.08991109739254	1
    1.89064200659468	2.00785978957407	1
    2.03976346376942	1.82002963509455	1
    1.24263738709720	3.19095386811925	1
    0.0285425144832171	2.31933541717718	1
    -0.625828512267571	1.82791530314014	1
    -1.29694211271572	1.59645498766398	1
    0.0985414341762946	2.13809274804248	1
    1.34787113097625	2.07350197353985	1
    0.175544605294486	2.90718939546573	1
    2.41317338702067	3.04616386009345	1
    0.875591407386426	2.24008553295827	1
    0.344523616420434	2.77887075834446	1
    0.350088483934827	1.72226276593527	1
    1.42188219517947	2.57859804737845	1
    3.21381719211517	1.86799247354647	1
    1.74589088462987	1.00573740899835	1
    2.11557922702034	1.58199599894400	1
    -2.04013802060973	2.60232796518928	1
    3.20205165328965	2.60390719877483	1
    1.56234192734599	2.30558982629769	1
    2.08517734695935	1.31728822189134	1
    -1.48620907555365	2.55332048785093	1
    2.61148249074725	1.71621279484903	1
    -0.905021070862110	2.12951279748967	1
    3.16479611450917	1.41887494399374	1
    0.154029113586113	2.28452711486875	1
    1.91264842854147	2.50351640809194	1
    -0.582913589306954	2.19705796223473	1
    1.31322945294724	2.22036323126808	1
    -0.228788488980173	3.05928224414262	1
    -0.857386001496367	1.96205173656563	1
    2.76983398450783	1.24742630849804	1
    2.44015841669802	2.31394357034122	1
    0.408432233213481	3.09948140659388	1
    -0.114410818902137	2.88941697026244	1
    0.407100252949123	3.41779243528360	1
    0.712740414645104	1.70908969851738	1
    0.593558606206566	1.35437115259034	1
    -1.96654861654142	2.28811237465077	1
    -0.0767496998679684	2.44666392158934	1
    1.26057334891416	0.945631825339162	1
    -0.351949202522450	2.25900916459579	1
    -1.17945381425960	2.46633417748718	1
    -0.467568620732904	2.40136460898594	1
    1.23862083846545	2.22083791435337	1
    0.420694076530883	1.86990301998729	1
    -0.531859248789545	2.62637095213525	1
    3.32802355934814	1.67779513521650	1
    2.90746315820912	2.33166989338252	1
    1.43223079754213	1.85780610453333	1
    0.360886580813031	1.84795416252802	1
    1.41836527275590	1.72693535248849	1
    2.02833084383351	1.35904677193309	1
    0.435180523147467	2.64715310736853	1
    -0.698375319323621	1.43125428012617	1
    1.19444497158568	1.57143006912886	1
    3.45531952747569	0.961783186415359	1
    0.298242242365380	1.46729618422928	1
    -0.0391444929009328	1.63913735682960	1
    -0.209124345388064	2.28569943039595	1
    3.81252464400128	1.73130747390776	1
    0.963772214614553	3.09667161402995	1
    -0.904209679864521	2.43725922132225	1
    0.548280045329855	1.02311177792852	1
    2.98209960235769	2.87625017644987	1
    2.46854911783815	1.09486636437231	1
    0.967808350894169	2.26454239039685	1
    2.31417169816689	2.26148586739507	1
    1.52409461748456	2.65894850182436	1
    -0.315502917866959	1.69566799280389	1
    2.26672362611252	1.27184464297027	1
    -1.02427251575416	1.59980957487435	1
    2.85199714217155	1.93519657655905	1
    1.86070097424808	1.51099712259492	1
    1.81722939713941	1.87322152483130	1
    -0.257315712745652	0.444085419761545	1
    0.673818612834761	2.05544261993118	1
    1.63867543397301	1.37007407166142	1
    4.29548224168348	2.04087657428792	1
    0.395997195725214	1.14587814316122	1
    -0.367617690505528	1.80069451938889	1
    2.71404805200950	2.33988704319061	1
    -0.689040843335554	2.54395006354923	1
    -1.60655257005459	1.11166719050019	1
    2.15504096115465	1.49167698498253	1
    0.818526998342130	2.29383839350294	1
    0.823731392013672	1.70256188550563	1
    1.98150639006393	1.91507074927960	1
    -0.332870153654826	2.94474647908009	1
    -2.85833589458332	1.66402610482239	1
    2.84326036617204	1.72950443906094	1
    1.37672155753240	2.82789021943827	1
    1.97549066434863	1.15885128121590	1
    2.63347366613122	1.08592402808597	1
    1.13822825513100	2.02774948477578	1
    0.670863129792378	3.02422037386870	1
    -1.00491217945087	0.919457143051295	1
    0.277243072529953	1.88491536694788	1
    -0.435001760058096	2.72174438371371	1
    -1.58089987878169	3.45903816033268	1
    1.52973221864635	1.57105506398650	1
    3.60218775876145	1.88011523273458	1
    2.62158432487766	2.77855139329193	1
    -1.75781025020838	1.84824410871244	1
    3.37803057744834	2.21599028955715	1
    -0.346098830363456	1.55398808498706	1
    1.90236813756289	1.72879622465182	1
    -0.105666124234816	1.83594061103424	1
    2.34262323115159	2.05305174562525	1
    1.09876921234816	1.81150277122060	1
    0.966608028921029	2.33691241755861	1
    0.823689860953087	1.94945325230174	1
    0.419170804093286	1.86820804250038	1
    0.149070681064704	1.65062764797219	1
    0.615428281436471	3.16201035523892	1
    1.71276028052706	0.826225385875133	1
    -1.07854614441831	1.97061292997584	1
    0.248665823531865	2.47021549757460	1
    1.54544798803974	2.17303116878530	1
    1.00188625822723	1.16349907676246	1
    3.50697419187694	1.82850000343925	1
    0.161203634132291	1.30647186284874	1
    0.141564288672490	3.25713955619499	1
    3.44485047085627	3.24647803770789	1
    2.61135348875181	1.92727121676788	1
    2.05487350292847	2.24731512195663	1
    -1.30073459750214	1.58397980200452	1
    0.551074578398585	2.34210567387313	1
    1.68849008785765	1.53890381649265	1
    2.26227822633084	2.97148694155939	1
    0.455954545703309	1.78844599129861	1
    1.37854458676860	3.22293763885626	1
    1.71925044754000	3.26979910507886	1
    -0.310387636175454	-2.23153168741952	2
    -0.934089733648743	-1.54519135326412	2
    -0.467063341039314	-2.69431693577286	2
    -1.52725849938013	-4.06808090325163	2
    -2.84861373495908	-0.968569243913297	2
    -1.03315917202661	-0.836392717658259	2
    -1.52945081330688	0.177925991170179	2
    0.272277463024252	-1.73027958748459	2
    -0.951527999228587	-1.84927294354937	2
    -0.0243740341490367	-2.28862762294620	2
    -0.615863160507723	-0.991725917827129	2
    -0.940935570384387	-1.24732773069878	2
    -3.86843684810980	-2.31417047925927	2
    -2.57541255856745	-2.04725363847414	2
    -0.634871202834112	-3.22533407947374	2
    0.421500629873144	-2.89813841952592	2
    -0.456791210518503	-1.46061556026566	2
    -0.221449790774511	-3.65527623122871	2
    -1.66584128372486	-1.97740661983487	2
    -0.889659909110650	-0.129782237998816	2
    -0.957191125028829	-1.13609174513829	2
    -0.612655776722733	-1.62958614937591	2
    -0.993471440517814	-1.43130323448552	2
    -1.46738402646469	-1.66455407264236	2
    -3.33940764839619	-2.28325731527929	2
    -3.92625631928848	-3.65295906028593	2
    -1.01431911662476	-2.20942288610598	2
    -2.23266610481183	-0.733094002612328	2
    0.614170279014691	-1.84404514209825	2
    -1.59853740972766	-3.37335378250831	2
    -1.18875486539556	-2.95592912966511	2
    -1.90474004454223	-2.93986362364345	2
    -0.461792254828884	0.659204872232193	2
    -1.24652581552721	-2.51377131403041	2
    -1.55263847786598	-0.659335919834218	2
    -0.204965715890677	-3.07835427050231	2
    0.505949048569452	-1.69539069152493	2
    -1.25929071458034	-3.30167254366351	2
    -1.45329084238931	-1.28119364062025	2
    -1.59378208153597	-2.69967960555165	2
    0.657876927467526	-2.75122951337310	2
    -2.05969164865287	-0.777038119979204	2
    -0.687303404972082	-2.39144914494798	2
    -1.75617449175296	-3.20316354070852	2
    -1.44428863272754	-1.88898910849531	2
    0.516802020734900	-2.77289110491229	2
    -3.21076628384575	-0.214652950150557	2
    0.235656867720272	-2.24051440380587	2
    -1.14911236694953	-2.07853558048726	2
    -2.58236300436783	-3.39749417176423	2
    -0.263713847148100	0.458512609215667	2
    0.831682851530392	-2.08393284066220	2
    -0.885375810711882	-2.82261961561946	2
    -1.05237777281838	-4.41903132931144	2
    -1.82602079657629	-2.81518110811275	2
    -1.47450637332984	-1.11591227065293	2
    -0.837695490924353	-1.99112891002352	2
    0.503772962240550	-0.982491942689058	2
    -1.27421476316112	-3.76916087911187	2
    0.0622801415964360	-1.35996836839431	2
    0.243234800019898	-2.91886304005307	2
    -0.114965229811251	-1.84434516078637	2
    -1.03478091646385	-0.472485719700510	2
    0.222020356133710	-1.32086267515154	2
    -3.04755746928280	-1.73397536103346	2
    -1.41249857342550	-1.22307108058557	2
    -1.73156502345195	-1.77569518325704	2
    -0.742094417801203	-0.700017850171123	2
    -1.24491275262119	-2.52862116083992	2
    -1.80859407972665	-3.44903472811192	2
    1.65126401905300	-1.88453932566484	2
    -0.363787385977324	-2.96903265676122	2
    -1.68394161548948	-2.51953284260788	2
    0.231915878657905	-2.17557092867788	2
    -0.623009572802111	-1.54073779499851	2
    -1.18046364650384	-0.838619594274581	2
    -1.97957122074801	-0.874507864298584	2
    -2.08180656814877	-0.707787688204998	2
    -2.29213171892552	-0.351559670403015	2
    -0.287271532862648	-3.34342590146407	2
    -1.91044099841237	-1.42413336314475	2
    -1.32168223315596	-1.70986063364701	2
    -0.0602885106603939	-4.27016064338500	2
    -0.150160194208001	-0.791494432320046	2
    -1.19917191161806	-2.68895112784025	2
    -0.615647750316442	-2.34747907872228	2
    1.14439584050046	-2.59281654733375	2
    -0.610850531908339	-2.84891536112328	2
    0.130871816112224	-2.20959543033864	2
    -2.43512082757038	0.411329054129355	2
    -0.554467809907876	-2.44039222410484	2
    -0.0191711349105359	-1.89573198165047	2
    -2.01188587294146	-1.26178284949416	2
    -2.41523133203689	-1.91032605141725	2
    -2.60714775073888	-2.39316877117065	2
    -2.09238458059558	-2.04217127571499	2
    0.445436252824795	-1.43181854274938	2
    0.344520342317261	-0.795862492993640	2
    -1.13247721986157	-1.37054401762598	2
    -2.29160274499548	-0.223802358668605	2
    -1.54753140183007	-1.76727782026563	2
    -2.72853717504117	-2.93461716320278	2
    -2.61691348239220	-1.65147172167033	2
    -0.154841489547546	-1.45908135177144	2
    -1.15080800841007	-2.11165026236726	2
    -0.933229717848754	-1.57949446806009	2
    -1.91825033242900	-0.936094286983232	2
    -0.381822225829966	-3.52442301860361	2
    -0.309208403056970	-2.23032013886121	2
    -1.28292528979165	-1.86749695197344	2
    -1.16965402984452	-1.37272157613288	2
    -1.30226975258339	-3.23323074576827	2
    -0.943098457701282	-2.00807907428116	2
    -1.98085100225472	-3.14577976996913	2
    -1.22033882804203	-1.27059490650837	2
    -3.63193108279580	-3.11058334232267	2
    0.102891612928375	-1.22160079536067	2
    -1.40107196092072	-2.62656813971079	2
    -0.119722341705324	-2.40468500363314	2
    -1.69052410756657	-2.55362806958546	2
    -2.54271964039796	-1.91589058634527	2
    -0.343523108605652	-2.49149022102082	2
    0.316883575333585	-2.52906321428936	2
    -1.87573185497794	-1.20977920086606	2
    -1.12291585554071	-2.95459637081458	2
    -2.02712857136281	-0.961832058100867	2
    -3.53522567663707	-0.984866486339600	2
    -1.72315772679770	-2.05195287776772	2
    1.42434912296780	-1.52067385879605	2
    -1.13666037772266	-1.55037662787650	2
    -1.66613214659963	-3.18296698080076	2
    -0.457143150660647	0.509781116038181	2
    -1.22098471988688	-0.882609121489547	2
    -0.356343915708505	-1.67331661986542	2
    -0.0786550935529085	-4.73343627490684	2
    -0.184995446264432	-3.10213062754662	2
    0.446478297792453	-3.26649328025486	2
    0.0633851811636195	-1.84943984630028	2
    -2.36855998994580	-0.994490576724791	2
    -0.997130789427785	-3.04034037828003	2
    -1.41856760217309	-2.28964625570538	2
    0.350040150964700	-1.79746181028561	2
    -0.755415279047432	-2.59781844643693	2
    -0.352933669038259	-2.48624095000810	2
    -2.68913988409750	-1.67386209746412	2
    -0.651719917802835	-1.51374444462605	2
    -1.26231084944852	0.779384007100693	2
    -1.26296966895235	-0.810204720079530	2
    -2.23682954171640	-0.835001138758917	2
    -0.375248173785158	-1.55349331009271	2
    1.51410020270461	-0.634119318427798	2
    0.382174197104991	-3.35944655290700	2
    -0.682865815806683	-1.41058114576690	2
    -1.34694250851133	-1.55468097121420	2
    -2.02544099148358	-2.65234877306471	2
    -2.06016367113451	-1.35042861388722	2
    -0.959277599912767	-1.03167390213503	2
    -1.03762209668129	-2.52765134755163	2
    -2.68754686476036	-0.129814097497158	2
    -1.15977824869436	-1.79917602911918	2
    -2.57950364225661	-2.52265489909263	2
    0.00155330436570167	-1.71213265270818	2
    -1.12978628406773	-3.39165516852278	2
    0.0921150204253451	-2.63157279154719	2
    -0.844093063839660	-2.36041467500693	2
    -0.0396728868784710	-1.44548126171249	2
    -0.621844714898918	-2.86019974123165	2
    -1.07483069301477	-1.89741453350577	2
    -0.738970626890969	-3.59759462929014	2
    0.867969643742365	-0.722426725222320	2
    -3.95131862925999	-0.854947488627092	2
    -2.37808540058566	-1.35270964216778	2
    -1.56079425806844	-3.09204770476217	2
    -0.332624591684226	-0.600519433513413	2
    -0.116811636576998	-2.05164198709530	2
    -3.20068909585942	-3.26262554945542	2
    -0.180169173681575	-1.61551669533017	2
    -1.93214436712871	-0.669513630318290	2
    -0.589120017172482	-2.51431952144892	2
    -1.18785811174528	-0.966864765065473	2
    -1.83453974391459	-1.45090440478646	2
    -1.17576680832153	-3.85834206474533	2
    0.123205389203243	-2.11877467377637	2
    -1.85688894965492	-0.961077127314294	2
    0.0149669270654607	-2.47650099648865	2
    -0.781804260253942	-0.901474365264974	2
    -0.803778819226794	-3.65271266033971	2
    -0.679127200685969	0.0943513226193558	2
    -1.52747702694411	-1.86880569947938	2
    -1.04953817408260	-1.80483437010876	2
    -1.22531806348295	-1.27051500091278	2
    -1.78579658589578	-2.14062353116164	2
    -2.08953176768977	-2.67662755112446	2
    -0.667005897592690	-1.32960971159173	2
    -0.463299687640113	-0.737577760861513	2
    -1.68572522498320	-2.93892458223103	2
    -1.63277217788072	-1.30354109857136	2
    -1.02628214412421	-1.35851514446071	2
    -1.52240929806981	-2.12350610427161	2
    0.0415395073786338	-1.20926370539300	2
    -1.04154854280782	-2.11018661331519	2
    -2.18504517169308	-1.05966580312936	2
    0.211116299213722	-3.11130041371660	2
    -2.34157397591626	-4.19015927126862	2
    -1.33882578169793	-1.88140790368051	2
    -0.253558575619576	-2.38559587225172	2
    -0.310698193653987	-3.00206431484621	2
    -2.12026594227974	-2.39975266408945	2
    -0.852296942624990	-0.592027407513589	2
    -1.21935268674258	-1.03843590891724	2
    -1.68690349414040	-0.503970846923828	2
    -1.04513236837681	-2.95575991172932	2
    -0.442190144781815	-0.636649177413588	2
    0.730986622604762	-3.41955463009533	2
    -1.71026520378744	-1.94819662165205	2
    -0.527452199753948	-2.67616033113518	2
    -1.30539456955551	-1.36182576504006	2
    -2.72306179809562	-2.79053327524638	2
    -2.07380215138405	-0.728705334357133	2
    -0.965251006426627	-1.48375192282740	2
    -0.774784394443729	-0.212376725139720	2
    0.0521610467109230	-0.422846535259319	2
    -0.0741762084430734	-4.27698495423505	2
    -1.68659233829840	-2.71618224141462	2
    -1.52269291096569	-2.72770042967216	2
    -1.40460428851225	-2.77225359808668	2
    -1.33772674821458	-0.817290927051766	2
    -1.04440372646130	-1.42426376426828	2
    -1.00354031447889	-1.82440013042544	2
    -1.32034993578153	-1.76286299308342	2
    -1.42095953142219	-1.87959448979845	2
    -0.0627901950705300	-2.66773693416772	2
    -0.985047819399222	-1.85205966160612	2
    -0.0210797978149880	-3.00220778252617	2
    -0.941985226070347	-1.87356488945152	2
    -1.98849456979575	-2.97667369586016	2
    -0.167818221055892	-2.18906056319472	2
    -2.44979771530454	-2.75646421280144	2
    1.13316295231929	-0.956232379716762	2
    -1.86789123336239	-3.13793233496855	2
    -0.429524488147674	-2.51908020547437	2
    -0.934605542605394	-0.842877735049017	2
    -0.346199946699204	-1.24787751720203	2
    -1.00941739570003	-3.15816183686204	2
    -1.83044422708701	-2.40283062514859	2
    -1.22558892960916	-1.93708726149952	2
    -1.65004805402606	-2.39993772732279	2
    -1.60716377509085	-1.82767606924426	2
    -0.746135061501171	-2.30907109469842	2
    -0.342313627139470	-2.44605902181917	2
    -0.634853759620572	-1.81633946307887	2
    -2.75221123114020	-1.32416094860295	2
    -2.61553372195090	-1.15820631630925	2
    -2.19495662378768	-1.24407777110926	2
    -0.222708581960948	-2.59082674730457	2
    0.962592496386810	-1.66371529652988	2
    -0.361768118909848	-3.03490714871514	2
    -1.25015596463586	-2.11326572982229	2
    -1.37134054895515	-3.51309224317994	2
    -1.98912166042735	-0.794009637634717	2
    -3.32001710609875	-1.94815819904904	2
    -1.59860139494161	-0.256998955970272	2
    0.353811135723513	-1.20398911333253	2
    -0.166342176059333	-2.39552464481830	2
    0.535202264184396	-1.70328356055745	2
    1.14059728004187	-1.76081007169889	2
    -0.243590196482061	-1.39745729962096	2
    -2.51984328951400	-1.34142363213293	2
    -2.64682305670103	-1.86699165311864	2
    0.746637173542067	-2.41200805286518	2
    -0.343878900693697	-0.440000696760032	2
    -0.192261601778065	-1.53462542646109	2
    0.138055375799523	-1.27530127164819	2
    -0.880793613751649	-0.931376035774254	2
    -0.00965893526194539	-1.56677278144837	2
    0.224992954266040	-0.995965838331538	2
    -1.58871843098242	-2.94774742751256	2
    -1.95244476696295	-1.92114588240744	2
    -1.28414235678403	-2.03403584957852	2
    -1.64753516873300	-2.09345732261700	2
    -1.64194894249586	-0.879951936300127	2
    -3.61862462371681	-2.00243355559052	2
    -1.01009617736081	-3.09020936806078	2
    -1.60458808452461	-1.68831066156947	2
    -1.87854194476564	-1.35738894317847	2
    -0.205811391913226	-1.58767045846552	2
    -1.55909865868355	-2.10395825438163	2
    -1.76928725803331	-2.53433617280189	2
    -0.360006204461635	-1.80799047405747	2
    -1.05692587244651	-2.98986114338233	2
    -0.462604573250955	-0.831093730135601	2
    -1.04811085730829	-2.48549571827326	2
    -2.71476305922275	-1.84452448809444	2
    -0.959092352248364	-1.23124137079303	2
    -0.959273262500398	-3.31096742037816	2
    -0.904709408285316	-1.65788573729931	2
    -1.09806808481574	-1.58946632686356	2
    -0.533269000401694	-0.989356027925762	2
    -1.39648346217912	-0.368539306851375	2
    -1.65851405984130	-0.401948517273337	2
    -2.83767386699204	0.290958501679957	2
    -0.107685222210462	-3.15634190212422	2
    -2.06901240338388	-2.71386535358664	2
    -2.06859346263059	-1.61736196195404	2
    -1.95925377694129	-3.42922428394369	2
    -2.95488374018535	-3.18158259868045	2
    0.0317347401402968	-0.942133541487370	2
    -0.814323625903029	-2.22857298748150	2
    0.00525088398120399	-1.59875881363231	2
    -0.598831318634984	-2.13723898105117	2
    -0.614672989850263	-3.13319420163449	2
    -3.03806569181763	-3.07094269301106	2
    -1.38262652366557	-1.13170101685462	2
    -0.0922633763567908	-0.504561459028127	2
    -3.72627383671239	-2.80041966023535	2
    -1.77590029907800	-2.41550272897956	2
    -1.40979134094414	-1.45851224873350	2
    -2.82586417788894	-2.39228841442038	2
    0.257680920545888	-1.97990980735224	2
    -2.44635559878291	-4.79591814701568	2
    -2.05624295490104	-3.68906524473623	2
    -1.42270706811689	-1.39075258525401	2
    -2.17840227436171	-1.21363375441867	2
    -2.32914499142949	-0.881311803519092	2
    0.598365926703067	-2.84544304298080	2
    -0.643255670219147	-2.40803570375834	2
    0.0843390852389934	-1.39378436497890	2
    -1.66697693009880	-0.592773831507341	2
    0.626745399948540	-0.926950247934740	2
    -0.672414331967487	-3.53154556631934	2
    0.352522637403434	-1.91797654912187	2
    -1.82310534193298	-2.89450943912445	2
    -0.597245086582475	-1.61359404985948	2
    -1.14064233777260	-1.60271945361013	2
    -1.70204836505010	-2.13961929003704	2
    0.235878337869599	-2.38775241053189	2
    -0.141735788903578	-2.59489245821041	2
    -0.828502996088616	-1.23858904430036	2
    -0.0978646928888770	-1.06281312750937	2
    -1.93902400437420	-2.82819794443671	2
    -1.39427299354969	0.249866344006670	2
    -0.904924677326023	-1.89216268997124	2
    -1.32085715610154	-0.990220924731499	2
    -2.50193150440295	-0.281456247485279	2
    -0.392391184147355	-0.546123544054292	2
    -0.152929876732929	-2.48572749212263	2
    -0.651820459529929	-1.88214926705837	2
    -1.20422393497840	-1.21321276545477	2
    -0.421613896630912	-3.25326083534703	2
    -1.67320115671363	-2.67133610282419	2
    -0.0852624479562102	-2.41703552582237	2
    0.844602969463312	-2.99035060443023	2
    0.903593972626629	-1.41354457280497	2
    -1.18301884299683	-3.88352275972250	2
    -2.06271253435047	-1.68740642193451	2
    -2.19985135052367	-0.710004616120628	2
    -0.347561513058305	-1.56644557331382	2
    0.00771765065487395	-1.97354652691640	2
    -0.419150422416612	-2.19813434187818	2
    -1.87191613336216	-1.74821819929365	2
    -1.93325806411695	-1.33480284571861	2
    0.715082565012912	-1.77203690606901	2
    -1.07327809054543	-1.58290015138732	2
    -0.696446289521703	-3.55612029222875	2
    1.01362804794963	-1.11417208800095	2
    -0.491160775940306	-1.80373580945816	2
    -2.17948683062784	-3.44259407437159	2
    -2.28527398831899	-1.59616635540744	2
    0.176292317925610	-2.85783893656436	2
    -1.04846823034867	-1.72851746386366	2
    -1.03833982297236	-2.89332954613358	2
    -0.802503022927876	-1.08351554517757	2
    0.819118229376311	-1.64172255911185	2
    -1.08986028032381	-0.763440335594018	2
    -3.47150050181481	-0.258151782557863	2
    -0.768101308728363	-1.05568558215869	2
    -1.07591282512733	-1.87764977308524	2
    -2.26624463234343	-1.44137613788325	2
    -2.61313183155456	-1.78632629093252	2
    -2.30471698162323	-2.36512217921553	2
    -1.76038184987878	-3.63521501833666	2
    1.07551876753409	-3.30733959141121	2
    -1.15230710676659	-3.33115350173336	2
    -1.18338987511929	-2.56780890053918	2
    -1.11088585618127	-3.39808425314404	2
    -1.83227505417862	-1.40561210105766	2
    0.565948658372208	-1.76506303386076	2
    -0.706997101150841	-3.69905696402177	2
    -0.773837557362752	-3.97479380075522	2
    -2.10309516122273	-2.36908619866192	2
    -1.37657318496037	-1.33643223891869	2
    -1.07152828000462	-2.45731181102389	2
    -1.20009544477679	-3.48124581883144	2
    -1.48450148214270	-3.47471076726943	2
    -0.259664499100813	-1.07269508254690	2
    -0.367195930929824	-1.96105071506627	2
    -2.34436375741424	-1.58626319295633	2
    -0.0780443244569079	-2.69802832213466	2
    -1.59849479699237	-2.20032548387826	2
    -1.72725114932259	-0.774337767037896	2
    -1.70816734873435	-2.32292394331809	2
    0.0450597473316559	-2.06682151342142	2
    -0.629411295485014	-3.35199325271732	2
    -2.15541871235351	-2.38001387556443	2
    -1.80731300921036	-0.488339245799372	2
    0.0276122068900746	-2.88467940068988	2
    -0.946246379889011	-1.40655817356052	2
    -0.136237980780510	-2.30682222873736	2
    0.131517668938548	-1.46442716981136	2
    -0.865688924197129	-0.687128268850962	2
    -1.01723666963235	-1.74323180990878	2
    -1.31665222772616	-2.46531628443839	2
    -1.03943896775983	-3.35638753155671	2
    -0.689136519767400	-2.07877813926687	2
    0.0874670532804673	-1.46543659549307	2
    -0.968758938537593	-1.65324300260535	2
    -1.72738518787498	-1.99312038073847	2
    -1.01548588588349	-2.44191323311155	2
    -4.08332149434866	-1.80043313039836	2
    -4.11535059476019	-1.86374638848112	2
    -0.708361139121137	-1.54600450356977	2
    -1.34198370023637	-2.85843630856460	2
    -0.565831366881962	-1.78124223009042	2
    -2.32837728190169	-0.240275297094952	2
    -1.78967032534176	-2.73255575389153	2
    -0.0243394114020681	-0.421466846049968	2
    -0.00229898622248015	-2.04068735283405	2
    -2.73224080483576	-3.44865446495605	2
    -2.45107957735752	-0.638230247746398	2
    0.353664040226350	-0.801674766090938	2
    0.277878772167532	-2.63848674407169	2
    1.33252986378447	-2.33659741693032	2
    -0.496475472940708	-0.922296360052885	2
    -0.00557466539048146	-2.20041167969418	2
    -1.03365947964672	-1.82050776525097	2
    -0.705967647847428	-2.99523988876171	2
    -0.614673593612801	-1.97916786516017	2
    -2.49864760309159	-0.971147375807815	2
    -0.0841116223796332	-0.881249676420870	2
    -1.03953194607136	-2.07246533720685	2
    -0.733681636034507	-2.03400035170586	2
    -0.305374802458429	-2.07699395634030	2
    -0.349833774992787	-2.10175512554054	2
    -3.21603011143515	-2.59150777046022	2
    -1.87792108750567	-0.222045315053595	2
    -0.793298975343593	-2.14750158035805	2
    -0.614061511469248	-2.41694436313888	2
    -0.844267626692267	-2.24603138614179	2
    -2.12572522458717	-3.04035740872403	2
    -0.918234311524775	-2.38799359124106	2
    -1.90994349006102	-1.96558348038381	2
    0.619315945186005	-3.09408013231606	2
    -0.312743268097232	-1.93453574643007	2
    -1.10391894456359	-1.25241513481790	2
    -0.184683702832998	-3.02894931450607	2
    -0.897701216751985	-2.01812360001523	2
    -1.34137251698927	-2.53746884545846	2
    -1.70863179759171	-1.39496401207839	2
    -2.08578251573531	-1.01003642515715	2
    -1.52871376766741	-0.978064517675528	2
    -0.202537021164779	-2.29600642474007	2
    -2.88845100163391	-2.19988372536458	2
    -0.429947857455468	-1.85671699626224	2
    -3.32632170009248	-1.87255065221860	2
    -1.03400567024739	-0.700009246256265	2
    -1.37694159821308	-2.39130834034685	2
    -0.0945661071617194	-1.21900096752797	2
    -0.709789847152762	-2.38269803099081	2
    1.27975736887045	-3.72891465881516	2
    -0.660818182427366	-3.27600119839646	2
    -0.844596830958682	-3.59275756143130	2
    -0.984189656812919	-2.90754073379141	2
    -0.584311254480856	-0.813538472102939	2
    -2.14806469111188	-2.16923958835145	2
    -1.04445784122100	-2.79581165576204	2
    -1.35178025947604	-2.42062425249432	2
    1.16090158161885	-3.65211856361873	2
    0.258954033211960	-1.27578381224773	2
    -1.37102791059223	-2.13257001231492	2
    -0.279909950554544	-3.68030109742858	2
    -3.01825425323906	-1.21917311828541	2
    0.146546094365659	-0.262216138496850	2
    -1.27762173786530	-2.77893048222840	2
    -2.25097735140846	-1.32596788768795	2
    0.587082509277191	-1.29646621321274	2
    -0.980233966245535	-1.51153802891465	2
    -1.76147789308117	-2.15616534168299	2
    0.0679935548226136	-1.06459412168699	2
    -0.0214022565933583	-2.72942457197311	2
    -1.63309656229184	-1.94472385023418	2
    -0.218734674703933	-2.42570558326272	2
    -1.54795109628850	-1.90024128914679	2
    -0.939874920634699	-1.68061994883721	2
    -2.81300771301267	-2.31945116391850	2
    -1.74575399976012	-3.24253340040246	2
    -0.813018706658766	-1.46400119576122	2
    -0.108209273587457	-2.49161534458891	2
    -1.32921751050599	-1.92784532825640	2
    -0.330066019151182	-1.59916643043317	2
    -1.04922253957097	-1.85343486612750	2
    -1.80247655424597	0.664250143226307	2
    0.219337046296894	-3.92118700394802	2
    0.245810395476468	-1.97572040322430	2
    -0.641992110803202	-1.75236627317571	2
    0.850595161464165	-1.03419918364220	2
    -0.979522810563494	-2.39157521681757	2
    0.462056628453292	-1.77040767112269	2
    -0.796319839375389	-1.41637231894917	2
    -0.126649092592207	-3.88732906465409	2
    0.250656569085903	-1.41752144202359	2
    -0.300689455900705	-2.39107316758738	2
    -0.232311976406172	-1.07321239587254	2
    0.761056751281351	-1.39439130328651	2
    -2.04079218946409	-2.09321321916755	2
    0.0130472959306258	-2.72775045770918	2
    -0.783486702711137	-3.15915508854673	2
    0.0875202075090629	-2.99095912231893	2
    1.05058419190066	-2.48673765668898	2
    -1.05094628104891	-2.46860292111285	2
    0.135758702194356	-2.57659510632539	2
    0.269632787023886	-2.12373546062669	2
    -1.06013435510795	-0.637748278102319	2
    -2.17712470143409	-1.81407076812359	2
    -0.438842937339074	-1.98681964065650	2
    -0.784266298150224	-2.72105969175406	2
    -2.52441035898856	-1.77938097112198	2
    -0.831643709133855	-2.56984989677121	2
    -0.928267641983258	-4.81476418501057	2
    0.505890916474055	-2.17959602358171	2
    -2.16720737476316	-1.19244168426693	2
    -0.700940721356467	-0.986127248645161	2
    -2.63976359125509	-1.79847867416534	2
    -0.574981863784512	-2.29540002373887	2
    -0.742720166810230	-3.40044065166058	2
    -1.55818044803369	-1.89982065599376	2
    -2.08530289864125	-2.69614408848973	2
    -2.27668246827953	-3.03166385728041	2
    -0.928842867753549	-1.94813604188420	2
    -3.02265903316559	-2.53321405989764	2
    0.152454341677487	-1.21043788373565	2
    -2.32574943116236	-0.949640745392916	2
    -2.09064044178726	-3.12828760205670	2
    0.0967202754673815	-2.11059463983785	2
    0.134886977667473	-3.52136629978657	2
    -1.89474855779492	-2.02192726086667	2
    -0.318034104228869	-2.35306642253285	2
    -1.61800574924745	-0.825524936471070	2
    0.232274701537511	-0.510490091177981	2
    -0.0936742645656620	-1.31823674467175	2
    -1.79926641137595	-2.05147102529154	2
    -0.777846784073033	-2.19294306164927	2
    -0.747185845555017	-0.865097342773531	2
    -0.0769862371374327	-1.75091909063040	2
    -0.388773373440707	-1.67536345759349	2
    -1.09941472513134	-2.71704690192925	2
    0.289141358191950	-0.999020613999776	2
    -0.755676079038423	-1.36263377313167	2
    -1.84601940010296	-1.42132892959564	2
    -2.05171794126506	-0.805237134419860	2
    -2.68044484862042	-1.91632039544155	2
    0.164356736046684	-3.21214779169833	2
    -0.996608692945777	-2.07791925611247	2
    -1.44213421076704	-1.80431573962877	2
    -0.0778186103839036	-0.652391694340338	2
    -0.677318908345893	-2.04659672596894	2
    -2.59014848084703	-2.95994822892238	2
    -0.343753351611487	-1.40446767547124	2
    0.0136515736996878	-0.546580984222088	2
    -0.855010778048427	-1.38958252424125	2
    -1.00038700208592	-3.33789546454257	2
    -1.91665282758399	-1.23681086631105	2
    -0.183872727578518	-1.29070747986214	2
    -2.49524182156958	-3.42768862270169	2
    -1.34295133105490	-1.89929569418714	2
    -2.36159542799308	-1.22859416624455	2
    -3.62495313921221	-2.45809254186177	2
    -0.740548874058931	-1.29966302603733	2
    -2.67921920336005	-1.18542623160203	2
    -0.847522322899486	-1.15560224742330	2
    0.741840918731699	-0.496338051365575	2
    -2.54221691809446	-3.97571910611358	2
    -0.640870911917068	-3.98946416736222	2
    -1.27601757941708	-2.19574158817790	2
    -1.99518769488596	-2.50955319147105	2
    -0.0971121023003621	-1.94763245438242	2
    0.758929387865149	-3.34051699723595	2
    -1.46945090437368	0.131656964194621	2
    -0.774828435874664	-1.98917132945057	2
    -1.44524731731601	-2.87227670173351	2
    0.206600225332415	-1.61159479256529	2
    -0.890612193740134	-3.25470953464458	2
    -0.783526850981737	-1.46513244158462	2
    0.229291351306705	-2.30369791576758	2
    -0.0766703376419500	-2.93769333289539	2
    -1.64705658546377	-2.19363222244332	2
    -2.02564827857175	-2.23661197841419	2
    0.580602656916380	-1.38403756935533	2
    -1.27308082491469	-2.20514718975902	2
    -2.92790668922674	-1.98439888443983	2
    -1.62181912776895	-0.851506362212275	2

    GMM_main.m

    function [accuracy,NumIterations]=GMM_main(data, K)
    %主函数
    [~, data_dim]=size(data);
    X=data(:, 1:data_dim-1);  %数据
    real_label=data(:, data_dim);
    [label, ~, NumIterations]=Matlab_gmm_2(X, K);
    accuracy=succeed(real_label,K,label);
    

    Matlab_gmm.m

    function [label, NegativeLogLikelihood, NumIterations]=Matlab_gmm(X, K)
    %协方差矩阵为对角阵,数据独立同分布
    [X_num,X_dim]=size(X);
    para_sigma_inv=zeros(X_dim, X_dim, K);
    N_pdf=zeros(X_num, K);  %单高斯分布的概率密度函数
    RegularizationValue=0.001;   %正则化系数,协方差矩阵求逆
    MaxIter=100;   %最大迭代次数
    TolFun=1e-8;   %终止条件
    % 自己设置初始化参数
    % init_Mu = [1 1; 2 2];
    % init_Sigma(:,:,1) = [1 1; 1 2];
    % init_Sigma(:,:,2) = 2*[1 1; 1 2];
    % init_Components = [1/2,1/2];
    % S = struct('mu',init_Mu,'Sigma',init_Sigma,'ComponentProportion',init_Components);
    % gmm=fitgmdist(X, K, 'RegularizationValue', RegularizationValue, 'CovarianceType', 'diagonal', 'Start', 'S', 'Options', statset('Display', 'final', 'MaxIter', MaxIter, 'TolFun', TolFun));
    gmm=fitgmdist(X, K, 'RegularizationValue', RegularizationValue, 'CovarianceType', 'diagonal', 'Start', 'plus', 'Options', statset('Display', 'final', 'MaxIter', MaxIter, 'TolFun', TolFun));
    NegativeLogLikelihood=gmm.NegativeLogLikelihood;
    NumIterations=gmm.NumIterations;  %迭代次数
    mu=gmm.mu;  %均值
    Sigma=gmm.Sigma;   %协方差矩阵
    ComponentProportion=gmm.ComponentProportion;  %混合比例
    for k=1:K
        sigma_inv=1./Sigma(:,:,k);  %sigma的逆矩阵,(X_dim, X_dim)的矩阵
        para_sigma_inv(:, :, k)=diag(sigma_inv);  %sigma^(-1)
    end
    for k=1:K
        coefficient=(2*pi)^(-X_dim/2)*sqrt(det(para_sigma_inv(:, :, k)));  %高斯分布的概率密度函数e左边的系数
        X_miu=X-repmat(mu(k,:), X_num, 1);  %X-miu: (X_num, X_dim)的矩阵
        exp_up=sum((X_miu*para_sigma_inv(:, :, k)).*X_miu,2);  %指数的幂,(X-miu)'*sigma^(-1)*(X-miu)
        N_pdf(:,k)=coefficient*exp(-0.5*exp_up);
    end
    responsivity=N_pdf.*repmat(ComponentProportion,X_num,1);  %响应度responsivity的分子,(X_num,K)的矩阵
    responsivity=responsivity./repmat(sum(responsivity,2),1,K);  %responsivity:在当前模型下第n个观测数据来自第k个分模型的概率,即分模型k对观测数据Xn的响应度
    %聚类
    [~,label]=max(responsivity,[],2);
    figure(2)
    scatter(X(:,1),X(:,2),10,'.') % Scatter plot with points of size 10
    hold on
    gmPDF = @(x,y)reshape(pdf(gmm,[x(:) y(:)]),size(x));
    fcontour(gmPDF,[-6 6])
    

    Matlab_gmm_2.m

    function [label, NegativeLogLikelihood, NumIterations]=Matlab_gmm_2(X, K)
    %协方差矩阵为非对角阵,数据不独立
    [X_num,X_dim]=size(X);
    N_pdf=zeros(X_num, K);  %单高斯分布的概率密度函数
    RegularizationValue=0.001;   %正则化系数,协方差矩阵求逆
    MaxIter=100;   %最大迭代次数
    TolFun=1e-8;   %终止条件
    % 自己设置初始化参数
    % init_Mu = [1 1; 2 2];
    % init_Sigma(:,:,1) = [1 1; 1 2];
    % init_Sigma(:,:,2) = 2*[1 1; 1 2];
    % init_Components = [1/2,1/2];
    % S = struct('mu',init_Mu,'Sigma',init_Sigma,'ComponentProportion',init_Components);
    % gmm=fitgmdist(X, K, 'RegularizationValue', RegularizationValue, 'CovarianceType', 'diagonal', 'Start', 'S', 'Options', statset('Display', 'final', 'MaxIter', MaxIter, 'TolFun', TolFun));
    gmm=fitgmdist(X, K, 'RegularizationValue', RegularizationValue, 'CovarianceType', 'full', 'Start', 'plus', 'Options', statset('Display', 'final', 'MaxIter', MaxIter, 'TolFun', TolFun));
    NegativeLogLikelihood=gmm.NegativeLogLikelihood;
    NumIterations=gmm.NumIterations;  %迭代次数
    mu=gmm.mu;  %均值
    Sigma=gmm.Sigma;   %协方差矩阵
    ComponentProportion=gmm.ComponentProportion;  %混合比例
    for k=1:K
        X_miu=X-repmat(mu(k,:), X_num, 1);  %X-miu: (X_num, X_dim)的矩阵
        sigma_inv=inv(Sigma(:,:,k));  %sigma的逆矩阵,(X_dim, X_dim)的矩阵
        exp_up=sum((X_miu*sigma_inv).*X_miu,2);  %指数的幂,(X-miu)'*sigma^(-1)*(X-miu)
        coefficient=(2*pi)^(-X_dim/2)*sqrt(det(sigma_inv));  %高斯分布的概率密度函数e左边的系数
        N_pdf(:,k)=coefficient*exp(-0.5*exp_up);
    end
    responsivity=N_pdf.*repmat(ComponentProportion,X_num,1);  %响应度responsivity的分子,(X_num,K)的矩阵
    responsivity=responsivity./repmat(sum(responsivity,2),1,K);  %responsivity:在当前模型下第n个观测数据来自第k个分模型的概率,即分模型k对观测数据Xn的响应度
    %聚类
    [~,label]=max(responsivity,[],2);
    figure(2)
    scatter(X(:,1),X(:,2),10,'.') % Scatter plot with points of size 10
    hold on
    gmPDF = @(x,y)reshape(pdf(gmm,[x(:) y(:)]),size(x));
    fcontour(gmPDF,[-6 6])
    

    succeed.m

    function accuracy=succeed(real_label,K,id)
    %输入K:聚的类,id:训练后的聚类结果,N*1的矩阵
    N=size(id,1);   %样本个数
    p=perms(1:K);   %全排列矩阵
    p_col=size(p,1);   %全排列的行数
    new_label=zeros(N,p_col);   %聚类结果的所有可能取值,N*p_col
    num=zeros(1,p_col);  %与真实聚类结果一样的个数
    %将训练结果全排列为N*p_col的矩阵,每一列为一种可能性
    for i=1:N
        for j=1:p_col
            for k=1:K
                if id(i)==k
                    new_label(i,j)=p(j,k);  %iris数据库,1 2 3
                end
            end
        end
    end
    %与真实结果比对,计算精确度
    for j=1:p_col
        for i=1:N
            if new_label(i,j)==real_label(i)
                    num(j)=num(j)+1;
            end
        end
    end
    accuracy=max(num)/N;
    

    结果

    以第二种情况为例,数据不独立,协方差矩阵不是只在对角线上有元素。

    >> [accuracy,NumIterations]=GMM_main(data, 2)
    32 iterations, log-likelihood = -3449.42
    
    accuracy =
    
       0.995000000000000
    
    
    NumIterations =
    
        32
    

      

  • 相关阅读:
    linux 的iptables失效解决方法
    解决Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误
    HTTP 请求中的 Form Data 与 Request Payload 的区别
    Git本地初始化并推送到远程仓库
    git 提交大小超过100M
    Linux压缩解压
    关闭seLinux
    MAT内存分析
    JVM&GC
    IDEA 好用的插件
  • 原文地址:https://www.cnblogs.com/kailugaji/p/10759419.html
Copyright © 2020-2023  润新知