O Machine Learning é uma área que desenvolve algoritmos baseados em dados para melhorar e/ou automatizar o processo de tomada de decisão. É visto como parte da Inteligência Artificial (IA), mas as aplicações de Machine Learning são usadas em diversas situações que não podem ser consideradas IA, mas sim tarefas de previsão mais simples.
No entanto, atualmente o Machine Learning está muito relacionado à IA, e dá aos dispositivos a capacidade de melhorar com a experiência sem serem explicitamente programados (a que se chama Aprendizagem por Reforço).
Por exemplo, quando está a conduzir e a usar uma app de navegação para encontrar o caminho mais rápido. Ou quando usa um software ou app para converter a sua voz num ficheiro de texto. Nestes exemplos vemos que o Machine Learning está presente e faz parte da nossa vida quotidiana.
O Machine Learning é essencialmente uma questão de previsão. A máquina só consegue prever resultados a partir de dados que recebe. Vamos olhar para os exemplos acima. A app de navegação consegue dizer-lhe o melhor caminho porque coleta dados de outros utilizadores que utilizam o mesmo tipo de aplicações. Os dados (velocidade média, rota escolhida, localização) combinados com um algoritmo, fazem com que a previsão seja possível.
O Machine learning juntamente com a visão computacional conseguiu melhorar várias áreas. Conseguiu ajudar a diagnosticar doenças ou a analisar milhares de transações financeiras por segundo à procura de fraude. No geral, o Machine Learning pode ajudar em áreas de pesquisa muito específicas ou em tarefas impossíveis para seres humanos, devido ao seu volume ou complexidade.
É a execução de modelos de Machine Learning onde tanto a entrada quanto a saída são conhecidas e usadas para fins de previsão e comparação. O Cientista de Dados prepara e configura o modelo num processo dinâmico e iterativo até obter a melhor e mais precisa previsão, considerando a saída esperada.
Esta abordagem é muito útil para previsões. (Regressões e classificações)
Neste caso, a saída é desconhecida, então o modelo é treinado sem um valor esperado para comparação, mas, em vez disso, tenta obter insights e correlações entre os dados.
Isto é útil em casos onde o especialista humano não sabe o que procurar nos dados, sendo usado na deteção de padrões e modelagem descritiva, mas no processo típico de Machine Learning é utilizado para agrupamento e redução de características.
Explora a ideia de que mesmo que os grupos de dados não rotulados sejam desconhecidos, estes dados contêm informação importante sobre os parâmetros de grupo.
É utilizada quando se precisa de um conjunto limitado de resultados e geralmente fornece valores de saída previstos. Funciona como Binomial com saída de 2 categorias (como Verdadeiro ou Falso) ou como Multi-Classe, onde pode prever várias categorias (como tipos de carros).
Um exemplo seria determinar se um email recebido é spam ou não.
Esta tarefa pode ajudar-nos a prever o valor do rótulo através de um grupo de características relacionadas. Por exemplo, pode prever preços de casas baseado nos seus atributos como o número de quartos, a localização ou o tamanho.
Agrupamentos podem organizar conjuntos de dados baseados nas suas características. Esta técnica de aprendizagem não supervisionada não tem qualquer informação de saída para o processo de treino. Um exemplo seria entender segmentos de hóspedes de hotéis com base nos seus hábitos e características das suas escolhas de hotel.
Algoritmo de aprendizagem de rede neural artificial, ou rede neural, ou simplesmente neural. Muitos sinónimos, mas um único significado: ele usa uma rede de funções para entender e traduzir uma entrada de dados de uma forma para uma saída desejada, geralmente noutra forma.
Em geral, não precisa de ser programado com regras específicas que definam o que esperar da entrada. Em vez disso, o algoritmo aprende com a experiência. Quanto mais exemplos e variedade de entradas disponíveis, mais precisos os resultados geralmente se tornam.
Devido a essa característica, não há limite para as áreas em que essa técnica pode ser aplicada. Algumas delas são previsão de trajetória de veículos autónomos, pesquisa sobre cancro, deteção de objetos, etc.
Uma árvore de decisão pode ser usada para representar visual e explicitamente decisões e tomadas de decisão, ou criar um modelo que prevê o valor de uma variável alvo. Como o nome sugere, ela usa um modelo em forma de árvore de decisões, na qual o nó da folha corresponde a um rótulo de classe e os atributos são representados nos nós internos da árvore. Pertencente à família de aprendizagem supervisionada, este algoritmo é geralmente referido como CART ou Árvores de Classificação e Regressão. Simples de entender, interpretar, visualizar são apenas algumas vantagens; elas também podem implicitamente realizar uma triagem de variáveis ou seleção de características e lidar tanto com dados numéricos quanto categóricos. Por outro lado, aprendizes de árvore de decisão podem criar árvores excessivamente complexas que não generalizam bem os dados. Além disso, podem ser instáveis, pois pequenas variações nos dados podem resultar numa árvore completamente diferente a ser gerada, ao que se chama uma variância.
Embora permita ter mais tempo para testar e otimizar modelos para criar mais valor, uma boa preparação de dados demora mais tempo do que qualquer outra parte do processo. O passo anterior à preparação de dados envolve a definição do problema. Quando isto é decidido, existem seis passos importantes a seguir: Coleta de dados, exploração e perfilamento, formatação, melhoria da qualidade dos dados, engenharia de características e separação de dados em grupos de treino e avaliação. Isto inclui ter a certeza de que os dados são formatados da maneira mais apropriada ao modelo de Machine Learning; definir uma estratégia para lidar com dados erróneos, valores ausentes e valores discrepantes; transformar os dados de entrada em novas características que representem melhor o negócio ou reduzam a complexidade; e finalmente dividir os dados de entrada em 3 conjuntos de dados: um para treinar o algoritmo, outro para fins de avaliação e o terceiro para fins de teste.
O Tuning consiste em maximizar a performance de um modelo sem sobreajustar ou criar uma variância demasiado elevada ao selecionar "hiperparâmetros" apropriados. Eles devem ser definidos manualmente, ao contrário de outros modelos de parâmetro que podem aprender através de métodos de treino. Muitos tipos de hiperparâmetros estão disponíveis e alguns dependem da técnica usada. Por agora só vamos reter o conceito de que um hiperparâmetro é um valor de configuração que controla os processos de treino e avaliação.
Nota: Brevemente iremos atualizar a nossa biblioteca com vários hiperparâmetros e técnicas.
Fácil de entender e fácil de implementar. É uma técnica para avaliar e testar um modelo de Machine Learning. A validação cruzada consiste na comparação de resultados de modelos com resultados reais para avaliar a precisão e qualidade do modelo. É usada na abordagem de aprendizagem supervisionada para previsões categorizadas.
Existem muitos modelos de validação cruzada, como K-Fold, Leave-P-Out, mas o mais simples e comum é o Hold-out.
Nota: Brevemente iremos atualizar a nossa biblioteca com explicações destes tipos distintos.
Falando em falta de precisão, o erro quadrático médio é capaz de identificar um erro rapidamente. Sendo um tipo específico de perda de função, eles são calculados pela média dos erros que foram elevados ao quadrado dos dados.
Portanto, a sua utilidade vem do facto de que números elevados ao quadrado são positivos, e que os erros são elevados ao quadrado antes de ser calculada a média. Além disso, o erro quadrático médio é frequentemente usado como uma medida para obter uma imagem melhor da variância e da tendência nos conjuntos de dados.
De qualquer das formas, a validação cruzada é muito útil em avaliar o quão eficiente é um modelo, particularmente em casos em que tem de mitigar sobreajustes. Os sobreajustes são um conceito de ciência de dados que ocorre quando um modelo estatístico se ajusta exatamente aos seus dados de treino - há uma taxa de erro pequena e os dados de teste têm uma taxa de erro elevada. Uma das maneiras de o evitar seria o aumento de dados. Embora seja melhor injetar dados limpos e relevantes, às vezes dados ruidosos são adicionados para tornar um modelo mais estável. No entanto, esse método deve ser usado com moderação.