統計學習方法之資訊增益演算法

2021-09-24 02:09:21 字數 1737 閱讀 8716

//計算經驗熵

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 統計學習是概率論 統計學 資訊理論 計算理論 最優化理...

統計學習方法

這兩天翻了一下這本書,做個筆記,方便下次細看。本書主要講解統計學習中用到的監督學習。介紹了一些模型機器演算法。當參考書不錯,不怎麼適合死磕。第一章 主要介紹機器學習,統計學習的基本步驟,以及常用的表示方法。寫的比較系統,對於這個比較不熟悉的,可以好好看看。因為常用的模型就是這樣表示的,懂了這個看公式...