Changeset 84


Ignore:
Timestamp:
Jan 9, 2010, 6:45:20 PM (14 years ago)
Author:
(none)
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • proiecte/Parallel-DT/R8/Src/discr.c

    r68 r84  
    4848}
    4949
    50 EvalDiscreteAtt_Discr(Att, Fp, Lp, Items, Freq, ValFreq, UnknownRate)
     50EvalDiscreteAtt_Discr(Att, Fp, Lp, Items, Freq_discr, ValFreq_discr, UnknownRate_discr)
    5151        /*  ---------------  */
    52         Attribute Att;ItemNo Fp, Lp;ItemCount Items; ItemCount** Freq; ItemCount* ValFreq; float* UnknownRate; {
     52        Attribute Att;ItemNo Fp, Lp;ItemCount Items; ItemCount** Freq_discr; ItemCount* ValFreq_discr; float* UnknownRate_discr; {
    5353        ItemCount KnownItems;
    5454        float DiscrKnownBaseInfo_Discr(), ComputeGain_Discr(), TotalInfo();
    5555
    56         ComputeFrequencies_Discr(Att, Fp, Lp, Freq, ValFreq, UnknownRate);
    57 
    58         KnownItems = Items - ValFreq[0];
     56        ComputeFrequencies_Discr(Att, Fp, Lp, Freq_discr, ValFreq_discr, UnknownRate_discr);
     57
     58        KnownItems = Items - ValFreq_discr[0];
    5959
    6060        /*  Special case when no known values of the attribute  */
    6161
    62         if (Items <= ValFreq[0]) {
     62        if (Items <= ValFreq_discr[0]) {
    6363                Verbosity(2)
    6464                        printf("\tAtt %s: no known values\n", AttName[Att]);
     
    6969        }
    7070
    71         Gain[Att] = ComputeGain_Discr(DiscrKnownBaseInfo_Discr(KnownItems, MaxAttVal[Att], Freq),
    72                         UnknownRate[Att], MaxAttVal[Att], KnownItems, Freq, ValFreq);
    73         Info[Att] = TotalInfo(ValFreq, 0, MaxAttVal[Att]) / Items;
     71        Gain[Att] = ComputeGain_Discr(DiscrKnownBaseInfo_Discr(KnownItems, MaxAttVal[Att], Freq_discr),
     72                        UnknownRate_discr[Att], MaxAttVal[Att], KnownItems, Freq_discr, ValFreq_discr);
     73        Info[Att] = TotalInfo(ValFreq_discr, 0, MaxAttVal[Att]) / Items;
    7474
    7575        Verbosity(2) {
    7676                printf("\tAtt %s", AttName[Att]);
    7777                Verbosity(3)
    78                         PrintDistribution_Discr(Att, MaxAttVal[Att], true, Freq);
     78                        PrintDistribution_Discr(Att, MaxAttVal[Att], true, Freq_discr);
    7979                printf("\tinf %.3f, gain %.3f\n", Info[Att], Gain[Att]);
    8080        }
     
    124124}
    125125
    126 ComputeFrequencies_Discr(Att, Fp, Lp, Freq, ValFreq, UnknownRate)
     126ComputeFrequencies_Discr(Att, Fp, Lp, Freq_discr, ValFreq_discr, UnknownRate_discr)
    127127        /*  ------------------  */
    128         Attribute Att;ItemNo Fp, Lp; ItemCount** Freq; ItemCount* ValFreq; float* UnknownRate;{
     128        Attribute Att;ItemNo Fp, Lp; ItemCount** Freq_discr; ItemCount* ValFreq_discr; float* UnknownRate_discr;{
    129129        Description Case;
    130130        ClassNo c;
     
    133133        ItemNo p;
    134134
    135         ResetFreq(MaxAttVal[Att], Freq, ValFreq);
     135        ResetFreq_discr(MaxAttVal[Att], Freq_discr, ValFreq_discr);
    136136
    137137        /*  Determine the frequency of each class amongst cases
     
    140140        ForEach(p, Fp, Lp) {
    141141                Case = Item[p];
    142                 Freq[DVal(Case,Att)][Class(Case)] += Weight[p];
     142                Freq_discr[DVal(Case,Att)][Class(Case)] += Weight[p];
    143143        }
    144144
     
    148148        ForEach(v, 0, MaxAttVal[Att]) {
    149149                ForEach(c, 0, MaxClass) {
    150                         ValFreq[v] += Freq[v][c];
     150                        ValFreq_discr[v] += Freq_discr[v][c];
    151151                }
    152152        }
     
    154154        /*  Set the rate of unknown values of the attribute  */
    155155
    156         UnknownRate[Att] = ValFreq[0] / CountItems(Fp, Lp);
     156        UnknownRate_discr[Att] = ValFreq_discr[0] / CountItems(Fp, Lp);
    157157}
    158158/*************************************************************************/
     
    183183}
    184184
    185 float DiscrKnownBaseInfo_Discr(KnownItems, MaxVal, Freq)
     185float DiscrKnownBaseInfo_Discr(KnownItems, MaxVal, Freq_discr)
    186186        /*    ------------------  */
    187         DiscrValue MaxVal;ItemCount KnownItems; ItemCount** Freq;{
     187        DiscrValue MaxVal;ItemCount KnownItems; ItemCount** Freq_discr;{
    188188        ClassNo c;
    189189        ItemCount ClassCount;
     
    194194                ClassCount = 0;
    195195                ForEach(v, 1, MaxVal) {
    196                         ClassCount += Freq[v][c];
     196                        ClassCount += Freq_discr[v][c];
    197197                }
    198198                Sum += ClassCount * Log(ClassCount);
Note: See TracChangeset for help on using the changeset viewer.