Пример #1
0
        public static void LerArquivo(MLP mlp, bool t = false)
        {
            var listaTamanho = new List <string>();

            using (CsvReader csv = new CsvReader(new StreamReader(ArquivoTreino), true))
            {
                int      fieldCount = csv.FieldCount;
                string[] headers    = csv.GetFieldHeaders();
                int      limite     = 0;

                while (csv.ReadNextRecord())
                {
                    var urlLen   = Convert.ToInt32(csv[2]);
                    var jsLen    = Convert.ToDouble(csv[8], CultureInfo.InvariantCulture);
                    var jsObfLen = Convert.ToDouble(csv[9], CultureInfo.InvariantCulture);
                    var whoIs    = (csv[6] == "complete") ? 1 : 0;
                    var https    = (csv[7] == "yes") ? 1 : 0;
                    var label    = (csv[11] == "good") ? true : false;

                    listaTamanho.Add(csv[5]);
                    /*“/”, “%”, “#”, “&”, “. “, “=”*/

                    mlp.AdicionarValoresParaEntradas(
                        (urlLen < 20) ? 1: 0,
                        (urlLen >= 20 && urlLen < 30) ? 1 : 0,
                        (urlLen >= 30 && urlLen < 40) ? 1 : 0,
                        (urlLen >= 40 && urlLen < 50) ? 1 : 0,
                        (urlLen >= 50 && urlLen < 60) ? 1 : 0,
                        (urlLen >= 60 && urlLen < 70) ? 1 : 0,
                        (urlLen >= 70 && urlLen < 80) ? 1 : 0,
                        (urlLen >= 80 && urlLen < 90) ? 1 : 0,
                        (urlLen >= 90 && urlLen < 100) ? 1 : 0,
                        (urlLen >= 100 && urlLen < 150) ? 1 : 0,
                        (urlLen >= 150 && urlLen < 200) ? 1 : 0,
                        (urlLen >= 200) ? 1 : 0,
                        (jsLen < 50) ? 1 : 0,
                        (jsLen >= 100 && jsLen < 150) ? 1 : 0,
                        (jsLen >= 150 && jsLen < 200) ? 1 : 0,
                        (jsLen >= 200 && jsLen < 250) ? 1 : 0,
                        (jsLen >= 250 && jsLen < 300) ? 1 : 0,
                        (jsLen >= 300 && jsLen < 350) ? 1 : 0,
                        (jsLen >= 350 && jsLen < 400) ? 1 : 0,
                        (jsLen >= 400 && jsLen < 450) ? 1 : 0,
                        (jsLen >= 450 && jsLen < 500) ? 1 : 0,
                        (jsLen >= 500 && jsLen < 550) ? 1 : 0,
                        (jsLen >= 550 && jsLen < 600) ? 1 : 0,
                        (jsLen >= 600 && jsLen < 650) ? 1 : 0,
                        (jsLen >= 650 && jsLen < 700) ? 1 : 0,
                        (jsLen >= 700 && jsLen < 750) ? 1 : 0,
                        (jsLen >= 750 && jsLen < 800) ? 1 : 0,
                        (jsLen >= 800 && jsLen < 850) ? 1 : 0,
                        (jsLen >= 850 && jsLen < 900) ? 1 : 0,
                        (jsLen >= 900 && jsLen < 950) ? 1 : 0,
                        (jsLen >= 950) ? 1 : 0,
                        (jsObfLen < 100) ? 1 : 0,
                        (jsObfLen >= 100 && jsObfLen < 200) ? 1 : 0,
                        (jsObfLen >= 200 && jsObfLen < 300) ? 1 : 0,
                        (jsObfLen >= 300 && jsObfLen < 400) ? 1 : 0,
                        (jsObfLen >= 400 && jsObfLen < 500) ? 1 : 0,
                        (jsObfLen >= 500 && jsObfLen < 600) ? 1 : 0,
                        (jsObfLen >= 600 && jsObfLen < 700) ? 1 : 0,
                        (jsObfLen >= 700 && jsObfLen < 800) ? 1 : 0,
                        (jsObfLen >= 800 && jsObfLen < 900) ? 1 : 0,
                        (jsObfLen >= 900 && jsObfLen < 1000) ? 1 : 0,
                        whoIs,
                        https);
                    mlp.AdicionarValoresParaSaidas(Convert.ToDouble(label), Convert.ToDouble(!label));
                    mlp.FuncionarRede();

                    if (t)
                    {
                        testar(mlp);
                    }
                    else
                    {
                        mlp.BackPropagation();
                    }

                    limite++;

                    /*if (limite >= 100000)
                     *  break;*/
                }
            }

            listaTamanho = listaTamanho.Distinct().ToList();
        }
Пример #2
0
        private void MaisUmteste(MLP mlp, bool treino)
        {
            mlp.AdicionarValoresParaEntradas(1, 0, 0, 1, 0, 0, 0, 0, 0);
            mlp.AdicionarValoresParaSaidas(1, 0, 0, 0, 0, 0, 0, 0, 0);
            mlp.FuncionarRede();
            if (treino)
            {
                mlp.BackPropagation();
            }
            else
            {
                testar(mlp);
            }


            mlp.AdicionarValoresParaEntradas(0, 1, 0, 1, 0, 0, 0, 0, 0);
            mlp.AdicionarValoresParaSaidas(0, 1, 0, 0, 0, 0, 0, 0, 0);
            mlp.FuncionarRede();
            if (treino)
            {
                mlp.BackPropagation();
            }
            else
            {
                testar(mlp);
            }

            mlp.AdicionarValoresParaEntradas(0, 1, 0, 1, 1, 0, 0, 0, 0);
            mlp.AdicionarValoresParaSaidas(0, 0, 1, 0, 0, 0, 0, 0, 0);
            mlp.FuncionarRede();
            if (treino)
            {
                mlp.BackPropagation();
            }
            else
            {
                testar(mlp);
            }

            mlp.AdicionarValoresParaEntradas(0, 0, 1, 0, 0, 0, 0, 0, 0);
            mlp.AdicionarValoresParaSaidas(0, 0, 0, 1, 0, 0, 0, 0, 0);
            mlp.FuncionarRede();
            if (treino)
            {
                mlp.BackPropagation();
            }
            else
            {
                testar(mlp);
            }

            mlp.AdicionarValoresParaEntradas(0, 0, 1, 0, 1, 0, 0, 0, 0);
            mlp.AdicionarValoresParaSaidas(0, 0, 0, 0, 1, 0, 0, 0, 0);
            mlp.FuncionarRede();
            if (treino)
            {
                mlp.BackPropagation();
            }
            else
            {
                testar(mlp);
            }

            mlp.AdicionarValoresParaEntradas(0, 0, 0, 0, 0, 1, 1, 0, 0);
            mlp.AdicionarValoresParaSaidas(0, 0, 0, 0, 0, 1, 0, 0, 0);
            mlp.FuncionarRede();
            if (treino)
            {
                mlp.BackPropagation();
            }
            else
            {
                testar(mlp);
            }

            mlp.AdicionarValoresParaEntradas(0, 0, 0, 0, 0, 1, 0, 0, 0);
            mlp.AdicionarValoresParaSaidas(0, 0, 0, 0, 0, 0, 1, 0, 0);
            mlp.FuncionarRede();
            if (treino)
            {
                mlp.BackPropagation();
            }
            else
            {
                testar(mlp);
            }

            mlp.AdicionarValoresParaEntradas(0, 0, 0, 0, 0, 0, 0, 1, 1);
            mlp.AdicionarValoresParaSaidas(0, 0, 0, 0, 0, 0, 0, 1, 0);
            mlp.FuncionarRede();
            if (treino)
            {
                mlp.BackPropagation();
            }
            else
            {
                testar(mlp);
            }

            mlp.AdicionarValoresParaEntradas(0, 0, 0, 0, 0, 0, 0, 1, 0);
            mlp.AdicionarValoresParaSaidas(0, 0, 0, 0, 0, 0, 0, 0, 1);
            mlp.FuncionarRede();
            if (treino)
            {
                mlp.BackPropagation();
            }
            else
            {
                testar(mlp);
            }
        }