Trénování modelu

Strojové učení od začátku do konce

Joshua Stapleton

Machine Learning Engineer

Occamova břitva

  • Nejjednodušší dostatečné vysvětlení je nejlepší
  • Při výběru upřednostňujte jednoduché modely

Ukázkový obrázek ilustrující princip Occamovy břitvy

Strojové učení od začátku do konce

Možnosti modelování

Logistická regrese

  • Hledá hranici rozhodování mezi třídami
  • sklearn.linear_model.LogisticRegression

Klasifikátor podpůrných vektorů

  • Hledá rovinu pro oddělení tříd
  • sklearn.svm.SVC

Rozhodovací strom

  • Hledá jednoduchá „pravidla" pro klasifikaci dat
  • sklearn.tree.DecisionTreeClassifier

Náhodný les

  • Kombinuje více rozhodovacích stromů
  • sklearn.ensemble.RandomForestClassifier
Strojové učení od začátku do konce

Další modely

Modely hlubokého učení

  • Neuronové sítě
  • Konvoluční neuronové sítě
  • Generativní předtrénovaný transformátor (GPT)

K nejbližších sousedů (KNN)

  • Algoritmus řízeného učení

XGBoost

Strojové učení od začátku do konce

Principy trénování

Model:

  • Využívá vyčištěnou datovou sadu s upravenými příznaky
  • Učí se vzory z trénovacích dat
  • Cílem je předpovědět diagnózu srdečního onemocnění

Principy:

  • Model musí generalizovat na neznámá data (mimo trénovací sadu)
  • Část dat se „odloží" pro testování po dokončení tréninku.
  • Poměr trénovacích/testovacích dat je obvykle 70/30 nebo 80/20
  • Lze použít sklearn.model_selection.train_test_split
Strojové učení od začátku do konce

Trénování 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)
Strojové učení od začátku do konce

Získání předpovědí 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)
Strojové učení od začátku do konce

Získání předpovědí modelu (pokrač.)

# 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
Strojové učení od začátku do konce

Pojďme si procvičit!

Strojové učení od začátku do konce

Preparing Video For Download...