Treinando modelos

Machine Learning de ponta a ponta

Joshua Stapleton

Machine Learning Engineer

Navalha de Occam

  • A explicação satisfatória mais simples é a melhor
  • Prefira modelos simples na escolha

Imagem de exemplo mostrando o princípio da Navalha de Occam

Machine Learning de ponta a ponta

Opções de modelagem

Regressão Logística

  • Encontra a fronteira de decisão entre classes
  • sklearn.linear_model.LogisticRegression

SVC (Support Vector Classifier)

  • Encontra um hiperplano para separar classes
  • sklearn.svm.SVC

Árvore de Decisão

  • Encontra “regras” simples para classificar
  • sklearn.tree.DecisionTreeClassifier

Random Forest

  • Combina várias árvores de decisão
  • sklearn.ensemble.RandomForestClassifier
Machine Learning de ponta a ponta

Outros modelos

Modelos de deep learning

  • Redes neurais
  • Redes neurais convolucionais
  • Generative Pretrained Transformer (GPT)

K-Nearest Neighbors (KNN)

  • Algoritmo de aprendizado supervisionado

XGBoost

Machine Learning de ponta a ponta

Princípios de treino

Modelo:

  • Usa dados limpos e com features tratadas
  • Aprende padrões nos dados de treino
  • Visa prever o alvo do diagnóstico de doença cardíaca

Princípios:

  • O modelo deve generalizar para dados não vistos (fora do treino)
  • Separe um “hold-out” para testar após o treino
  • Divisão treino/teste geralmente 70/30 ou 80/20
  • Pode usar sklearn.model_selection.train_test_split
Machine Learning de ponta a ponta

Treinando um modelo

# Importing necessary libraries
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# Split the data into training and testing sets (80:20) X_train, X_test, y_train, y_test = train_test_split(features, heart_disease_y, test_size=0.2, random_state=42)
# Define the models logistic_model = LogisticRegression(max_iter=200)
# Train the model logistic_model.fit(X_train, y_train)
Machine Learning de ponta a ponta

Obtendo previsões do modelo

# Jane Doe's health data, for example: [age, cholesterol level, blood pressure, etc.]
jane_doe_data = [45, 230, 120, ...]

# Reshape the data to 2D, because scikit-learn expects a 2D array-like input jane_doe_data = jane_doe_data.reshape(1, -1)
# Use the model to predict Jane's heart disease diagnosis probabilities jane_doe_probabilities = logistic_model.predict_proba(jane_doe_data) jane_doe_prediction = logistic_model.predict(jane_doe_data)
Machine Learning de ponta a ponta

Obtendo previsões (cont.)

# Print the probabilities
print(f"Jane Doe's predicted probabilities: {jane_doe_probabilities[0]}")
print(f"Jane Doe's predicted health condition: {jane_doe_prediction[0]}")
Jane Doe's predicted health condition probabilities: [0.2 0.8]

Jane Doe's predicted health condition: 1
Machine Learning de ponta a ponta

Vamos praticar!

Machine Learning de ponta a ponta

Preparing Video For Download...