计算具有已知频率的3个或更多属性的方差

时间:2011-05-30 05:56:32

标签: java statistics machine-learning data-mining

我想计算在给定时间(t)收集的数据集中的方差,我们知道条件和决策属性的频率。

每个条件属性可以采用3个可能的值,而结果包含两个classe属性,如下图所示。我需要的是计算这个给定数据快照的方差。

我也会对示例代码或算法感兴趣。

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为你最好在“statsOverflow”页面上问这个:)

上面的问题对我来说有点不清楚,但在离散的情况下,您可以使用以下算法计算方差:


data_type getVariance(data_type[] array){
    data_type mean = getMean(array);
    data_type var = 0;
    for(int i =0; i < array.length; i++){
        var += getProbabilityOf(array[i])*(array[i]-mean)*(array[i]-mean);
    }
    return var;
}
data_type getMean(data_type[] array){
    data_type mean = 0;
    for(int i =0; i < array.length; i++){
        mean += getProbabilityOf(array[i], array)*array[i];
    }
    return mean;
}
double getProbabilityOf(data_type data, data_type[] array){
    return [number of appearances of data in array / size of array];
}