Rozhodovací stromy
V tomto cvičení sestavíš jednoduchý rozhodovací strom pomocí DecisionTreeClassifier ze scikit-learn na datasetu breast cancer, který je přímo součástí scikit-learn.
Dataset obsahuje numerická měření různých charakteristik jednotlivých nádorů (například obvod a texturu) z biopsií prsu a jednu cílovou hodnotu (nádor je buď maligní, nebo benigní).
Dataset se vzorky (měřeními) jsme pro tebe předem načetli do X a cílové hodnoty pro každý nádor do y. Tvým úkolem je rozdělit celý dataset na trénovací a testovací sadu a následně natrénovat DecisionTreeClassifier. Nastavíš přitom parametr max_depth. V tomto modelu lze upravit i řadu dalších parametrů – všechny si můžeš prohlédnout zde.
Toto cvičení je součástí kurzu
Extreme Gradient Boosting with XGBoost
Pokyny k cvičení
- Importuj:
train_test_splitzsklearn.model_selection.DecisionTreeClassifierzsklearn.tree.
- Vytvoř trénovací a testovací sady tak, aby 20 % dat bylo použito pro testování. Nastav
random_statena123. - Vytvoř instanci
DecisionTreeClassifiers názvemdt_clf_4a hodnotoumax_depthrovnou4. Tento parametr určuje maximální počet po sobě jdoucích dělicích bodů před dosažením listového uzlu. - Napasuj klasifikátor na trénovací sadu a predikuj štítky testovací sady.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Import the necessary modules
____
____
# Create the training and test sets
X_train, X_test, y_train, y_test = ____(____, ____, test_size=____, random_state=____)
# Instantiate the classifier: dt_clf_4
dt_clf_4 = ____
# Fit the classifier to the training set
____
# Predict the labels of the test set: y_pred_4
y_pred_4 = ____
# Compute the accuracy of the predictions: accuracy
accuracy = float(np.sum(y_pred_4==y_test))/y_test.shape[0]
print("accuracy:", accuracy)