Preparar um modelo de machine learning

Concluído

Treinar um modelo de aprendizado de máquina envolve ajustar um algoritmo de aprendizado de máquina aos seus dados de treinamento para determinar uma função aceitavelmente precisa que possa ser aplicada às suas características e calcular os rótulos correspondentes. Isto pode parecer uma ideia conceptualmente simples; Mas o processo real de treinar um modelo que produz previsões precisas sobre novos dados, não apenas os dados com os quais foi treinado, pode ser desafiador e envolve uma abordagem iterativa de treinar e avaliar repetidamente modelos usando vários algoritmos e parâmetros.

Dados de formação e validação

Uma abordagem comum ao treinar um modelo de aprendizado de máquina é dividir aleatoriamente os dados em subconjuntos para treinamento e validação. Em seguida, você pode usar o conjunto de dados de treinamento para ajustar um algoritmo e treinar um modelo e, em seguida, testar o desempenho do modelo com os dados de validação retidos. Isso ajuda a garantir que o modelo generalize bem - em outras palavras, gera previsões precisas para treinamentos nos quais não foi treinado.

Nota

Os modelos que preveem bem os dados sobre os quais foram treinados, mas que não funcionam bem com novos dados, são descritos como sobreadaptados aos dados de treinamento.

Normalmente, você deve treinar o modelo com cerca de 70% dos dados e reter cerca de 30% para validação.

Algoritmos de aprendizagem automática

Existem muitos algoritmos de aprendizado de máquina, agrupados em diferentes tipos de algoritmos com base no tipo de problema de aprendizado de máquina que você precisa resolver. A maioria das estruturas de aprendizado de máquina inclui vários algoritmos para regressão e classificação, e algoritmos para problemas de aprendizado de máquina não supervisionados, como clustering.

Depois de identificar o tipo de problema que você deseja criar um modelo para resolver, você pode escolher entre vários algoritmos desse tipo. Dentro de cada tipo, pode haver vários algoritmos para escolher, muitas vezes com base em diferentes tipos de operação matemática. Por exemplo, dentro do conjunto de algoritmos para classificação, existem algoritmos do seguinte tipo:

  • Algoritmos de regressão logística que aplicam iterativamente funções logísticas para calcular um valor entre 0 e 1 que representa a probabilidade para cada classe possível, e otimizam os coeficientes da função com base nas diferenças entre a classe prevista e o valor real conhecido do rótulo.
  • Funções baseadas em árvore que definem uma árvore de decisão na qual uma característica individual é considerada, e com base em seu valor, outra característica é considerada, e assim por diante, até que um rótulo de classe apropriado seja determinado.
  • Ensemble algoritmos que combinam várias técnicas para encontrar a função preditiva geral ideal.

O "melhor" algoritmo depende dos seus dados e geralmente requer tentativa e erro iterativos para determinar.

Hiperparâmetros

Os parâmetros para um algoritmo de aprendizado de máquina são os recursos de dados (e rótulos) nos quais ele é treinado. Além disso, a maioria dos algoritmos de aprendizado de máquina fornece hiperparâmetros que você pode usar para influenciar a maneira como o algoritmo funciona. Os hiperparâmetros permitem controlar coisas como o nível de aleatoriedade que você deseja permitir no modelo (por isso generaliza bem, mas ainda produz previsões aceitavelmente precisas), o número de iterações realizadas para encontrar um modelo ideal (permitindo que você evite o sobreajuste e otimize o tempo de treinamento), o número de ramos considerados em um modelo de árvore, e outros fatores específicos do algoritmo.

Montagem de um modelo

Para realmente treinar um modelo, você precisa ajustar o algoritmo aos dados. A sintaxe específica e os formatos de dados usados para fazer isso podem variar entre as estruturas de aprendizado de máquina, mas o princípio é sempre o mesmo. Para aprendizado de máquina supervisionado, você ajusta o algoritmo aos recursos com base nos rótulos conhecidos. Para aprendizado de máquina não supervisionado, você fornece os recursos e o algoritmo tenta separá-los em clusters discretos.

O exemplo a seguir mostra o código usado para iniciar o treinamento de um modelo de regressão logística usando a estrutura Spark MLlib. Os dados de treinamento são fornecidos como um quadro de dados no qual os rótulos estão em uma coluna de valores inteiros e os recursos correspondentes são representados como um único vetor (matriz) de valores. Neste exemplo, dois hiperparâmetros (maxIter e regParam) também foram especificados.

from pyspark.ml.classification import LogisticRegression

lr = LogisticRegression(labelCol="label", featuresCol="features", maxIter=10, regParam=0.3)
model = lr.fit(training_df)