/**
* relief演算法
*/public
void
relief()
//屬性的最大值和最小值
double max = new
double[n_vars];
double min = new
double[n_vars];
for(int i = 0; i < width; i++)
if(d < min[i])
} }
// 找到每個特徵下樣本資料的最大值最小值
//隨機抽樣m次
for(int i = 0; i < m; i++)
//計算出距離樣本r最近的樣本和最遠的樣本
double maxvalue = 0.0;
double minvalue = 0.0;
int maxrow = 0;
int minrow = 0;
double distince = 0.0;
for(int len = 0; len < length; len++)
distince = math.sqrt(distince);
if(len == 0)
if(distince > maxvalue)
if(distince < minvalue)
} }
// 得到了距離最近(minrow)和距離最遠(maxrow)兩個樣本資料
int h_index = minrow;
double h = new
double[width];
for (int index = 0; index < width; index++)
int m_index = maxrow;
double m = new
double[width];
for(int index = 0; index < width; index++)
//relief計算權重
for(int j = 0; j < n_vars; j++)
} for(int i = 0; i < width; i++)
}
relief演算法研究
最近由於工作需要,對資料進行降維處理,通過對各種演算法的研究,想尋找一種比較理想的演算法,處理資料維度,達到降維的目的,對pca進行研究,但是pca是對當前多維資料的空間變換,無法達到物理降維的目的,因此想選擇物理降維的演算法,因此對卡方演算法和relief演算法進行相關研究,這兩種演算法是對資料的...
隨機森林進行特徵選取
在隨機森林中某個特徵x的重要性的計算方式如下 首先是對隨機森林的每一顆決策樹,使用對應的oob 袋外資料 資料來進行計算他的袋外的資料誤差,記做error1 這樣每個決策樹都可以得到乙個error1,k顆數就有k個error1.然後就是要遍歷所有的特徵,來考察該特徵的重要性,考察重要性的方式是,隨機...
機器學習之 特徵向量選取
本系列介紹機器學習中的在實際應用和理論研究中的一些重要的方向。這些文章能給大家起到拋磚引玉的作用。一些細節或者深入的討論可在每篇博文最後列出的文獻中找到。本篇博文介紹特徵向量選取。在機器學習中,特種向量選取是整個機器學習系統中非常重要的一步。1.特徵向量選取 vs.特徵向量提取 請注意特徵向量的選取...