熱線電話:13121318867

登錄
首頁精彩閱讀數據挖掘的分類算法
數據挖掘的分類算法
2016-01-27
收藏

數據挖掘的分類算法


數據分析師對數據進行數據挖掘時,會運用很多算法,其中一種是分類算法,下面就對數據分析師運用分類算法進行一下詳解,如下:

@@ -0,0 +1,15 @@
+packageDataMining_HITS;
+
+/**
+* HITSá′?ó·?????·¨
+* @author lyq
+*
+*/
+publicclassClient{
+publicstaticvoidmain(String[]args){
+StringfilePath="C:\\Users\\lyq\\Desktop\\icon\\input.txt";
+
+HITSTooltool=newHITSTool(filePath);
+ tool.printResultPage();
+ }
+}


View
150  LinkMining/DataMining_HITS/HITSTool.java
@@ -0,0 +1,150 @@
+packageDataMining_HITS;
+
+importjava.io.BufferedReader;
+importjava.io.File;
+importjava.io.FileReader;
+importjava.io.IOException;
+importjava.util.ArrayList;
+
+/**
+* HITS鏈接分析算法工具類
+* @author lyq
+*
+*/
+publicclassHITSTool{
+//輸入數據文件地址
+privateStringfilePath;
+//網頁個數
+privateintpageNum;
+//網頁Authority權威值
+privatedouble[] authority;
+//網頁hub中心值
+privatedouble[] hub;
+//鏈接矩陣關系
+privateint[][] linkMatrix;
+//網頁種類
+privateArrayList<String>pageClass;
+
+publicHITSTool(StringfilePath){
+this.filePath=filePath;
+ readDataFile();
+ }
+
+/**
+* 從文件中讀取數據
+*/
+privatevoidreadDataFile() {
+Filefile=newFile(filePath);
+ArrayList<String[]>dataArray=newArrayList<String[]>();
+
+try{
+BufferedReaderin=newBufferedReader(newFileReader(file));
+Stringstr;
+String[] tempArray;
+while((str=in.readLine())!=null) {
+ tempArray=str.split("");
+ dataArray.add(tempArray);
+ }
+ in.close();
+ }catch(IOExceptione) {
+ e.getStackTrace();
+ }
+
+ pageClass=newArrayList<>();
+// 統計網頁類型種數
+for(String[] array:dataArray) {
+for(Strings:array) {
+if(!pageClass.contains(s)) {
+ pageClass.add(s);
+ }
+ }
+ }
+
+inti=0;
+intj=0;
+ pageNum=pageClass.size();
+ linkMatrix=newint[pageNum][pageNum];
+ authority=newdouble[pageNum];
+ hub=newdouble[pageNum];
+for(intk=0; k<pageNum; k++){
+//初始時默認權威值和中心值都為1
+ authority[k]=1;
+ hub[k]=1;
+ }
+
+for(String[] array:dataArray) {
+
+ i=Integer.parseInt(array[0]);
+ j=Integer.parseInt(array[1]);
+
+// 設置linkMatrix[i][j]為1代表i網頁包含指向j網頁的鏈接
+ linkMatrix[i-1][j-1]=1;
+ }
+ }
+
+/**
+* 輸出結果頁面,也就是authority權威值最高的頁面
+*/
+publicvoidprintResultPage(){
+//最大Hub和Authority值,用于后面的歸一化計算
+doublemaxHub=0;
+doublemaxAuthority=0;
+intmaxAuthorityIndex=0;
+//誤差值,用于收斂判斷
+doubleerror=Integer.MAX_VALUE;
+double[] newHub=newdouble[pageNum];
+double[] newAuthority=newdouble[pageNum];
+
+
+while(error>0.01*pageNum){
+for(intk=0; k<pageNum; k++){
+ newHub[k]=0;
+ newAuthority[k]=0;
+ }
+
+//hub和authority值的更新計算
+for(inti=0; i<pageNum; i++){
+for(intj=0; j<pageNum; j++){
+if(linkMatrix[i][j]==1){
+ newHub[i]+=authority[j];
+ newAuthority[j]+=hub[i];
+ }
+ }
+ }
+
+ maxHub=0;
+ maxAuthority=0;
+for(intk=0; k<pageNum; k++){
+if(newHub[k]>maxHub){
+ maxHub=newHub[k];
+ }
+
+if(newAuthority[k]>maxAuthority){
+ maxAuthority=newAuthority[k];
+ maxAuthorityIndex=k;
+ }
+ }
+
+ error=0;
+//歸一化處理
+for(intk=0; k<pageNum; k++){
+ newHub[k]/=maxHub;
+ newAuthority[k]/=maxAuthority;
+
+ error+=Math.abs(newHub[k]-hub[k]);
+System.out.println(newAuthority[k]+":"+newHub[k]);
+
+ hub[k]=newHub[k];
+ authority[k]=newAuthority[k];
+ }
+System.out.println("---------");
+ }
+
+System.out.println("****最終收斂的網頁的權威值和中心值****");
+for(intk=0; k<pageNum; k++){
+System.out.println("網頁"+pageClass.get(k)+":"+authority[k]+":"+hub[k]);
+ }
+System.out.println("權威值最高的網頁為:網頁"+pageClass.get(maxAuthorityIndex));
+ }
+
+}


View
4  LinkMining/DataMining_HITS/input.txt
@@ -0,0 +1,4 @@
+1 2
+1 3
+2 3
+3 1

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢