自然分類演算法例項程式碼分享
下面是一段javascript和自然分類演算法相關的例項程式碼,希望能夠給大家帶來一定的幫助。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <title>自然分類法演算法</title> <script type="text/javascript"> function getJenksBreaks(data,numclass) { function sortNumber(a,b) { return a - b } var numdata = data.length; data.sort(sortNumber); var mat1=new Array(); var mat2=new Array(); var st=new Array(); for (var j = 0; j <= numdata; j++) { mat1[j]=new Array(); mat2[j]=new Array(); st[j]=0; for(var i=0;i<=numclass;i++) { mat1[j][i] = 0; mat2[j][i] = 0; } } for (var i = 1; i <= numclass; i++) { mat1[1][i] = 1; mat2[1][i] = 0; for (var j = 2; j <= numdata; j++) { mat2[j][i] = Number.MAX_VALUE; } } var v=0; for (var l = 2; l <= numdata; l++) { var s1=0; var s2=0; var w=0; var i3=0; for (var m = 1; m <= l; m++) { i3 = l - m + 1; var val=parseInt(data[i3-1]); s2 += val * val; s1 += val; w++; v = s2 - (s1 * s1) / w; var i4 = i3 - 1; if (i4 != 0) { for (var j = 2; j <= numclass; j++) { if(mat2[l][j] >= (v + mat2[i4][j - 1])) { mat1[l][j] = i3; mat2[l][j] = v + mat2[i4][j - 1]; if(l==200&&j==5) alert("l="+200+",j="+5+";mat2[200][5]="+mat1[l][j]+"i3="+i3); } } } } mat1[l][1] = 1; mat2[l][1] = v; } var k = numdata; var kclass=new Array(); kclass[numclass - 1] = parseInt(data[data.length-1]); for (var j = numclass; j >= 2; j--) { var id = parseInt(mat1[k][j]) - 2; kclass[j - 2] = parseInt( data[id]); k = parseInt( mat1[k][j] - 1); } return kclass; } function doit() { var data = new Array( 9, 9, 9, 9, 8, 1, 9, 7, 6, 7, 10, 7, 7, 8, 5, 7, 8, 2, 6, 6, 9, 10, 2, 2, 3, 9, 9, 1, 9, 1, 6, 7, 1, 9, 6, 5, 2, 8, 6, 6, 6, 4, 1, 4, 10, 9, 6, 9, 9, 7, 10, 9, 6, 6, 6, 9, 3, 2, 5, 10, 3, 9, 6, 1, 2, 1, 2, 7, 5, 2, 6, 6, 2, 7, 9, 9, 5, 4, 6, 4, 1, 1, 5, 1, 4, 4, 2, 6, 9, 7, 3, 10, 4, 4, 9, 5, 5, 3, 5, 3, 161, 136, 22, 113, 48, 114, 166, 33, 159, 182, 135, 22, 174, 191, 60, 176, 1, 155, 62, 142, 185, 84, 140, 27, 111, 176, 189, 24, 60, 29, 139, 20, 70, 172, 90, 120, 121, 173, 57, 138, 86, 180, 143, 155, 35, 10, 136, 158, 26, 29, 136, 97, 193, 194, 104, 147, 182, 44, 84, 139, 176, 16, 130, 168, 109, 182, 87, 78, 115, 75, 32, 88, 131, 168, 89, 25, 160, 60, 72, 92, 129, 159, 99, 5, 192, 6, 53, 15, 62, 176, 73, 129, 128, 34, 190, 95, 19, 19, 196, 30 ); var text=document.getElementById("text"); text.value=""; var grade = getJenksBreaks(data, 5); for (var i = 0; i < grade.length; i++) text.value=text.value+grade[i]+","; } window.onload=function() { var bt=document.getElementById("bt"); bt.onclick=function(){doit()} } </script> </head> <body > <button type="button" id="bt">自然分類法</button> <input id="text"> </body> </html>
相關文章
- javascript排序各種演算法例項程式碼JavaScript排序演算法
- 貝葉斯分類演算法例項 --根據姓名推測男女演算法
- 貝葉斯分類演算法例項 –根據姓名推測男女演算法
- javascript this 用法例項程式碼解析JavaScript
- charAt()函式用法例項程式碼函式
- $.ajax()用法例項程式碼介紹
- javascript閉包用法例項程式碼分析JavaScript
- <input type="range">標籤用法例項程式碼
- DES演算法例項詳解演算法
- javascript模擬實現trim()方法例項程式碼JavaScript
- 【ybtoj】二分演算法例題演算法
- C#中JavaScriptSerializer幫助類用法例項C#JavaScript
- WebGIS中一些功能演算法例項Web演算法
- PHP四大基本排序演算法例項PHP排序演算法
- bert分類的程式碼
- 中文轉換成html中的utf-8的方法例項程式碼HTML
- 封裝type方法例項封裝
- 夥伴演算法例子演算法
- js冪函式程式碼例項分享JS函式
- jQuery ajax請求程式碼例項分享jQuery
- Java的clone()用法例項解析Java
- 邊界值分析法例項
- 分享《文字分類初探PPT》文字分類
- javascript 靜態方法和例項方法例項JavaScript
- 程式設計師垃圾程式碼分類指南程式設計師
- 【自然數密碼的兩項法則】密碼
- 「自然數密碼」的兩項法則密碼
- 基於機器學習和TFIDF的情感分類演算法,詳解自然語言處理機器學習演算法自然語言處理
- table表頭分組程式碼例項
- 樣式初始化程式碼例項分享
- javascript函式節流程式碼例項分享JavaScript函式
- JavaScript閉包原理與用法例項JavaScript
- JavaScript建立物件方法例項小結JavaScript物件
- RNN二進位制加法例項RNN
- android中部分Intent用法例項AndroidIntent
- torch.einsum 的用法例項
- #微碼分享#AES演算法的C++包裝類演算法C++
- javascript希爾排序演算法程式碼例項JavaScript排序演算法