Antrenarea modelului

Machine Learning End-to-End

Joshua Stapleton

Machine Learning Engineer

Briciul lui Occam

  • Cea mai simplă explicație satisfăcătoare este preferată
  • Optați pentru modele simple la selecție

Imagine ilustrând principiul Briciului lui Occam

Machine Learning End-to-End

Opțiuni de modelare

Regresie logistică

  • Identifică granița de decizie între clase
  • sklearn.linear_model.LogisticRegression

Clasificator cu mașini de vectori suport

  • Găsește un hiperplan pentru separarea claselor
  • sklearn.svm.SVC

Arbore de decizie

  • Găsește reguli simple pentru clasificarea datelor
  • sklearn.tree.DecisionTreeClassifier

Pădure aleatorie

  • Combină mai mulți arbori de decizie
  • sklearn.ensemble.RandomForestClassifier
Machine Learning End-to-End

Alte modele

Modele de învățare profundă

  • Rețele neuronale
  • Rețele neuronale convoluționale
  • Generative Pretrained Transformer (GPT)

K-Nearest Neighbors (KNN)

  • Algoritm de învățare supervizată

XGBoost

Machine Learning End-to-End

Principii de antrenare

Model:

  • Folosește un set de date curățat și cu variabile pregătite
  • Învață tipare din datele de antrenare
  • Scopul este predicția diagnosticului de boală cardiacă

Principii:

  • Modelul trebuie să generalizeze pe date nevăzute (din afara setului de antrenare)
  • Rezervați date pentru testarea modelului după antrenare.
  • Împărțirea antrenare/testare este de obicei 70/30 sau 80/20
  • Se poate folosi sklearn.model_selection.train_test_split
Machine Learning End-to-End

Antrenarea unui model

# 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 End-to-End

Obținerea predicțiilor modelului

# 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 End-to-End

Obținerea predicțiilor modelului (continuare)

# 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 End-to-End

Să exersăm!

Machine Learning End-to-End

Preparing Video For Download...