コード例 #1
0
        public Hashtable getAtrib()
        {
            DaoAtributo dao = new DaoAtributo();

            Hashtable table = new Hashtable();


            List <Atributo> all = dao.getAll();

            foreach (Atributo at in all)
            {
                table.Add(at.atributo, at.valor2);
            }

            return(table);

            /*atri_casos.Add("area_damaged", c.area_damaged);
             * atri_casos.Add("canker_lesion", c.canker_lesion);
             * atri_casos.Add("crop_hist", c.crop_hist);
             * atri_casos.Add("date", c.date);
             * atri_casos.Add("externalDecay", c.externalDecay);
             * atri_casos.Add("fruitingBodies", c.fruitingBodies);
             * atri_casos.Add("fruitPods", c.fruitPods);
             * atri_casos.Add("fruitSpots", c.fruitSpots);
             * atri_casos.Add("germination", c.germination);
             * atri_casos.Add("hail", c.hail);
             * atri_casos.Add("intDiscolor", c.intDiscolor);
             * atri_casos.Add("leafShread", c.leafShread);
             * atri_casos.Add("leafsports_halo", c.leafsports_halo);
             * atri_casos.Add("leafspotMarg", c.leafspotMarg);
             * atri_casos.Add("leafspotSize", c.leafspotSize);
             * atri_casos.Add("leaf_malf", c.leaf_malf);
             * atri_casos.Add("leaf_mild", c.leaf_mild);
             * atri_casos.Add("leaves", c.leaves);
             * atri_casos.Add("lodging", c.lodging);
             * atri_casos.Add("moldGrowth", c.moldGrowth);
             * atri_casos.Add("mycelium", c.mycelium);
             * atri_casos.Add("plantStand", c.plantStand);
             * atri_casos.Add("plant_growth", c.plant_growth);
             * atri_casos.Add("precip", c.precip);
             * atri_casos.Add("roots", c.roots);
             * atri_casos.Add("sclerotia", c.sclerotia);
             * atri_casos.Add("seed", c.seed);
             * atri_casos.Add("seedDiscolor", c.seedDiscolor);
             * atri_casos.Add("seedSize", c.seedSize);
             * atri_casos.Add("seedTmt", c.seedTmt);
             * atri_casos.Add("severity", c.severity);
             * atri_casos.Add("shriveling", c.shriveling);
             * atri_casos.Add("stem", c.stem);
             * atri_casos.Add("stemCankers", c.stemCankers);
             * atri_casos.Add("temp", c.temp);*/
        }
コード例 #2
0
        public List <CasoNum> trasnformar(List <Caso> casos)
        {
            DaoAtributo atb_dao = new DaoAtributo();

            PropertyInfo[] valAtb = casos.GetType().GetProperties();

            List <CasoNum> cs = new List <CasoNum>();

            List <Atributo> at = atb_dao.getAll();

            foreach (Caso c in casos)
            {
            }
            return(null);
        }
コード例 #3
0
        public Hashtable organizarAtributos(Hashtable atrib)
        {
            DaoAtributo atrib_dao = new DaoAtributo();

            List <Atributo> lAtrib = atrib_dao.getAll();


            atrib["area_damaged"].ToString();

            //atrib["canker_laesion"].ToString();



            return(null);
        }
コード例 #4
0
        public double valAtributo(String atrib, String val)
        {
            DaoAtributo at = new DaoAtributo();

            Atributo atb = new Atributo();

            atb.atributo = atrib;

            Atributo atb2  = at.searchOther(atb);
            double   valor = 0;

            int i = atb2.valor2.IndexOf(val);

            if (i > 0)
            {
                valor = Convert.ToDouble(atb2.valor1[i]);
            }


            return(valor);
        }
コード例 #5
0
        public List <Caso> calculaSimilaridadeLocal(Caso casoBase)
        {
            DaoCaso dao_caso = new DaoCaso();

            List <Caso> allCasos = dao_caso.getAll();

            //Hashtable sl = new Hashtable();

            PropertyInfo[] valCaso = casoBase.GetType().GetProperties();

            DaoAtributo at = new DaoAtributo();

            Atributo atb2 = new Atributo();

            Hashtable pesos = getPesos();

            List <Atributo> atbs = at.getAll();

            List <Caso> casoSimilar = new List <Caso>();

            double similaridadeLocal  = 0;
            double similaridadeGlobal = 0;
            double div = 0;

            for (int j = 0; j < allCasos.Count; j++)
            {
                Hashtable      similaridades = new Hashtable();
                PropertyInfo[] valTab        = allCasos[j].GetType().GetProperties();

                similaridadeLocal = 0;
                div = 0;

                for (int i = 3; i <= 37; i++)
                {
                    //atb.atributo = valTab[i].Name;

                    //Atributo atb2 = at.searchOther(atb);

                    atb2 = atbs.Find(a => a.atributo.Equals(valTab[i].Name.Replace('_', '-')));



                    if (valCaso[i].GetValue(casoBase).Equals("Desconhecido") || valTab[i].GetValue(allCasos[j]).Equals("Desconhecido"))
                    {
                        similaridadeLocal += 0;

                        //similaridades.Add(valCaso[i].Name, similaridadeLocal);
                    }
                    else if (valCaso[i].GetValue(casoBase).Equals("Desconhecido") && valTab[i].GetValue(allCasos[j]).Equals("Desconhecido"))
                    {
                        similaridadeLocal += (1 * Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString()));
                        div += Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString());
                        //similaridades.Add(valCaso[i].Name, similaridadeLocal);
                    }
                    else if (atb2.similaridade.Equals("Não"))
                    {
                        if (valCaso[i].Name.Equals(valTab[i].Name))
                        {
                            similaridadeLocal += (1 * Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString()));
                            div += Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString());
                        }

                        similaridadeLocal += 0;

                        //similaridades.Add(valCaso[i].Name, similaridadeLocal);
                    }
                    else
                    {
                        var atbVal    = valCaso[i].GetValue(casoBase);
                        var atbTabela = valTab[i].GetValue(allCasos[j]);

                        double valorCaso = valAtributo(valCaso[i].Name, (String)atbVal);
                        double valorTab  = valAtributo(valTab[i].Name, (String)atbTabela);

                        double[] maxMin = maxMinCol(valCaso[i].Name);

                        /*maxMin[0] = 1;
                        *  maxMin[1] = 3;*/

                        if (maxMin[0] != maxMin[1])
                        {
                            similaridadeLocal += (1 - ((Math.Abs(valorCaso - valorTab))) / (maxMin[1] - maxMin[0]) * Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString()));
                            div += Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString());
                        }

                        else
                        {
                            similaridadeLocal += (1 - (Math.Abs(valorCaso - valorTab)) * Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString()));
                            div += Convert.ToDouble(pesos[valTab[i].Name.Replace('_', '-')].ToString());
                        }


                        //similaridades.Add(valCaso[i].Name, similaridadeLocal);
                    }
                }

                //sl.Add(allCasos[j].caso, similaridades);

                similaridadeGlobal = similaridadeLocal / div;

                Caso c = allCasos[j];
                c.SimilaridadeGlobal = similaridadeGlobal;

                casoSimilar.Add(c);
            }


            return(casoSimilar);
        }