Relief算法
weka.attributeSelection.ReliefFAttributeEval
主要的变量:
m_weights[] 特征权重
m_knn 最近邻hits/misses的个数
m_sampleM ——The number of instances to sample,when estimating attributes default == -1, use all instances
m_karray[m_numclass][m_knn][2]——距离和index
最终要看的就是m_weights[],定义阈值来选择特征
主要的函数:
private void findKHitMiss(int instNum) //得到instNum的m_karray向量
private void updateWeightsDiscreteClass(int instNum) //更新权重m_weights,m_weights[i] -= temp_diff;//同类的- m_weights[i] += temp_diff;//不同类+
public void buildEvaluator(Instances data) //调用上面两个函数
如果m_sampleM=-1,即所有instance都会分别作为选择的种子点,调用findKHitMiss(instance),然后更新权重。