• Nenhum resultado encontrado

Análise de desempenho de modelos de classificação de elementos arquitetônicos em modelos BIM

N/A
N/A
Protected

Academic year: 2021

Share "Análise de desempenho de modelos de classificação de elementos arquitetônicos em modelos BIM"

Copied!
58
0
0

Texto

(1)

CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA DEPARTAMENTO DE COMPUTAÇÃO

Análise de Desempenho de Modelos de Classificação de

Elementos Arquitetônicos em Modelos BIM

Trabalho de Conclusão de Curso

Eike Natan Sousa Brito

Departamento de Computação/UFS

São Cristóvão – Sergipe 2020

(2)

CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA DEPARTAMENTO DE COMPUTAÇÃO

Eike Natan Sousa Brito

Análise de Desempenho de Modelos de Classificação de

Elementos Arquitetônicos em Modelos BIM

Trabalho de Conclusão de Curso submetido ao De-partamento de Computação da Universidade Federal de Sergipe como requisito parcial para a obtenção do título de Bacharel em Ciência da Computação.

Orientador(a): Andre Britto de Carvalho Coorientador(a): Marco Antônio Brasiel

São Cristóvão – Sergipe 2020

(3)

Com a busca de novas tecnologias, a construção civil se depara com o BIM (Building Information Modeling), um modelo capaz de conectar diversas áreas e participar do ciclo todo de vida do projeto. Porém, esse modelo não é tão simples de ser desenvolvido e a quantidade de dados que fornece acaba dificultando a construção e avaliação do mesmo. Para isso, desenvolvedores começaram a utilizar de técnicas de aprendizagem de máquina para auxiliar na classificação de objetos em modelos BIM. O objetivo desse trabalho foi extrair os dados BIM e converte-los para um arquivo IFC, onde foi desenvolvido um sistema capaz de ler os dados, transforma-los em dataframes, onde serão utilizados para treinamento e teste dos modelos criados (máquina de vetor de suporte, máquina de vetor de suporte com hiperparâmetros, máquina de vetor de suporte de classe única, árvore de decisão, floresta aleatória e PU learning), para enfim, realizar três experimentos e compara-los para obter os melhores e piores classificadores para predição de paredes, portas e janelas em projetos arquitetônicos. Como base do projeto, utilizará um trabalho da literatura, onde todo o processo será replicado e depois melhorado de acordo com os problemas encontrados. A partir dos dados obtidos serão comparadas e averiguadas as diferenças de cada projeto e quanto impacta no valor de predição do modelo no problema, além de demonstrar uma classificação para cada um dos classificadores criados a partir do problema.

Palavras-chave: BIM, IFC, aprendizado de máquina, SVM, SVM One-Class, árvore de decisão,

(4)

1 Introdução . . . . 4 2 Fundamentação Teórica . . . . 8 2.1 BIM . . . 8 2.2 IFC . . . 10 2.3 Aprendizado de máquina . . . 11 2.3.1 Dados . . . 12 2.3.2 Classificação . . . 15 2.3.3 Modelos . . . 17

2.3.3.1 Máquina de Vetor de Suporte (SVM) . . . 17

2.3.3.2 Árvore de decisão (DT) . . . 17

2.3.3.3 Floresta aleatória (RF) . . . 19

2.3.4 Abordagens para os modelos . . . 19

2.3.4.1 Classe única ou One-Class . . . 19

2.3.4.2 PU Learning(PU) . . . 20 2.3.4.3 Hiperparâmetros . . . 21 2.3.5 Avaliação . . . 21 2.4 Trabalhos relacionados . . . 23 3 Desenvolvimento . . . . 25 3.1 Carga de dados . . . 25 3.2 Modelos de Aprendizagem . . . 28 3.3 Avaliação . . . 33 4 Experimentos. . . . 35 4.1 Metodologia . . . 35 4.2 Algoritmos e Parâmetros . . . 39 4.3 Resultados . . . 40 4.4 Considerações Finais . . . 50 5 Conclusão . . . . 53 Referências . . . . 54

(5)

1

Introdução

Tecnologias e metodologias que possam ajudar na área de execução, projetos e fiscalização de obras são necessárias para assegurar uma melhoria na aplicação dos recursos. Com o desenvolvimento tecnológico é possível atender as exigências e sanar as deficiências deste mercado. Com isso, muitas empresas estão mudando seus padrões de projeções bidimensionais (2D) e começando a utilizar modelos tridimensionais (3D), investindo em treinamento e equipamentos específicos. Com esta nova modelagem, surge o conceito Building Information Modeling, uma nova técnica de desenvolvimento de projetos de Arquitetura, Engenharia e Construção (AEC) (EASTMAN; TEICHOLZ; SACKS,2011).

Building Information Modeling, em português, Modelagem de Informações da Construção ou, simplesmente, BIM é um conceito de processo integrado que conecta as informações sobre um projeto desde a concepção até a construção, com o objetivo de promover o gerenciamento de todas as etapas do projeto, ou seja, que ao se modelar uma parede usando o BIM é possível não especificar apenas parâmetros de espessura, comprimento e altura, mas por exemplo, o material da parede, o fabricante, o custo ou prazo para ser construído, dentre outras possibilidades.

Os usos do BIM podem ser classificados do 3D até o 7D, cada uma delas representa uma forma de utilizar essa metodologia em empreendimentos e cada uma tem seu objetivo próprio. O 3D representa a produção dos modelos ou projetos, o 4D adiciona o tempo de planejamento, o 5D analisa o quanto irá custar o projeto, o 6D verifica a sustentabilidade do edifício e o 7D encarrega-se do gerenciamento, manutenção e operação do projeto após a construção. Apesar de estarem dispostos em sequência as utilizações podem ser realizadas de forma isolada, ou seja, é possível fazer uma análise 5D sem necessariamente fazer uma inspeção 4D.

Assim, vale ressaltar que o BIM não é um software, ele é um conceito fundamentado em sistemas informatizados, que são os sistemas CAD. Para exemplificar, os softwares mais utilizados com esse conceito são: Revit® da empresa Autodesk® e ArchiCAD® da empresa Graphisoft®. Entretanto, se cada funcionário utilizar softwares distintos para trabalhar com

(6)

modelo BIM, um arquivo não irá funcionar no outro, pois eles serão incompatíveis, e para isso foi criado um formato de dados capaz de trocar as informações entre as diversas aplicações, inclusive de fabricantes diferentes de softwares, chamado IFC.

Industry Foundation Classesou IFC, consiste em um padrão universal, que possibilita a interoperabilidade entre os processos, admitindo que os projetos sejam elaborados por qualquer software que aplica esse conceito. Ou seja, caso 2 funcionários utilizem o modelo BIM, porém um deles desenvolve pelo software ArchiCAD®, que possui a extensão de arquivo .pnl e outro utiliza o software Revit®, que possui a extensão de arquivo .rvt, ambos não conseguiriam acessar as informações do outro, para isso é necessário converter para o modelo IFC, onde seus softwares são compatíveis para essa extensão.

O IFC contém especificação de mais de 600 classes de objetos, abrangendo uma parte substancial das informações que são necessárias para a representação do modelo do edifício. Apesar disso, algumas características particulares do setor da construção civil dificultam a efetiva integração dos modelos, como a profunda fragmentação do setor, a construção de produtos únicos, a grande variedade de produtos e detalhes, entre outros. Com isso, o IFC não garante necessariamente que a integridade dos dados seja mantida.

Com a utilização do BIM e o crescimento de dados fornecidos por projeto, acaba formando um grande volume de dados e demonstrando um grande interesse aos cientistas de dados. Cientista de dados é um termo dado para profissionais quem lidam com o grande volume e tráfego de dados, de acordo comDavenport e Patil(2012), onde possui a função de coletar, compilar, analisar, interpretar e/ou promover um negócio em termos de desenvolvimento de novas estratégias de marketing e, de fato, utilizados para finalmente colher lucros para a empresa. Uma das áreas desses cientistas que mais cresce é o de Aprendizado de Máquina.

Aprendizado de máquina (AM) é um campo da inteligência artificial que visa explorar estudos e construções de algoritmos que possibilitam compreender os dados de maneira autônoma (TAN; STEINBACH; KUMAR,2006). Portanto, é possível extrair e reconhecer padrões de um grande volume de dados, construindo dessa maneira um modelo. Uma vez que tenham aprendido, são capazes de executar tarefas complexas e dinâmicas, prever com mais precisão, reagir em situações diversas e comportar-se de forma inteligente.

Na área de BIM, a existência de dados estruturados definidos no formato IFC, possibilita a aplicação de técnicas de AM para melhorar o processo de construção. Nesse contexto o artigo de (KOO; SHIN,2018), demonstra muito bem como ele utilizou o modelo BIM para transformar os dados em um arquivo IFC. Com isso, o autor através de um modelo de aprendizagem denominado Máquina de Vetores de Suporte (SVM) e os dados lidos do arquivo IFC, conseguiu criar um classificador capaz de aprender a detectar portas, paredes, lajes, janelas e corrimões, resultando em uma precisão acima de 90% em todos os elementos, revelando uma alta acurácia, porém esses resultados possuem limitações, que são:

(7)

1. Base de dados pequena - (KOO; SHIN,2018) utilizou 3 modelos BIM arquitetônicos e selecionou 5 classes (de 14) para classificação (parede, laje, porta, janela e corrimão), dessas classes ele obteve 1864 dados (1272, 84, 353, 122 e 33, respectivamente). Além de ter uma pequena quantidade de classes de classificação, muitas dessas classes não têm uma quantidade de dados razoável, exemplo disso são 33 corrimões.

2. Somente um algoritmo de predição - O autor utilizou o modelo SVM para cada classe IFC individualmente, predizendo se é ou não é aquele objeto. Como cada modelo pode responder de uma forma diferente para cada problema, então o ideal é utilizar diversos modelos para encontrar aquele com maior acurácia.

3. Metodologia inconveniente - (KOO; SHIN,2018) separou os dados para cada tipo de classe individualmente (parede, laje, porta, janela e corrimão), após isso ele criou um modelo para classificar se é ou não uma parede e se é ou não é uma porta. Porém ele utilizou um método não muito conveniente, pois ele pegou 80% dos dados de um tipo de classe e aplicou para treinamento, depois utilizou para teste os 20% dos dados restantes do mesmo tipo de classe mais 10% de outros tipos de classe. Ou seja, para o modelo de classificação de parede ele utilizou 1272 paredes, onde foram 1017 (80%) para treinamento e 255 (20%) para teste, e adicionou 126 (10%) objetos aleatórios (laje, janela e corrimão) para teste, resultando em um total de 1398 dados. Porém, analisando os dados para teste, ele possui 2/3 dos dados de paredes e 1/3 de não parede, ou seja, se o classificador afirmar que todos os objetos para teste são paredes, no mínimo ele vai ter uma precisão acima de 66%, fazendo com que essa metodologia utilizada tanto para treinamento como teste ser um pouco inconveniente.

O objetivo geral desse trabalho foi desenvolver um sistema capaz de ler arquivos IFC, transforma-los em dados e inseri-los em máquinas de aprendizagem, para enfim realizar experimentos para obter uma avaliação de cada um dos classificadores criados. Inicialmente foi reproduzido o experimento de (KOO; SHIN,2018), onde para consertar suas limitações há uma necessidade de: trazer uma base de dados maior, pois a utilizada é pequena tanto no elementos para classificação, quanto na quantidade de dados que possui, por isso, foram utilizadas 9 bases de dados ao invés de 3, onde todas elas passaram por um pré-processamento de dados antes de serem inseridas nos modelos; aumentar os tipos de modelos utilizados para aprendizado, pois não há possibilidades de saber antecipadamente qual o melhor modelo, por isso foram implementados classificadores SVM, SVM de classe única, SVM com hiperparâmetros, árvore de decisão, floresta aleatória e PU Learning ao invés somente do SVM de classe única; e utilizar uma metodologia capaz de avaliar o desempenho de cada classificador e compara-los, pois a metodologia utilizada não é muito "conveniente"de se utilizar, por isso, foi utilizada uma metodologia de 70% de dados aleatórios para treino e 30% dos dados restantes para teste. Com todos os classificadores implementados, foram realizados experimentos fornecendo informações

(8)

de como um modelo reage a somente um projeto tanto para treino quanto para teste (experimento um), como um classificador lida a vários projetos unidos como se fosse um, tanto para treino quanto para teste (experimento dois) e como um modelo responde quando possui vários projetos para treino e um projeto isolado para teste (experimento três). Com essas informações é possível classificar cada um dos modelos de aprendizagem de melhor para pior classificador relacionado ao problema de predição de paredes, portas e janelas em projetos arquitetônicos.

O primeiro capítulo deste trabalho fornece informações sobre o modelo BIM, o IFC, dados e preparação de dados, tipos de modelos de mineração de dados, forma de avaliar e comparar modelos e os artigos relacionados. Na segunda seção está relacionada o desenvolvimento do sistema em python, relacionado a obtenção dos dados, a criação dos modelos e a forma de avalia-los. A terceira seção demonstra os resultados traçados pelo objetivo informando quais melhores e piores classificadores para previsões do problema. A quarta seção informa se o objetivo foi cumprido e projetos futuros.

(9)

2

Fundamentação Teórica

Este capítulo descreve as informações relacionadas ao projeto, como: o que é o BIM e suas vantagens; o uso do IFC e sua interoperabilidade; o que é aprendizado de máquina e a importância dos dados no mundo atual; alguns tipos de modelos de aprendizagem de máquina existem; e além de explicar como avaliar os tipos de modelos de dados.

2.1

BIM

Como já citado anteriormente o BIM (Building Information Modeling ou Modelagem de Informações de Construção) não é uma tecnologia, mas sim um processo na arte de planejar e executar uma construção. Penttilä(2016) afirma que este modelo é um conjunto de políticas, processos e tecnologias que geram uma metodologia para gerenciar os projetos de construção e seus dados digitais ao longo do ciclo do edifício.

O surgimento desta ferramenta se deu "depois da inovação do CAD 3D paramétrico", muito explorado pelas industrias aeroespacial, automobilística e de manufatura (MONTEIRO,

2011). Ela permite não apenas figuras geométricas 3D com dimensões, volumes e áreas, mas abrange informações complementares como acabamento, fabricante, custo, relacionamento com outros objetos, entre outros. Sendo assim, pode se extrair muito mais rápido as informações, além de que caso haja modificações estruturais, atualiza-se toda fonte de dados de uma única vez. Por ser uma ferramenta inovadora, é necessária uma equipe bem preparada tanto nas fases de controle, quanto na de acompanhamento, onde acaba elevando o custo de implementação, porém, permite o gerenciamento da informação ao longo do ciclo de vida completo de uma edificação (COELHO; NOVAES,2018).

A maior vantagem do BIM, seria a quantidade de dimensões que pode se trabalhar em um mesmo projeto. Conforme as informações inseridas no modelo, é possível reduzir as falhas e o tempo de execução, aumentando o controle sobre as atualizações (PARREIRA,2013).

(10)

Segundo (EASTMAN; TEICHOLZ; SACKS,2011) o BIM possui 7 dimensões, onde cada uma pode ser trabalhada de forma isolada sem a obrigatoriedade de sequência de modelos, havendo somente a necessidade de ter o modelo 3D, ou seja, é possível fazer uma análise 6D sem necessariamente fazer uma inspeção 4D, como mostra na Figura1.

• BIM 3D - Modelo Virtual 3D - aceito pelos projetistas como uma extensão do modelo 2D, ele é capaz de visualizar todos os elementos pelas 3 dimensões (X, Y e Z), além de detectar colisões. Essa detecção é baseada em algoritmos desenvolvidos na indústria de jogos e computação gráfica, onde devem ser mais exatos do que rápidos. Esse modelo permite economizar custos significativos tanto no processo de design quanto na obra local. • BIM 4D - Programação - divide o projeto (modelo 3D) em fases, no qual cada elemento

é atribuído uma sequência de montagem. Além de permitir a visualização das fases, é possível fazer uma simulação do cronograma e um planejamento preciso do prazo de entrega do edifício.

• BIM 5D - Estimativa - permite uma rápida estimativa de custo para as fases do projeto, sendo capaz gerar relatórios financeiros e comparar o tempo de execução e o custo total de várias alternativas, podendo promover a otimização do investimento.

BIM 6D - Sustentabilidade - permite a integração de dados relacionados ao meio

ambiente (proteção ou consumo de energia), fazendo com que possa otimizar os custos e investimentos do edifício, durante e após a construção.

BIM 7D - Gerenciamento de Instalações - com o banco de dados bem detalhado para

cada elemento incorporado, exemplo: construção (estruturas); acabamento (tipos de piso); equipamentos (lâmpadas, ar-condicionado, entre outros); é possível informar a manutenção ou substituição dos elementos, informar a garantia ou consumo de tempo, permitindo um melhor gerenciamento e avaliação do componente após a construção.

Como há uma grande quantidade de mudanças para a implementação do BIM comparado ao CAD, é normal que haja resistência na sua implantação. (COELHO; NOVAES,2018) afirma que a cultura de utilização de softwares tradicionais como Autocad® apresenta uma barreira para a utilização de novos softwares mais avançados, pois esta mudança alterará a rotina atual, configuração, estudo e personalização pessoal do usuário. De acordo com (SOUZA,2009), softwares com metodologia BIM possuem um alto custo e geram uma quantidade de dados muito grande, fazendo com que haja uma alta demanda de processos e requisitando aquisições de hardwares de alto desempenho, e com isso acaba dificultando a implementação do modelo em muitas empresas.

A partir da análise de (EASTMAN; TEICHOLZ; SACKS,2011), o conceito BIM não está relacionado a um tipo de software, pois se um único programa fosse capaz de atender todo o ciclo de vida de uma edificação, seria complexo e rígido demais. A criação do modelo

(11)

BIM ocorre por vários tipos de aplicações, com diferentes finalidades e essas aplicações nem sempre conseguem se conectar, impossibilitando a troca de dados entre o modelo (IBRAHIM ROBERT KRAWCZYK, 2004). Segundo (BOTTEGA,2012), após a experiência de uso de plataformas BIM, foram relatadas dificuldades para a troca de arquivos devido ao seu tamanho de dados e quantidade de softwares distintos.

Figura 1 – Ilustração do BIM - Fonte:HOCH

2.2

IFC

Em agosto de 1994, a AutoDesk® se reuniu com outras empresas com o objetivo de desenvolver aplicativos integrados, chamando-os de Industry Alliance for Interoperability. Anos depois, a aliança foi reconstituída com uma organização sem fins lucrativos, com o objetivo de desenvolver padrões independentes para a interoperabilidade dos softwares utilizados na construção civil, criando a International Alliance for Interopelability e seu modelo de dados neutro chamado de Industry Foundation Classes, ou IFC (EASTMAN; TEICHOLZ; SACKS,

2011)

Sendo assim, o IFC foi projetado para atender todas as informações da construção durante todo o ciclo da vida: planejamento; projeto; análise; simulação; construção; e ocupação (KHEMLANI,2004). O formato tem como base a linguagem e conceito ISO-STEP EXPRESS, com algumas pequenas restrições na linguagem EXPRESS. STEP (Standard for the Exchange of Product Model Data) é o nome oficial da norma ISO 10303, cuja a tradução seria Padrão para o Intercâmbio de Dados de Produtos, que trata-se de um padrão internacional para a integração, apresentação e o intercâmbio de dados de produtos industriais, e criado pelo Comitê Técnico ISO TC 184 (ISO/TC-184/SC-4,2004).

O IFC fornece um modelo semântico e orientado a objetos para armazenar e trocar informações (TAUSCHER; BARGSTäDT; SMARSLY,2016). Porém infelizmente, mesmo após

(12)

anos do início do desenvolvimento do IFC, as trocas de dados ainda sofrem perdas significantes entre as aplicações. Como ele é um padrão ISO aberto, várias linguagens de consulta BIM baseadas em IFC foram desenvolvidas, como mostra na Figura 2. (PAZLAR; TURK,2008) realizaram diversos testes de modelos para formato IFC e revelou sérias inconsistências na representação dos elementos geométricos após processos de importação e exportação. Eles concluíram que a verdadeira interoperabilidade ainda está muito distante da aplicação na prática.

Figura 2 – Ilustração do IFC - Fonte: Própria (2019)

(FREIRE; MARTHA; SOTELINO, 2015) criaram um modelo BIM e importou em diversas ferramentas, e como esperado ocorreu algumas inconsistências na troca de informação, dentre elas foi encontrado perda de elementos, nós desconectados e orientação de elementos. A partir da análise deles e de (KIVINIEMI,2008) foi ressaltado que o uso real do formato como facilitador de interoperabilidade entre os atores do projeto ainda permanece baixo.

2.3

Aprendizado de máquina

Aprendizado de Máquina ou AM, é um ramo da Inteligência Artificial onde permite que computadores aprendam comportamentos, detectem padrões e tomem decisões com uma interação mínima de humanos (MITCHELL,1997), o mesmo define formalmente como: "Um programa aprende a partir da experiência E, em relação a uma classe de tarefas T, com medida de desempenho P, se seu desempenho em T, medido por P, melhora com E."

Através de um conjunto de dados, os algoritmos de aprendizagem devem passar por um processo de treinamento, gerando um modelo para tratar novas situações e podendo resolver dois tipos de problemas: classificação, quando se busca um resultado discreto; e regressão, quando se busca um resultado contínuo (TAN; STEINBACH; KUMAR,2006).

Segundo (MOHRI; ROSTAMIZADEH; TALWALKAR,2016) AM é um subcampo da Inteligência Artificial onde engloba o estudo e a construção de sistemas inteligentes a partir

(13)

de dados. Logo após efetuar o aprendizado, que também pode ser chamado de treinamento, o sistema pode classificar ou estimar saídas para instâncias desconhecidas. (SIMON,2015) define como "o campo de estudo que fornece a computadores a habilidade de aprenderem sem serem explicitamente programados".

(WITTEN; FRANK; HALL,2011) descreve 4 conceitos para caracterizar os algoritmos de AM:

• Classificação - onde um conjunto de exemplos pertencentes à classe são utilizados para a construção do modelo.

• Associação - onde identifica-se grupos de um ou mais atributos que determinam o valor da classe.

• Agrupamento - onde exemplos semelhantes de acordo com um critério são agrupados. • Regressão - onde através de um modelo matemático correlaciona atributos com o valor da

classe.

Esse processo de aprendizagem passa por um Fluxo de Aprendizagem de Máquina, que é representado por: pegar os dados; preparar; limpar e manipular os dados; escolher e treinar o modelo; testar os dados; avaliar e melhorar (TAN; STEINBACH; KUMAR,2006).

2.3.1

Dados

De acordo com (SOMASUNDARAM; SHRIVASTAVA; SERVICES, 2011), dados podem ser um conjunto de valores com os quais são obtidas informações. O dado por si não tem significado algum, e só terá quando for usado nas tomadas de decisão ou na realização de processos adequados. Em geral, o dado é uma representação simbólica ou atributo da entidade. Base de dados ou database (de acordo com o termo inglês) é um conjunto de dados que pertence ao mesmo contexto e que são armazenados para que possam ser usados em ações futuras. (SOMASUNDARAM; SHRIVASTAVA; SERVICES,2011) afirma que os dados começaram com uma utilidade que terminava após o objetivo, porém com a evolução da tecnologia, a mentalidade do uso dos dados mudou, de forma que eles se tornaram matéria-prima dos negócios, um recurso econômico vital usado para criar novas formas de valor econômico.

Segundo (BUTZKE,2000), modelo de dados é um conjunto de conceitos utilizados para descrever uma base de dados, com o objetivo de representar uma estrutura de dados de forma organizada através da descrição de dados, relacionamento entre dados, semântica e restrições.

(TAN; STEINBACH; KUMAR,2006) afirmam que "um conjunto de dados é um arquivo, no qual os objetos são registros (ou linhas) no arquivo e cada campo (ou coluna) corresponde a

(14)

Matricula Nome Turma Média

200010101515 Carlinhos da Silva 2º A 3,24

200113141516 Seu Silveira 1º B 3,51

200008040103 Manoel Menezes 2º A 3,62

Tabela 1 – Exemplo de dados de alunos - Fonte: Própria (2019)

um atributo". Como mostra na Tabela1, onde possui um registro de informações de alunos, em que cada linha corresponde a um aluno e cada coluna corresponde a um atributo do mesmo.

Mas o que é um atributo? De acordo com (TAN; STEINBACH; KUMAR,2006), "um atributo é uma propriedade ou característica de um objeto que pode variar, seja de um objeto para outro ou de tempo para outro". Um exemplo, é a cor dos olhos de uma pessoa, que varia de um para outro, ou a temperatura da pessoa que varia com o tempo.

Existem diferentes tipos de atributos e essa diferença é utilizada para facilitar na comparação e ordenação entre eles, podendo utilizar diversas operações (igual, diferente, maior que, maior ou igual que, menor que, menor ou igual que, mais, menos, multiplicar e dividir). Um exemplo disso é um atributo como o comprimento de um objeto, ele possui muito mais propriedades dos números do que das letras. Dado estas propriedades, podemos definir 4 tipos de atributos:

• Nominal - os valores são nomes, onde fornece somente informações para distinguir um objeto do outro (igual e diferente). Exemplo: Cor dos olhos.

• Ordinal - os valores possuem propriedades suficientes para ordenar os objetos (igual, diferente, maior que, maior ou igual que, menor que é menor igual que). Exemplo: Notas. • Intervalar - os valores possuem unidade de medida (igual, diferente, maior que, maior ou

igual que, menor que, menor igual que, mais e menos). Exemplo: Temperatura.

• Proporcional - os valores possuem proporções (igual, diferente, maior que, maior ou igual que, menor que, menor igual que, mais. menos, multiplicar e dividir). Exemplo: Idade.

Com a possibilidade de haver uma grande quantidade de dados, muitas vezes fica difícil analisá-los e por isso analistas de dados começaram a utilizar técnicas para solucionar o problema de excesso de informações, criando representações de diversas maneiras para visualizar os dados, de acordo com (RIBEIRO,2009). Segundo (SILVA,2007) e (NASCIMENTO; FERREIRA,2005) essas representações transformam um conjunto de dados abstratos em uma representação gráfica e interativa capaz de facilitar o entendimento ou ajudar na descoberta de novas informações.

Existem diversas formas de representar as informações, como exemplo foi utilizado um conjunto de dados falsos de publicidade, indicando se um usuário de internet específico clicou ou não em uma propaganda (Figura3), logo abaixo na Figura4, identifica-se a quantidade de

(15)

dados que possui nessa base, mostrando um total de 1000 pessoas. Com esse número grande de informações, acaba dificultando analisar o conhecimento que possui, porém a partir de um gráfico é capaz de visualizar uma informação geral desejada como mostra na Figura5, onde a partir de um histograma é capaz de analisar a quantidade de pessoas de acordo com sua idade, ou a relação da média da renda do consumidor na região e sua idade (Figura6).

Figura 3 – Imagem com a tabela de dados do usuário - Fonte: Própria (2019)

Figura 4 – Informações do tamanho dos dados - Fonte: Própria (2019)

Figura 5 – Histograma - Fonte:

Pró-pria (2019) Figura 6 – Gráfico de Dispersão

-Fonte: Própria (2019) A qualidade dos dados é uma das principais preocupações em Aprendizado de Máquina, pois a maioria dos métodos utilizados nessa área necessita estritamente dos dados. Dessa forma,

(16)

a qualidade do conhecimento extraído é amplamente determinada pela qualidade dos dados fornecidos como entrada (GUIMARãES; MEIRELES; ALMEIDA,2019).

Banco de dados reais são suscetíveis a ruídos, ausência e inconsistência de dados devido ao seu tamanho, geralmente muito grande, e provavelmente, origem de múltiplas fontes heterogêneas. Consequentemente, é possível que a qualidade desses dados seja baixa, levando o aprendizado de máquina a ter resultados de baixo desempenho. Portanto é necessário que haja uma preparação de dados para que possa ser aplicado a algoritmos AM, essa preparação é chamada de pré-processamento de dados (HAN; KAMBER; PEI,2011).

Segundo (NEVES,2003) o pré-processamento de dados é um processo semiautomático, ou seja, que depende da capacidade da pessoa que a conduz em identificar os problemas presentes nos dados e utilizar métodos apropriados para solucionar cada um dos problemas.

De acordo com (NEVES,2003), é muito comum na base de dados apresentar algum tipo de ruído, para isso é necessário fazer uma limpeza de dados, onde detecta e remove anomalias, toma medidas por dados faltantes, ou retira algum atributo irrelevante, pois todo procedimento poderá aumentar/melhorar a qualidade do treinamento do modelo. Exemplos de medidas para tratar de dados faltantes são: ignorar o dado faltante; preencher manualmente; usar um valor global para preencher; usar um valor estatístico para preencher; ou usar um valor mais provável.

2.3.2

Classificação

Classificação é a tarefa de organizar objetos em uma categoria pré-definida entre diversas outras (TAN; STEINBACH; KUMAR,2006). Os dados de entrada para classificação são um conjunto de registros, que podem ser chamados também de instância, esses dados são divididos em 2 grupos (x e y), onde x é o conjunto de atributos e y é denominado de rótulo da classe ou atributo alvo. A tabela 2mostra um exemplo de um conjunto de dados dos vertebrados, onde possui atributos (pele, cria, aquático, aéreo e nome) e o alvo, onde determina se é mamífero, réptil, peixe, entre outros.

Nome Pele Cria Aquático Aéreo Alvo

Humano Cabelo Sim Não Não Mamífero

Salmão Escamas Não Sim Não Peixe

Morcego Cabelo Sim Não Sim Mamífero

Tartaruga Escamas Não Semi Não Réptil

Gato Pelo Sim Não Não Mamífero

Tabela 2 – Conjunto de dados dos vertebrados - Fonte:TAN; STEINBACH; KUMAR

(TAN; STEINBACH; KUMAR,2006) afirma que um modelo de classificação é utilizado para prever o rótulo da classe de registros não conhecidos, de acordo com o mesmo existem 2 tipos de algoritmos de aprendizado de máquina que podem fazer isso, o de classificação e de regressão. A técnica por classificação possui uma saída discreta, ou seja, possui um valor

(17)

contável, exemplo: sim ou não; alta, média e baixa. Já a regressão possui uma saída com um valor continuo, ou seja, está entre um intervalo continuo de números. Exemplo de alguns algoritmos de aprendizagem são, árvore de decisão, redes neurais, máquinas de vetor de suporte, entre outros (TAN; STEINBACH; KUMAR,2006). Cada uma delas utiliza um algoritmo de aprendizado para ajustar/estimar o modelo mais apropriado, que a partir dos dados de entrada e o modelo ideal possa prever corretamente os rótulos de classe de registros que nunca viu.

O primeiro passo para a classificação é mapear e modelar o conjunto de dados que pretende aplicar o algoritmo. A partir do processamento de dados é criado um conjunto de treinamento que servirá de entrada para o algoritmo de aprendizagem, esse treinamento tem o objetivo de mapear as características de interesse, ou seja, procurar atributos que se relacione com o rótulo de classe. Portanto, a construção de um classificador confiável necessita de uma seleção precisa do conjunto de dados de treinamento. Para finalizar, o classificador passa por uma fase de testes, onde busca avaliar o desempenho do modelo gerado (FERREIRA,2016).

Porém, existem alguns problemas presentes na fase de treinamento e teste, e um deles é o overfitting. Isto ocorre quando um modelo é treinado demasiadamente, gerando valores especializados somente no conjunto de dados do treinamento, com isso qualquer outra entrada desconhecida irá apresentar uma taxa de erro maior que a tolerância estabelecida (RUSSELL; NORVIG,2009).

(TAN; STEINBACH; KUMAR,2006) cita que existem dois tipos de erros de classificação: erros de treinamento, onde são cometidos nos registros de treinamento e o de generalização, que são os erros esperados do modelo em registros não vistos anteriormente. Ou seja, você pode ter um modelo apropriado aos dados de treinamento e ter um erro de generalização não tão apropriado, causando um overfitting. Por isso, um bom modelo deve ter baixa quantidade de erros de treinamento, assim como, erros de generalização.

O overfitting pode ocorrer de diversas maneiras, exemplos:

• Presença de ruído - ruído é um conjunto de dados que aparentemente é inconsistente com o restante dos dados existentes, pois não segue o mesmo padrão dos demais.(LIBRALON,

2007). Exemplo: na tabela (Tabela2) da classificação dos vertebrados o morcego pode não estar rotulado como mamífero.

• Falta de amostras representativas - é quando possui uma quantidade muito pequena de registros para treinamento ou mal distribuídas, onde mesmo que todos os dados estejam corretos, o treinamento não possui exemplos suficientes para a previsão.

(18)

2.3.3

Modelos

2.3.3.1 Máquina de Vetor de Suporte (SVM)

Máquina de Vetor de Suporte ou SVM (Support Vector Machine) separa um conjunto de objetos de diferentes classes através de um conceito de planos de decisão (TAN; STEINBACH; KUMAR,2006). Tomando o problema de classificação como um problema binário, deve-se separar duas classes de acordo com uma função a partir dos dados de treinamento (LIMA,2004), com isso, máquinas de vetor de suporte são máquinas de aprendizado lineares, ou seja, pode se separar os problemas linearmente gerando um resultado onde separa as duas classes por um hiperplano.

A SVM a partir do treinamento busca encontrar o hiperplano que maximiza a margem de separação entre as classes do problema, e essa margem é a distância entre o hiperplano e as amostras de cada classe. Porém se essa margem for pequena, qualquer perturbação pode ter impacto bastante significativo sobre sua classificação, portanto são susceptíveis a overfitting (TAN; STEINBACH; KUMAR, 2006). Ou seja, modelos com margens pequenas possuem capacidades maiores por conter mais conjuntos de treinamento e serem mais flexíveis, entretanto, à medida em que a capacidade aumenta, o limite do erro de generalização também aumenta. Portanto, deve-se projetar para que maximize as margens para assegurar que seus erros de generalização sejam minimizados, como mostra na Figura7.

Figura 7 – SVM e suas margens - Fonte:OPENCV

2.3.3.2 Árvore de decisão (DT)

Árvores de decisão ou DT (Decision Tree) é uma técnica baseada na lógica que transforma o processo de tomada de decisões em um conjunto de regras de inferência, representada pelos nós da árvore, até a chegada do nó folha, que é a decisão tomada. Essa técnica tem como vantagem a

(19)

simplicidade para serem atendidas e interpretadas, onde possui a capacidade de utilizar dados não numéricos, porém, dependendo da natureza do problema a árvore pode tornar-se muito complexa (TAN; STEINBACH; KUMAR,2006).

Para a construção da árvore de decisão primeiro deve-se selecionar o nó raiz, pois a partir do valor dele irá se dividir em ramos, criando subconjuntos, um para cada valor do atributo. Esse processo se divide recursivamente para cada ramo até encontrar seu nó filho, onde tomará a decisão. Mas como determinar o atributo que irá se dividir? Escolhe-se o atributo que gere uma árvore menor e que tenha chances de classificar melhor, com isso acaba mensurando o grau de pureza de cada nó, escolhendo atributos que produz os nós filhos mais puros (CARVALHO,

2002).

Abaixo um exemplo de uma criação de uma arvore de decisão para decidir se vai ou não jogar tênis. Para isso, há certos parâmetros do ambiente que decidem se a pessoa irá ou não jogar tênis (Figura8): aspecto do céu; temperatura; umidade do ar; e vento. Com essas informações é possível que cada nó interno (vermelho) teste um atributo, e cada ramo da arvore corresponde a um valor do atributo (azul), até criar o nó folha, onde irá atribuir uma classificação (verde), como mostrado na Figura9.

Figura 8 – Exemplos de dados para treino - Fonte:GFBIOINFO

Figura 9 – Exemplo da árvore de deci-são - Fonte:GFBIOINFO

Segundo Tan, para evitar o overfitting de um modelo de árvore de decisão pode-se tomar duas estratégias:

• Pré-poda - é realizado durante o processo de construção da árvore, onde o processo para de dividir o conjunto de elementos e transforma o nó corrente em nó folha. Um exemplo para utilizar isso é quando todas as divisões possíveis gerem ganhos menores que o valor estabelecido, então esse nó vira folha.

• Pós-poda - é realizado depois do processo de construção da árvore, onde o processo remove ramos completos e tudo que está abaixo deste ramo, transformando-o em nó folha. Ele utiliza um método onde calcula a taxa de erro caso a árvore seja podada e não podada, então verifica se a taxa de erro for menor à podada, a árvore é podada, senão, continua do jeito que está.

(20)

2.3.3.3 Floresta aleatória (RF)

Floresta aleatória ou RF (Random Florest) é a técnica de aprendizado de máquina desenvolvida por (BREIMAN, 2001), ela pode ser descrita como um classificador formado por um conjunto de árvores de decisão e vetores aleatórios amostrados de forma independente, distribuídos igualmente em todas as árvores. A solução do processo de classificação é a classe com maior valor dentre todas as árvores (HAN; KAMBER; PEI,2011).

Os dados de entrada para o desenvolvimento de uma árvore aleatória são selecionados de forma aleatória utilizando a técnica bootstrap. Segundo (BREIMAN,2001), essa é técnica é utilizada para criar uma amostra a partir da amostragem aleatória conhecida, essa amostra não será necessariamente idêntica à inicial, alguns dados podem estar omitidos e outros repetidos, sendo assim, inúmeras amostras bootstrap são rapidamente criadas com ajuda computacional e algumas delas poderão ser substituídas pelas amostragens conhecidas.

Logo após a criação de amostras pelo bootstrap as árvores irão realizar a seleção do conjunto de dados e a seleção das características dos preditores, ocorrendo o crescimento da árvore e sendo executado até atender um critério de parada. De acordo com (BREIMAN,2001), logo após todas as árvores serem criadas é selecionada a árvore com o maior valor como mostra na Figura 10.

Figura 10 – Exemplo de floresta aleatória - Fonte: Própria (2019)

2.3.4

Abordagens para os modelos

2.3.4.1 Classe única ou One-Class

Classificação de classe única ou One-Class são algoritmos de aprendizado capazes de classificar elementos como normais ou anormais, ou seja, ele prediz se aquele elemento pertence ou não a classe treinada, também podem ser chamados de detectores de anomalias (outliers). Essa abordagem pode ser usada para tarefas de classificação binária com uma distribuição de classe severamente distorcida (TAN; STEINBACH; KUMAR,2006).

(21)

Segundo (MANEVITZ; YOUSEF, 2001), embora não seja projetado para esse tipo de problema, as abordagens utilizando One-Class pode ser eficazes para conjuntos de dados desequilibrados, onde não há nenhum ou muitos poucos exemplos da classe, ou dados que não possuem estrutura coerente para separar as classes que poderiam ser aprendidas por um classificador.

A abordagem de classe única é muito utilizada nas máquinas de vetores de suporte (SVM) e em árvores de decisão, onde também são utilizadas outras abordagens para melhorar a predição de cada classe. Lembrando que essa abordagem cria um classificador para uma única classe, classificando se é ou não é pertencente a classe, caso haja mais de uma classe no problema é necessário a criação de mais classificadores One-Class para predizer os outros elementos.

2.3.4.2 PU Learning(PU)

PU Learning ou aprendizado com positivo/desconhecido ou positivo/não rotulado (Positive/Unknow ou Positive/Unlabeled) é uma abordagem de classe única (One-Class) que envolve classificar os dados desconhecidos (U) através do treinamento dos dados positivos (P), onde os dados desconhecidos possui tanto dados positivos, como dados negativos (outros tipos de classe). Ou seja, existem um conjunto de dados de treinamento desequilibrado (composto por dados P e U) e são utilizados para classificação no primeiro estágio, em seguida todos os dados previstos como negativos são descritos com negativos confiáveis (RNs), por sua vez, os RNs junto com os positivos, são usados para treinar o classificador no segundo estágio. Por fim, o modelo gerado pelo segundo classificador é usado na tarefa de classificação.

Existem várias abordagens para aplicar o PU, onde todas as abordagens isolam um conjunto de dados RNs do conjunto de dados desconhecidos. Uma das abordagens foi criada por (F; J-P,2014) onde através de ensacamento e amostragens aleatórias consegue isolar melhor os negativos confiáveis da classe desconhecida. Esse processo é realizado dado um conjunto de dados contendo apenas positivos (P) e desconhecidos (U), onde possui um número A de amostras e um tamanho de amostras para auto inicialização denominado T.

O procedimento para a abordagem criada pelo (F; J-P,2014) é realizado através dos passos: criando uma amostra Bootstrap de U com tamanho T, denominado BU; treinar o classificador P vsBU; repetir T vezes ;e classificar os dados do teste com uma abordagem de conjuntos, usando os modelos ensacados. O próprio autor afirma que não há muito valor adicional quando o T é maior que 100. Essa abordagem é muito utilizada tanto para SVM, como para árvores de decisão e floresta aleatória.

O modelo de ensacamento (Bootstrap Aggregating ou Bagging) é uma maneira de diminuir a variância de sua previsão, onde é realizado a partir de repetições e dados adicionais gerados pelo o mesmo. Com isso ao aumentar o tamanho do seu conjunto de treinamento, você não necessariamente melhora a força preditiva do modelo, mas diminui a variação, ajustando a previsão estritamente ao resultado esperado.

(22)

2.3.4.3 Hiperparâmetros

Durante o treinamento o classificador lida com três categorias de dados:

• Os dados de entrada, podem ser chamados de dados de treinamento, onde é a coleção de registros com características importantes para o problema de predição.

• Os parâmetros, são as variáveis que o classificador utiliza para ajustar os dados. Um exemplo é a árvore de decisão, onde cada nó da árvore tem um peso que informa ao modelo o impacto que ele tem na predição final.

• Os hiperparâmetros são variáveis que controlam o próprio processo de treino, onde essas variáveis não estão relacionadas diretamente aos dados de treinamento pois os parâmetros mudam durante a fase de treinamento de acordo com os dados de entrada, enquanto que o os hiperparâmetros geralmente permanecem constantes, pois são dados de configuração do modelo.

Enquanto que os parâmetros são ajustados pelo processo de treino, os hiperparâmetros são ajustados por meio de execução de todo o treinamento, onde ambas as formas procuram encontrar a melhor combinação para lidar com o problema. O ajuste dos hiperparâmetros é realizado através de testes, onde cada teste é gerado um classificador com os valores definidos dentro dos limites especificados. Após cada teste, os resultados são monitorados e faz ajustes para os próximos testes, onde no final retorna os dados da configuração de valor mais eficaz, de acordo comClaesen e Moor(2015).

2.3.5

Avaliação

Assim que o modelo tenha sido construído e possa ser aplicado a um conjunto de testes, é muito útil medir o desempenho do modelo, porque tal medição pode fornecer uma avaliação imparcial do seu erro. Um dos meios de comparar o desempenho de diferentes classificadores é a precisão ou taxa de erro calculada a partir dos testes e para isso há diversos métodos que podem ser utilizados para avaliar o desempenho do classificador (TAN; STEINBACH; KUMAR,2006).

Segundo (TAN; STEINBACH; KUMAR,2006), uma das maneiras é o método holdout, onde separa os exemplos rotulados em conjunto de treinamento e teste, então um modelo de classificação é induzido ou estimado ao conjunto de treinamento e seu desempenho é avaliado no conjunto de testes. A proporção dos dados reservados para treinamento e teste varia, normalmente é 50-50 ou dois terços para treinamento e um terço para o teste. Porém, eles têm alguns problemas, pois o modelo pode ser dependente da composição do conjunto de treinamento. Para isso, criaram uma abordagem diferente, chamada sub-amostragem aleatória, onde os dados são utilizados aleatoriamente e repetidas vezes para melhorar a avaliação do desempenho. Contudo também há problemas nessa abordagem, pois não tem o controle sobre o número de vezes que cada

(23)

registro é usado para treinamento e teste. Por isso, utilizaram mais uma abordagem, a validação cruzada leave-one-out, onde cada registro é usado o mesmo número de vezes para treinamento e exatamente uma vez para teste. A desvantagem desta abordagem é que é computacionalmente custoso repetir o procedimento N vezes, onde N é o número de exemplos de treinamento.

A partir da utilização de uma das abordagens descritas acima em um modelo é possível calcular se o classificador tem valores significativos em classificar suas classes. Esses valores são calculados por algumas métricas, algumas delas são:

• A acurácia (accuracy ou ACC) é uma métrica clássica e muito utilizada na literatura, e para descobrir ela, basta calcular o número de acertos dividido pelo número total (número de acertos mais número de erros), onde essas informações são retiradas da matriz de confusão. Matriz de confusão (Figura 11) é uma tabela que mostra as frequências de classificação para cada classe do modelo, onde se o problema de classificação for binário vai apresentar 4 informações, que são:

ACC = (T P+ T N) (T P+ FN + FP + FN)

Figura 11 – Matriz de confusão - Fonte: Própria (2019)

– TP (True Positive) ou Verdadeiro Positivo - ocorre quando no conjunto real, a classe

que estamos buscando foi prevista corretamente. Exemplo, quando a pessoa está com câncer e o modelo previu corretamente que está com câncer;

– FP (False Positive) ou Falso Positivo - ocorre quando no conjunto real, a classe que

estamos buscando prever foi prevista incorretamente. Exemplo, quando a pessoa não está com câncer e o modelo previu incorretamente que está com câncer;

– TN (True Negative) ou Verdadeiro Negativo - ocorre quando no conjunto real, a

classe que não estamos buscando prever foi prevista corretamente. Exemplo, quando a pessoa não está com câncer e o modelo previu corretamente que não está com câncer;

– FN (False Negative) ou Falso Negativo - ocorre quando no conjunto real, a classe

que não estamos buscando prever foi prevista incorretamente. Exemplo, quando a pessoa está com câncer e o modelo previu incorretamente que não está com câncer.

(24)

• A precisão (precision ou PRE) é calculada a partir somente dos dados positivos, onde o cálculo é apresentado sobre os valores verdadeiro positivo divido sobre todos os positivos (verdadeiro positivo mais falso positivo).

PRE = T P

(T P+ FP)

• A revocação (recall ou REC) é utilizado para encontrar exemplos de uma classe, ou seja, "quando é realmente da classe X?". É calculado pelo número dos resultados corretos (verdadeiro positivo) dividido pelo número de resultados que deveriam ser apresentados (verdadeiro positivo mais falso negativo). Ou seja, caso seu classificador não cometa nenhum erro, a precisão do mesmo é igual a sua revocação e ambos possuem valor 1.

REC = T P

(T P+ FN)

• A medida F1 (F1-Score ou F1S) é a combinação da precisão com a revocação trazendo um número único que indique a qualidade geral do seu modelo, trabalhando bem até com um conjunto de dados que possuem classes desproporcionais. O cálculo da medida F1 é:

F1S = 2 ∗ PRE ∗ REC PRE+ REC

Com a utilização de vários tipos de métricas é possível ter uma visão mais completa do desempenho do classificador e poder avalia-lo melhor. Tais medidas permitem visualizar tanto de forma global (aplicando a média em todas as classes e resultando em um valor único) como de forma única, onde é possível verificar os pontos fortes e fracos do modelo para que possa ser melhorado.

2.4

Trabalhos relacionados

(BLOCH; SACKS, 2018) utiliza modelos BIM de apartamentos residenciais e os transforma para arquivos no formato IFC, a partir disto avalia e compara a classificação dos espaços através de regras de inferência e algoritmos de aprendizado de máquina. Eles utilizam uma rede neural onde 70% dos dados são para treinamento (150 espaços, onde foi dividido 10 espaços para cada rótulo de classe) e 30% para teste e através de características únicas de cada espaço foi capaz de criar regras de inferência para classifica-las. Após todos os processos de treinamento e teste, eles afirmam que todos os espaços foram identificados corretamente, porém, a inferência de regras mostrou-se inadequada para este problema devido à falta de características únicas, pois a geometria e as proporções das salas exibem pouca variação. Também afirmam que o aprendizado de máquina e a inferência de regras podem ser usadas para classificação de espaços, todavia deve ser escolhidas de acordo com a natureza do contexto do problema, enquanto que

(25)

objetos físicos bem definidos podem ser identificados somente utilizando a inferência de regras, não havendo a necessidade de utilizar aprendizado de máquina.

(KOO; SHIN,2018) têm o objetivo de treinar algoritmos de aprendizagem de máquina para aprender a geometria dos elementos BIM de uma determinada classe IFC. Ele utiliza uma base de dados de residências e quando exporta para IFC percebe que a integridade dos dados não é mantida e que foi necessário mapear alguns elementos individuais manualmente. A partir de 3 modelos arquitetônicos, utilizou 5 classes para seu modelo de classificação (parede, porta, laje, janela e corrimão), onde para cada classe foi criada um modelo SVM para predizer se é ou não pertencente da classe. Koo utiliza 80% dos dados de um tipo de classe para treinamento e utiliza os 20% do resto dos dados do mesmo tipo de classe e 10% de dados de outros tipos de classe para teste. Eles concluem que o IFC resulta em dados corrompidos exigindo mapeamento manual entre as classes BIM e IFC e que o modelo criado possuía uma acurácia de 87% para classificação de paredes e 97% para portas.

(26)

3

Desenvolvimento

Esta seção descreve como adquiriu a base de dados, transformou os arquivos do formato RVT para IFC e de IFC para CSV, utilizou um pré-processamento de dados e aplicou o mesmo nos algoritmos construídos. Além disso, demonstra todos os métodos criados pelo sistema, para serem capazes de criar um ou mais modelos de aprendizagem a partir de um dataframe e com isso imprimir os resultados obtidos pelo classificador.

3.1

Carga de dados

Essa pesquisa utilizou 4 modelos BIM arquitetônicos obtidos na National Institute of Building Science(NIBS) (Clinic, Duplex, Smiley e Residence) e 5 modelos BIM arquitetônicos no Q-CAD, (onde todos os projetos são residências), ambos criados no software denominado REVIT. O NBIS é uma organização não governamental e sem fins lucrativos que foi criado em 1974 e possui uma equipe profissional que fornece suporte técnico, gerencial e administrativo para uma variedade de programas, trabalhando com legisladores, agências reguladoras e funcionários da indústria da construção dos Estados Unidos, de acordo com aSciences(2020) e o Q-CAD, Inc. é uma empresa de pequeno porte fundada em 1992, onde oferece o serviço de converter centenas de planos (plantas baixas, instalações, elétrica e mecânica) todos os meses em vários formatos CAD e BIM e um deles é o Revit, segundo oQ-CAD(2020).

Logo após obter todos os arquivos dos projetos arquitetônicos, foi utilizado o Revit 2020 (Versão para Estudante) para exporta-los para o formato IFC, onde é necessário que utilize a extensão IFC 2020 no software para que a conversão possua uma taxa menor de erros durante a exportação. Além disso é importante que nas configurações de exportar para IFC, na seção de conjunto de propriedades selecione a opção de exportar quantidades base, para que o arquivo IFC venha com as propriedades do elemento (área, volume, altura, largura, espessura e perímetro).

(27)

ela é possui software de código aberto que ajuda usuários de desenvolvedores de software a trabalhar com o formato de arquivo IFC, onde é capaz de ler e trazer as informações necessárias de cada elemento, de acordo com oIFCOpenShell(2020). Como o projeto busca somente os elementos parede, porta e janela é necessário pesquisar no arquivo as classes ifcwall, ifcdoor e ifcwindowrespectivamente e percorrer por cada um deles para buscar suas propriedades, que são: área (IfcQuantityArea); volume (IfcQuantityVolume); altura, largura, espessura e perímetro (ambos são IfcQuantityLength).

Com o uso da biblioteca ifcopenshell, foi criado uma classe denominada dados, onde possui os métodos InserirDB, LimpaDB, ImprimeCSV, ImprimeDB, ExperimentoUmDB, ExperimentoDoisDB e ExperimentoTresDB, que são utilizados para:

• InserirDB - Ler um arquivo IFC (passado como parâmetro) e transforma-lo em CSV, aplicar um pré-processamento de dados, onde os dados que possuem atributos faltantes não serão salvos e armazenando o arquivo em uma pasta denominada DB.

• LimpaDB - Deletar todos os arquivos CSV da pasta DB.

• ImprimeCSV - Ler como parâmetro um arquivo CSV da pasta DB e imprimir a quantidade de elementos da parede, janela e porta do mesmo.

• ImprimeDB - Imprimir a quantidade de elementos da parede, janela e porta de cada um dos arquivos CSV armazenados na pasta DB.

• ExperimentoUmDB - Ler como parâmetro um arquivo CSV da pasta DB e retornar os dados em formato de dataframe.

• ExperimentoDoisDB - Aplicar o método ExperimentoUmDB em todos os arquivos CSV da pasta DB e concatenar todos eles retornando-os em um único dataframe.

• ExperimentoTresDB - Ler como parâmetro um arquivo CSV da pasta DB e aplicar o método ExperimentoUmDB para retornar o dataframe do respectivo CSV e retornar também a concatenação de todos os outros arquivos CSV, retirando o CSV passado como parâmetro. Ou seja, caso possua 3 arquivos CSV na pasta DB (0.csv, 1.csv e 2.csv) e deseje fazer o ExperimentoTresDB do arquivo 1.csv, irá retornar o dataframe do 1.csv e a concatenação do 0.csv e 2.csv.

Logo após a leitura do arquivo IFC de cada projeto arquitetônico e a obtenção das propriedades de cada elemento, os dados foram armazenados em um arquivo CSV, onde foi realizado um pré-processamento de dados, eliminando todos os elementos que não possuem todas as propriedades preenchidas. Em seguida, os arquivos foram ordenados de forma crescente de acordo com o número total de elementos, ou seja, o projeto arquitetônico 0 tem menos elementos que o projeto 1 e assim por diante, como mostra na Figura17.

(28)

Figura 12 – Criação da base de dados - Fonte: Própria (2019)

Figura 13 – Imagem do Duplex, Residence_1 e Residence_2 respectivamente. - Fonte: Própria (2020)

O projeto 0 ou Duplex, possui 57 paredes, 14 portas e 24 janelas, possuindo todos os elementos tanto no térreo como no primeiro andar, porém, esse projeto possui apenas uma parede sem todas as propriedades preenchidas, por isso, após a limpeza dos dados o projeto Duplex permaneceu com 56 paredes, 14 portas e 24 janelas, totalizando 94 elementos.

O projeto 1 ou Residence_1, possui características parecidas com o projeto anterior, porém após a realizando da limpeza dos dados esse projeto demonstrou uma grande perda de elementos, perdendo 41 paredes, 0 portas e 55 janelas, permanecendo no arquivo CSV apenas 205 paredes, 54 portas e 0 janelas, ou seja, esse projeto não possui nenhuma janela com todas as propriedades definidas, gerando um total de 259 elementos.

O projeto 2 ou Residence_2, começa à aparecer estruturas separadas, onde um conjunto de elementos estão associados somente a eles mesmos, não ao projeto todo, com isso esse projeto possui 154 paredes, onde permaneceu 148 após o pré-processamento de dados, 37 portas, onde conservou-se 36 portas e possui 135 janelas, onde nenhum dado foi perdido, totalizando 319 elementos.

O projeto 3 ou Residence é muito parecido com o projeto 1, porém com um número maior de elementos, onde são 284 paredes, 28 portas e 7 janelas, já pré-processados, gerando um

(29)

Figura 14 – Imagem do Residence, Residence_3 e Residence_4 respectivamente. - Fonte: Própria (2020)

total de 319 elementos.

O projeto 4 ou Residence_3, possui uma quantidade de elementos de portas muito próxima da de janelas, onde permaneceu: 256 paredes e apenas 3 foram perdidas; 45 portas e 42 janelas, no qual ambas nenhuma delas foram perdidas, totalizando 340 elementos.

O projeto 5 ou Residence_4, é uma base de dados onde a quantidade de elementos da parede quase se igual a quantidade de janelas, logo após ser feito a limpeza de dados, gerando um total de 354 elementos, onde eles são: 178 paredes; 35 portas e 141 janelas.

Figura 15 – Imagem do Residence_5, Clinic e Office respectivamente. - Fonte: Própria (2020)

O projeto 6 ou Residence_5, possui uma aumento significativo de quantidade de elementos comparado aos projetos anteriores, onde restaram após passarem pelo pré-processamento de dados 373 paredes de 384, 66 portas de 66 e 65 janelas de 65, totalizando 504 elementos.

O projeto 7 ou Clinic, houve um aumento ainda maior do número de elementos, onde após a limpeza de dados permaneceu 487 paredes, 102 portas e 69 janelas, gerando um total de 658 elementos.

Por final, o projeto 8 ou Office, com maior número total de elementos de todos os projetos, onde após o pré-processamento permaneceu 1063 paredes de 1080, 244 portas de 249 e 58 janelas de 58, totalizando 1365 elementos.

Com a junção de todos os projetos é possível afirmar que após a limpeza de dados permaneceu 3047 paredes, 624 portas e 541 janelas, gerando um total de 4212 elementos que vão auxiliar na classificação dos mesmo (Tabela3).

3.2

Modelos de Aprendizagem

Foi utilizada a biblioteca scikit-learn (ou sklearn) para a criação dos modelos de classificação: máquina de vetores de suporte (Support Vector Machine ou SVM); máquina de

(30)

Elemento/Projeto Parede Porta Janela Total 0 1 2 3 4 5 6 7 8 56 205 1485 2845 2535 1785 3735 485 1063 14 54 36 28 45 35 66 102 244 24 0 135 7 42 141 65 69 58 94 259 319 319 340 354 504 658 1365 Total 3047 624 541 4212 Tabela 3 – Tabela com o total de elementos de cada projeto. Fonte: Própria (2020)

vetores de suporte com hiperparâmetros (SVMH); máquina de vetores de suporte de classe única (SVM One-Class); arvore de decisão (Decision Tree ou DT); e floresta aleatória (Random Forest ou RF). Essa biblioteca foi iniciada em 2007 com um projeto do Google Summer of Code por David Cornapeau e desde então, várias atualizações aparecem, onde o código é aberto e possui diversos colaboradores para o desenvolvimento e manutenção do mesmo (PEDREGOSA et al.,

2011).

Essa biblioteca foi utilizada por possui uma grande quantidade de informações na internet, facilitando o aprendizado, além de interagir com o numpy, matplotlib, pandas e csv, módulos muito utilizados em python e excelentes aliados para quem quer desenvolver e aplicar algoritmos de forma rápida e prática na área de aprendizado de máquina.

Dentro do sklearn existe o pacote SVM, onde possui um conjunto de métodos de aprendizado supervisionado para classificação, regressão e detecção de outliers. Um dos métodos utilizados é o SVC, onde ele possui uma abordagem “um contra um” que significa que, se um dataframe possui ‘n’ classes, o modelo constrói n* (n-1) /2 classificadores e cada um deles treina dados de duas classes. Outro método que existe é o LinearSVC, onde possui características parecidas com o SVC, porém não possui o kernel como parâmetro e por isso é considerado linear, além de utilizar uma abordagem “um contra o resto”.

Foi utilizado o SVC pois são mais eficazes em espaços de alta dimensão e também onde o número de dimensões é maior que o número de amostras, onde alguns projetos demonstram essa circunstância, além de que, o LinearSVC como não possui o kernel acaba tendo um forte impacto nos tempos de execução de cada projeto.

Dentro do mesmo pacote SVM, existe um método capaz de procurar hiperparâmetros para obter um melhor resultado de predição através de uma pesquisa exaustiva sobre os valores de parâmetros especificados para um estimador, chamado de GridSearchCV. Esse método foi utilizado para verificar se há uma melhoria ou não comparada ao modelo SVM citado acima.

Com o uso da biblioteca sklearn e o pacote SVM, foi criado uma classe denominada svm, onde possui os métodos ModeloSVM, ModeloSVMExperimentoTres, ExperimentoUmSVM, ExperimentoDoisSVM e ExperimentoTresSVM, que são algoritmos criados para:

(31)

• ModeloSVM - Ler como parâmetro um dataframe, onde o mesmo transforma-o em dados de treinamento (70%) e teste (30%) e aplica-os a um modelo SVM, em seguida é realizado a busca por hiperparâmetros e aplicado novamente ao classificador SVM, retornando os valores preditos pelo classificador antes e depois de aplicar os hiperparâmetros além de retornar também os valores corretos de teste, denominado de alvo.

• ModeloSVMExperimentoTres - Ler dois parâmetros do tipo dataframe, onde um deles é de treino e outro de teste e aplicar ambos em um modelo SVM que utiliza os mesmos algoritmos do método acima para criar o classificador e buscar por hiperparâmetros para obter melhores resultados, retornando os valores preditos pelo classificador antes e depois de aplicar os hiperparâmetros e seu alvo.

• ExperimentoUmSVM - Ler como parâmetro um arquivo CSV da pasta DB, aplicar o método ExperimentoUmDB da classe dados para obter o dataframe e inserir o mesmo no método ModeloSVM.

• ExperimentoDoisSVM - Ler como parâmetro um arquivo CSV da pasta DB, aplicar o método ExperimentoDoisDB da classe dados obtendo apenas um dataframe e aplica o mesmo no método ModeloSVM.

• ExperimentoTresSVM - Ler como parâmetro um arquivo CSV da pasta DB, aplicar o método ExperimentoTresDB da classe dados para retornar os dois dataframes e inseri-los ao método ModeloSVMExperimentoTres.

Ainda dentro do mesmo pacote SVM, o mesmo possui um método capaz de aprender uma função de decisão para detecção de novidades, ou seja, classifica novos dados como semelhante ou diferente do conjunto de treinamento, isso quer dizer que ele é capaz de classificar se o elemento é ou não pertencente daquela classe, chamada de OneClassSVM.

O projeto replicou o classificador criado pelo (KOO; SHIN,2018), utilizando os mesmos parâmetros e a mesma metodologia abordada pelo autor. Porém essa estrutura não é uma metodologia ‘justa’, pois como o autor utilizou 20% dos elementos inliers + 10% outliers para teste, caso o classificador indique que todos os elementos testados são inliers, o mesmo obterá um resultado de 66% de precisão. Por isso, também foi criado um SVM One-Class abordando uma metodologia onde 70% dos elementos do projeto aleatoriamente são utilizados para treino e os 30% restantes foram colocados para teste.

Com o uso da biblioteca sklearn e o pacote OneClassSVM, foi criado uma classe denomi-nada svmone, onde possui os métodos ModeloSVMONE, ModeloSVMONEExperimentoTres, ModeloSVMKOO, ExperimentoUmSVMO, ExperimentoUmSVMOKOO, ExperimentoDois-SVMO, ExperimentoDoisSVMOKOO, ExperimentoTresExperimentoDois-SVMO, que são algoritmos criados para:

(32)

• ModeloSVMONE - Ler como parâmetro um dataframe e uma string (a classe que deseja predizer), em seguida transformar todos os elementos que são da classe desejada em valor ’1’ e os que não são em valor ’-1’, separando-os em inliers (1) e outliers (-1). Logo após a separação, transformar os dados em dados de treinamento (70%) e teste (30%) a um modelo SVM One-Class, retornando os valores preditos pelo classificador e os valores corretos de teste.

• ModeloSVMONEExperimentoTres - Ler como parâmetro dois dataframes e uma string (a classe que deseja predizer), ambos dataframes são separados em inliers (1) e outliers (-1) como o método acima e aplicados a um modelo SVM One-Class, onde o primeiro dataframeé utilizado para treino e o segundo para teste, retornando os valores preditos pelo classificador e seu alvo.

• ModeloSVMKOO - Ler como parâmetro um dataframe e uma string que significa a classe que deseja predizer, onde a partir do primeiro parâmetro é calculado a quantidade de elementos que deseja predizer e busca 80% dos dados do elemento desejado aleatoriamente (inliers) e armazena em dados de treinamento. Em seguida, pega os outros 20% dos inliers restantes e armazena em dados de teste, porém, busca mais 10% da quantidade de inliers em outliers aleatórias e adiciona nos dados de teste. Ou seja, caso o usuário deseje criar um modelo para um dataframe X para predizer paredes e possua 1000 paredes (inliers) e 200 portas e janelas (outliers), o método irá pegar 800 (80% dos inliers) paredes para treino e 200 (20% dos inliers paredes + 100 (10% dos inliers) portas e janelas (aleatórias) para teste, ficando no total de 800 dados para treino e 300 para teste. No final, retorna os valores preditivos do classificador e seu alvo.

• ExperimentoUmSVMO - Ler como parâmetro um arquivo CSV e aplica o método ExperimentoUmDB da classe dados para obter o dataframe e aplicar o mesmo no método ModeloSVMONE em todas as classes que irá predizer (parede, porta e janela), criando um classificador para cada uma delas.

• ExperimentoUmSVMOKOO - Ler como parâmetro um arquivo CSV da pasta DB e aplica o método ExperimentoUmDB da classe dados para obter o dataframe e aplicar o mesmo no método ModeloSVMONEKOO em todas as classes que irá predizer (parede, porta e janela), criando um classificador para cada uma delas.

• ExperimentoDoisSVMO - Ler como parâmetro um arquivo CSV da pasta DB, aplicar o método ExperimentoDoisDB da classe dados obtendo apenas um dataframe e aplicar o mesmo no método ModeloSVMUnico.

• ExperimentoDoisSVMOKOO - Ler como parâmetro um arquivo CSV da pasta DB, aplicar o método ExperimentoDoisDB da classe dados obtendo apenas um dataframe e aplicar o mesmo no método ModeloSVMKOOUnico.

(33)

• ExperimentoTresSVMO - Ler como parâmetro um arquivo CSV e aplica o método ExperimentoTresDB da classe dados para obter os dois dataframes e aplicar os mesmos no método ModeloSVMONEExperimentoTres em todas as classes que irá predizer (parede, porta e janela), criando um classificador para cada uma delas.

Dentro da biblioteca sklearn existe um pacote chamado DecisionTreeClassifier (árvore de decisão) e outro denominado RandomForestClassifier (floresta aleatória), onde ambos criam um modelo a partir de uma variável de destino, aprendendo regras simples de decisão inferidas a partir dos dados. Porém a floresta aleatória faz com que a arvore se encaixe em várias subamostras do conjunto de dados e utilize a média para melhorar a precisão preditiva e controlar o ajuste excessivo. Ambas foram criadas e utilizadas para serem comparadas com os demais modelos de classificação.

Com o uso da biblioteca sklearn e o pacote DecisionTreeClassifier foi criado uma classe denominada arvore, onde possui os métodos ModeloDT, ModeloDTExperimentoTres, ExperimentoUmDT, ExperimentoDoisDT e ExperimentoTresDT, que são algoritmos criados para:

• ModeloDT - Ler como parâmetro um dataframe, onde o mesmo transforma em dados de treinamento (70%) e teste (30%) e aplica-os a um modelo DT, retornando os valores preditos pelo classificador e os valores corretos de teste.

• ModeloDTExperimentoTres - Ler dois parâmetros do tipo dataframe, onde um deles é de treino e outro de teste e aplica ambos em um modelo DT, retornando os valores preditos pelo classificador e seu alvo.

• ExperimentoUmDT - Ler como parâmetro um arquivo CSV da pasta DB, aplica o método ExperimentoUmDB da classe dados para obter o dataframe e inserir o mesmo no método ModeloDT.

• ExperimentoDoisDT - Ler como parâmetro um arquivo CSV da pasta DB, aplica o método ExperimentoDoisDB da classe dados obtendo apenas um dataframe e aplica o mesmo no método ModeloDT.

• ExperimentoTresDT - Ler como parâmetro um arquivo CSV da pasta DB e aplicar o método ExperimentoTresDB da classe dados para retornar os dois dataframes e inseri-los ao método ModeloDTExperimentoTres.

Foi criado uma classe chamada floresta, onde possui os métodos ModeloRF, ModeloR-FExperimentoTres, ExperimentoUmRF, ExperimentoDoisRF e ExperimentoTresRF, onde ambas, possui as mesmas descrições que a da classe arvore, só mudando o modelo a ser utilizado, que seria a RF (Random Florest).

Referências

Documentos relacionados

forficata recém-colhidas foram tratadas com escarificação mecânica, imersão em ácido sulfúrico concentrado durante 5 e 10 minutos, sementes armazenadas na geladeira (3 ± 1

Movimentos Políticos Pan-Europeus: os movimentos escolhem também os candidatos principais para mobilizar o eleitorado e organizam a estratégia de campanha em diferentes níveis:

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

Acredita-se que as pes- soas especiais devem estar presentes não só como ouvintes, mas como agentes que possam estar envolvidos nas discussões e decisões sobre uma

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

Assim, a presente pesquisa objetiva apresentar uma proposta voltada à re- ferida zona de esperança, que pressuponha o uso correto dos direitos do homem, a partir de uma

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e