Trenowanie modelu

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Brzytwa Ockhama

  • Najprostsza wystarczające wyjaśnienie jest najlepsze
  • Przy wyborze modelu należy preferować prostsze rozwiązania

Przykładowy rysunek ilustrujący zasadę brzytwy Ockhama

End-to-End Machine Learning

Opcje modelowania

Regresja logistyczna

  • Wyznacza granicę decyzyjną między klasami
  • sklearn.linear_model.LogisticRegression

Maszyna wektorów nośnych (SVC)

  • Szuka hiperpłaszczyzny separującej klasy
  • sklearn.svm.SVC

Drzewo decyzyjne

  • Znajduje proste reguły do klasyfikacji danych
  • sklearn.tree.DecisionTreeClassifier

Las losowy

  • Łączy wiele drzew decyzyjnych
  • sklearn.ensemble.RandomForestClassifier
End-to-End Machine Learning

Inne modele

Modele głębokiego uczenia

  • Sieci neuronowe
  • Splotowe sieci neuronowe
  • Generatywny model transformerowy (GPT)

K-Nearest Neighbors (KNN)

  • Algorytm uczenia nadzorowanego

XGBoost

End-to-End Machine Learning

Zasady trenowania

Model:

  • Korzysta z oczyszczonego zbioru danych z przetworzonymi cechami
  • Uczy się wzorców w danych treningowych
  • Celem jest przewidywanie diagnozy choroby serca

Zasady:

  • Model musi generalizować na nieznane dane (spoza zbioru treningowego)
  • Część danych jest „zatrzymywana" do testowania modelu po zakończeniu treningu
  • Podział na trening/test wynosi zazwyczaj 70/30 lub 80/20
  • Można użyć sklearn.model_selection.train_test_split
End-to-End Machine Learning

Trenowanie modelu

# 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)
End-to-End Machine Learning

Uzyskiwanie predykcji modelu

# 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)
End-to-End Machine Learning

Uzyskiwanie predykcji modelu (cd.)

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

Czas na ćwiczenia!

End-to-End Machine Learning

Preparing Video For Download...