//計算經驗熵
private static double hd(data datas,int n)
}if(iscredit==n)return 0;
double p1 = (double)iscredit/n;
double p2 = 1-p1;
return ((-p1)*logto2(p1)-p2*logto2(p2));
}private static double logto2(double i)
②分別算出資訊增益(由經驗熵減去條件熵)
因為每一種情況都不一樣,為了方便,選擇乙個引數i來表示其選擇哪乙個特徵值
private static double gda(int i)
data datas1 = new data[n1];
data datas2 = new data[n2];
data datas3 = new data[n3];
n1 = 0;
n2 = 0;
n3 = 0;
for (int j = 0; j < n; j++) else if (datas[j].year == 2) else
}double hd1 = (double) n1 / n * hd(datas1, n1) + (double) n2 / n * hd(datas2, n2) + (double) n3 / n * hd(datas3, n3);
return hd - hd1;
} else if(i==2)
data datas1 = new data[n1];
data datas2 = new data[n2];
n1 = 0;
n2 = 0;
for (int j = 0; j < n; j++) else
}double hd1 = (double) n1 / n * hd(datas1, n1) + (double) n2 / n * hd(datas2, n2) ;
return hd - hd1;
}else if(i==3)
data datas1 = new data[n1];
data datas2 = new data[n2];
n1 = 0;
n2 = 0;
for (int j = 0; j < n; j++) else
}double hd1 = (double) n1 / n * hd(datas1, n1) + (double) n2 / n * hd(datas2, n2) ;
return hd - hd1;
}else
data datas1 = new data[n1];
data datas2 = new data[n2];
data datas3 = new data[n3];
n1 = 0;
n2 = 0;
n3 = 0;
for (int j = 0; j < n; j++) else if (datas[j].credit == 2) else
}double hd1 = (double) n1 / n * hd(datas1, n1) + (double) n2 / n * hd(datas2, n2) + (double) n3 / n * hd(datas3, n3);
return hd - hd1;
}}
統計學習方法之kNN演算法
統計學習方法讀書筆記之knn演算法 k 近鄰法是機器學習中最基本的分類和回歸方法,也稱為knn演算法。通常k近鄰法用於分類問題。k近鄰法假定給定乙個訓練資料集,其中例項類別已定。分類時,對新的例項,根據其k個最近鄰的訓練例項類別,一般通過多數表決的方式來進行 例如,有兩堆水果,一堆是橙子,一堆是柚子...
統計學習方法 1 統計學習方法概論
統計學習的主要特點是 1 統計學習以計算機及網路為平台,是建立在計算機及網路之上的 2 統計學習以資料為研究物件,是資料驅動的學科 3 統計學習的目的是對資料進行 與分析 4 統計學習以方法為中心,統計學習方法構建模型並應用模型進行 與分析 5 統計學習是概率論 統計學 資訊理論 計算理論 最優化理...
統計學習方法
這兩天翻了一下這本書,做個筆記,方便下次細看。本書主要講解統計學習中用到的監督學習。介紹了一些模型機器演算法。當參考書不錯,不怎麼適合死磕。第一章 主要介紹機器學習,統計學習的基本步驟,以及常用的表示方法。寫的比較系統,對於這個比較不熟悉的,可以好好看看。因為常用的模型就是這樣表示的,懂了這個看公式...