예제 #1
0
        public double CalcFinalWeight(TFType tfType, IDFType idfType)
        {
            double tf  = TermFrequencies.Where(Onetf => Onetf.TFType == tfType).FirstOrDefault().Value;
            double idf = IDFs.Where(OneIDF => OneIDF.IDFType == idfType).FirstOrDefault().Value;

            return(tf * idf);
        }
예제 #2
0
 public BestThreshold(DateTime TimeStampP,
                      int NumberOfDiseasesWithKnownPhenotypesP,
                      int NumberOfDiseasesWithPublicationsInPredictionDataP,
                      int NumberOfDiseasesEvaluatedForRealP,
                      type TypeP, double MeanNumberOfRelatedEntitiesFoundP, double StandardDeviationNumberOfRelatedEntitiesFoundP, TFType TFTypeP, IDFType IDFTypeP, double ThresholdP, int RealPositivesP, int FalsePositivesP, int FalseNegativesP,
                      double PrecisionP, double RecallP, double F_ScoreP, double MeanRankRealPositivesP, double StandardDeviationRankRealPositivesGeneralP, Criterion CriterionP)
 {
     TimeStamp = TimeStampP;
     NumberOfDiseasesWithKnownPhenotypes = NumberOfDiseasesWithKnownPhenotypesP;
     NumberOfDiseasesWithPublicationsInPredictionData = NumberOfDiseasesWithPublicationsInPredictionDataP;
     NumberOfDiseasesEvaluatedForReal = NumberOfDiseasesEvaluatedForRealP;
     Type = TypeP;
     MeanNumberOfRelatedEntitiesFound = MeanNumberOfRelatedEntitiesFoundP;
     StandardDeviationNumberOfRelatedEntitiesFound = StandardDeviationNumberOfRelatedEntitiesFoundP;
     TFType                = TFTypeP;
     IDFType               = IDFTypeP;
     Threshold             = ThresholdP;
     RealPositives         = RealPositivesP;
     FalsePositives        = FalsePositivesP;
     FalseNegatives        = FalseNegativesP;
     Precision             = PrecisionP;
     Recall                = RecallP;
     F_Score               = F_ScoreP;
     MeanRankRealPositives = MeanRankRealPositivesP;
     StandardDeviationRankRealPositivesGeneral = StandardDeviationRankRealPositivesGeneralP;
     Criterion = CriterionP;
 }
예제 #3
0
        public override void Push(byte value)
        {
            if (Cursor == 3) //TFID
            {
                TFID = (TFType)value;
                switch (TFID)
                {
                case TFType.TF_GTF:
                case TFType.TF_TRIANGULAR_GTF:
                {
                    m_tfData = new GTF();
                    break;
                }

                case TFType.TF_MERGE:
                {
                    m_tfData = new MergeTF();
                    break;
                }

                default:
                    break;
                }
            }

            else if (Cursor == 4) //ColorType
            {
                ColorType = (ColorMode)value;
            }

            else
            {
                switch (TFID)
                {
                case TFType.TF_MERGE:
                {
                    if (Cursor > 8)
                    {
                        if (MergeTFData.tf1.Cursor <= MergeTFData.tf1.GetMaxCursor())
                        {
                            MergeTFData.tf1.Push(value);
                        }
                        else if (MergeTFData.tf2.Cursor <= MergeTFData.tf2.GetMaxCursor())
                        {
                            MergeTFData.tf2.Push(value);
                        }
                    }
                    break;
                }

                default:
                    break;
                }
            }

            base.Push(value);
        }
예제 #4
0
 public TermFrequency(TFType TFTypeP, double ValueP)
 {
     TFType = TFTypeP;
     Value  = ValueP;
 }
예제 #5
0
        //MinMax normalization on one TFsource to one TFDest
        static void MinMaxNormalization(DiseasesData PredictionData, double NewMin, double NewMax, TFType TFTypeSource, TFType TFTypeDest)
        {
            Console.WriteLine("MinMaxNormalization start...");
            foreach (var diseasedata in PredictionData.DiseaseDataList)
            {
                //var relatedEntities = diseasedata.RelatedEntities.RelatedEntitiesList;
                if (diseasedata.RelatedEntities.RelatedEntitiesList.Count != 0)
                {
                    //Find Min and Max for Normalization
                    double max = diseasedata.RelatedEntities.RelatedEntitiesList.Max(x => x.TermFrequencies.Where(tf => tf.TFType == TFTypeSource).FirstOrDefault().Value);
                    double min = diseasedata.RelatedEntities.RelatedEntitiesList.Min(x => x.TermFrequencies.Where(tf => tf.TFType == TFTypeSource).FirstOrDefault().Value);

                    if (max == min)
                    {
                        for (int i = 0; i < diseasedata.RelatedEntities.RelatedEntitiesList.Count; i++)
                        {
                            diseasedata.RelatedEntities.RelatedEntitiesList[i].Weight = NewMax;
                        }
                    }
                    else
                    {
                        //Symptom Weight Normalization from NewMin to NewMax
                        for (int i = 0; i < diseasedata.RelatedEntities.RelatedEntitiesList.Count; i++)
                        {
                            double value = diseasedata.RelatedEntities.RelatedEntitiesList[i].TermFrequencies.Where(tf => tf.TFType == TFTypeSource).FirstOrDefault().Value;

                            //UpdateValue
                            diseasedata
                            .RelatedEntities
                            .RelatedEntitiesList[i]
                            .TermFrequencies.Where(tf => tf.TFType == TFTypeDest)
                            .FirstOrDefault()
                            .Value =
                                NewMin + (NewMax - NewMin) * (value - min) / (max - min);
                        }
                    }
                }
            }
            Console.WriteLine("MinMaxNormalization finished!");
        }