COMO A MINERAÇÃO DE DADOS PODE AJUDAR O MEIO AMBIENTE
Views: 35
A 4º revolução industrial trouxe a ficção científica para o dia a dia. Interação com robôs, criptomoedas e nanotecnologia fazem parte do novo dinamismo da sociedade. E, mesmo que carros voadores ainda não tenham sido inventados, a indústria tecnológica se desenvolve a cada dia, alinhada a outros setores, como comércio e agricultura. Ao contrário do que se pensa, a indústria 4.0, mudou a interação entre tecnologia e natureza. A relação que um dia foi exploratória, passa a ser de parceria. Visto que a natureza é o alicerce para o desenvolvimento da sociedade.
Sob este ponto de vista, o projeto FLORA desenvolveu uma estufa inteligente, que, a partir da mineração de dados consegue tomar as decisões mais benéficas para a planta. Para que este processo ocorra, é necessário que haja o cruzamento de dados enviados pelos sensores e os dados inseridos pelo usuário. A estufa conta com sensores que medem a temperatura, umidade, luminosidade, além disso é possível controlar a cor e intensidade luminosa. Fatores que são essenciais para o desenvolvimento de qualquer planta. E a interface, permite a interação do usuário com o sistema, podendo controlar esses fatores e fazer um “diagnóstico da planta”, a partir de um questionário, onde o cliente dá uma nota de 0 a 10.
Enquanto isso, dentro do banco de dados, são armazenados, a todo o momento, os valores registrados pelos sensores, que junto com a nota dada pelo usuário começam o processo de cruzamento de dados. A nota da planta funciona como uma avaliação dos sensores, e os valores serão usados como parâmetros para o sistema fazer a tomada de decisões. Para que isto ocorra, o sistema busca encontrar um padrão, por isso, o armazenamento de dados é essencial, porque possibilita a precisão na hora de “encontrar o padrão ideal para a planta”. A ferramenta Weka, utilizada nesse processo, possui vários métodos e algoritmos para o Machine learning, o método utilizado foi o Multilayer Perceptron que é estruturado em camadas de entrada, camadas ocultas e saída, funcionando como uma rede neural. Que, através da Backpropagation testa os valores inúmeras vezes até que o sistema encontre uma conclusão, que, neste caso é o valor ideal.
No projeto FLORA, este sistema foi implementado na irrigação da planta, já que a água é um fator determinante para o desenvolvimento desta. Os benefícios da I. A. (Inteligência Artificial) quando aplicada na agricultura são inumeráveis. Vale ressaltar que o agronegócio representa mais de 70% do consumo de água potável do planeta, e medidas como esta promovem o consumo consciente e diminuem as chances do desperdício, já que levam em consideração o melhor desenvolvimento para a planta, evitando a perda de safras, que geralmente são causadas por mudanças climáticas, que alteram os ciclos de chuva e por consequência a irrigação.
Tecnologias como esta permitem a modernização do campo e da produção sem que ocorram grandes danos ao meio ambiente, fazendo com que a consciência ambiental cresça em comunhão com os avanços tecnológicos. Ponto chave da Indústria atual, cujo o grande desafio é promover a interação entre sociedade e natureza de maneira equilibrada.
COMO APLICAR A BIBLIOTECA WEKA:
1.Abrir alguma IDE para Java:
Neste projeto foi utilizado a NetBeans, porém sinta-se a vontade de utilizar Eclipse ou IntelliJ. Então é só seguir os passos para criação de um projeto. O nome do meu projeto é ‘Artigo_weka’:
2.Delete o arquivo que vem pronto:
É preciso deletar o arquivo que vem pronto e criar uma classe novamente na pasta <default package>. Ao criar essa classe eu dei o nome de ‘artigo_weka’:
3.Adicionar a biblioteca Weka
A biblioteca Weka estará dentro do arquivo de programa do aplicativo, provavelmente neste caminho:
C:\Program Files\Weka-3-8-4\weka.jar
4.Adicionar um arquivo .arff para servir de exemplo:
Esse arquivo será disponibilizado no github pelo link: https://github.com/Flora-sketch/Documentos-Weka
-Basta adicioná-lo na arquivo do projeto de forma que fique conforme abaixo
Um arquivo .arff (Attribute-Relation File Format) é o gerado pela ferramenta e correlaciona instâncias de atributos, porém é importante lembrar que também é possível realizar o processo utilizando um arquivo .csv delimitado por vírgula.
5.Código:
–Primeiro passo: adicionar as importações necessárias:
import java.util.Scanner;
import weka.classifiers.functions.MultilayerPerceptron;
import weka.core.Instances;
import weka.core.DenseInstance;
import weka.core.converters.ConverterUtils.DataSource;
–Depois, deve ser adicionado dentro da classe artigo_weka uma função ‘main’:
public class artigo_weka {
/**
* @param args the command line arguments
*/
public static void main(String args[]) throws Exception {
}
}
-Dentro dessa função adicionar mensagens que serão impressas na IDE, e que o usuário mostrará o caminho do arquivo que usará no processo:
System.out.println("Olá, vamos programar?");
System.out.println("Localização e nome do arquivo?");
System.out.println(" obs.: Digite o caminho completo, sem aspas");
System.out.print(" Resposta: ");
Scanner scanner = new Scanner(System.in);
String arquivo = scanner.nextLine();
-Após aquela parte, é importante colocar isso aqui para o teste do arquivo e a criação de uma datasource e dataset com ele que serão usados pela biblioteca weka:
try {
DataSource ds = new DataSource(arquivo);
System.out.println(" info: o arquivo deu certo");
} catch (Exception ex) {
System.err.println("erro: " + ex.getMessage());
System.out.println("Recarregue o projeto, deu erro");
System.out.println(" *provavelmente o nome está incorreto* ");
}
DataSource ds = new DataSource(arquivo);
Instances ins = ds.getDataSet();
-Então é adicionado isso, que serve para saber quantas colunas estaremos lidando, o usuário responde o questionamento pela própria IDE:
Scanner in = new Scanner(System.in);
System.out.println("Quantas colunas há: ");
System.out.print(" Resposta: ");
int colunas = in.nextInt();
ins.setClassIndex(colunas - 1);
-Assim como citado no começo do artigo, neste projeto será utilizado o método Multilayer Perceptron:
MultilayerPerceptron ml = new MultilayerPerceptron();
ml.buildClassifier(ins);
-A classe deverá ser a última coluna do documento, conforme o programado:
int classe = colunas; // a última coluna será a prevista
DenseInstance novo = new DenseInstance(classe);
novo.setDataset(ins);
-Aqui os valores da linha da previsão são adicionados, assim o usuário adiciona valores, e com eles se preve a o valor da classe:
System.out.println("obs.: caso a informação na coluna não"
+ " importe, digite: 0 "); //caso a coluna for de datas....
for (int i = 1; i <= colunas; i++) {
if (i != classe) {
System.out.println("coluna " + i + ":");
System.out.print(" Resposta: ");
int valor = in.nextInt();
novo.setValue(i - 1, valor);
}
}
-A previsão em si:
double probabilidade[] = ml.distributionForInstance(novo);
System.out.println("valor utilizando MultilayerP.:"
+ " " + probabilidade[0]);
6.O funcionamento deve ser conforme abaixo
Veja mais sobre nosso projeto:
Quem escreveu o artigo? Alicia Brito de Almeida
Quem descreveu o código? Maria Paula Bastos
Parabéns pelo projeto.
obrigadaaa <3
Muito Show, parabéns para a equipe!!
muito obrigadaa
Valeu Cliestenes!!!