{ "cells": [ { "cell_type": "markdown", "id": "7006f817", "metadata": {}, "source": [ "# Decision Tree algorithm\n", "_Đóng góp: Tuấn Nguyễn._\n", "\n", "Decision Tree là thuật toán supervised learning, có thể giải quyết cả bài toán regression và classification.\n", "\n", "## Giới thiệu về thuật toán Decision Tree\n", "\n", "Một thuật toán Machine Learning thường sẽ có 2 bước:\n", "1. Huấn luyện: Từ dữ liệu thuật toán sẽ học ra model.\n", "2. Dự đoán: Dùng model học được từ bước trên dự đoán các giá trị mới.\n", "\n", "Bước huấn luyện ở thuật toán Decision Tree sẽ xây dựng ra một cây quyết định.\n", "Ví dụ, như với dữ liệu Titatic, thuật toán Decision Tree sẽ học ra model dạng cây như thế này\n", "\n", "![titanic_decision_tree](./imgs/decision_tree/titanic.png)\n", "\n", "Thông tin Title được lấy ra từ trường Name. Sau đó trường Title, Sex được chuyển về dạng số" ] }, { "cell_type": "code", "execution_count": 1, "id": "fb770546", "metadata": {}, "outputs": [], "source": [ "title_mapping = {\"Mr\": 1, \"Miss\": 2, \"Mrs\": 3, \"Master\": 4, \"Rare\": 5}\n", "sex_mapping = {'female': 0, 'male': 1}" ] }, { "cell_type": "markdown", "id": "c328a045", "metadata": {}, "source": [ "Sau đó ở bước dự đoán, thuật toán sẽ dựa vào thông tin của hành khách và đi theo các điều kiện của cây từ trên xuống dưới để cho ra\n", "dự đoán xem người đó sống hay chết. Ví dụ với thông tin khách hàng thế này:" ] }, { "cell_type": "code", "execution_count": 2, "id": "487523ff", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | PassengerId | \n", "Survived | \n", "Pclass | \n", "Name | \n", "Sex | \n", "Age | \n", "SibSp | \n", "Parch | \n", "Ticket | \n", "Fare | \n", "Cabin | \n", "Embarked | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "1 | \n", "0 | \n", "3 | \n", "Braund, Mr. Owen Harris | \n", "male | \n", "22.0 | \n", "1 | \n", "0 | \n", "A/5 21171 | \n", "7.25 | \n", "NaN | \n", "S | \n", "