Árboles de Decisión
Datos disponibles en https://www.kaggle.com/c/titanic/data?select=train.csv
Un árbol de decisión es una forma gráfica y analítica que presenta sucesos y sus posibles consecuencias.
Ventajas:
Claridad en los datos
Tolerantes al ruido y valores faltantes
Las reglas extraídas permiten hacer predicciones
Desventajas:
Criterio de división es deficiente
Sobreajuste
Ramas poco significativas
Cómo se divide un árbol de decisión?
Ganancia de Información
Dividir en pequeños árboles
Optimización del modelo:
Evitar sobreajuste
Selección de atributos, evaluando cuales son aquellos atributos que nos permitirán dividir mejor y ganar más información al hacerlo.
No tener campos nulos, ya que estos agregan mucho ruido al árbol y afecta a la división de la información
0
1
0
1
2
1
2
3
1
3
4
1
4
5
0
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PassengerId 891 non-null int64
1 Survived 891 non-null int64
2 Pclass 891 non-null int64
3 Name 891 non-null object
4 Sex 891 non-null object
5 Age 714 non-null float64
6 SibSp 891 non-null int64
7 Parch 891 non-null int64
8 Ticket 891 non-null object
9 Fare 891 non-null float64
10 Cabin 204 non-null object
11 Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 418 entries, 0 to 417
Data columns (total 11 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PassengerId 418 non-null int64
1 Pclass 418 non-null int64
2 Name 418 non-null object
3 Sex 418 non-null object
4 Age 332 non-null float64
5 SibSp 418 non-null int64
6 Parch 418 non-null int64
7 Ticket 418 non-null object
8 Fare 417 non-null float64
9 Cabin 91 non-null object
10 Embarked 418 non-null object
dtypes: float64(2), int64(4), object(5)
memory usage: 36.0+ KB
0
1
0
1
2
1
2
3
1
3
4
1
4
5
0
Accuracy: 0.9798
Collecting pydotplus
Downloading pydotplus-2.0.2.tar.gz (278 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 278.7/278.7 KB 5.3 MB/s eta 0:00:00
Preparing metadata (setup.py) ... done
Requirement already satisfied: pyparsing>=2.0.1 in /shared-libs/python3.9/py-core/lib/python3.9/site-packages (from pydotplus) (3.0.9)
Building wheels for collected packages: pydotplus
Building wheel for pydotplus (setup.py) ... done
Created wheel for pydotplus: filename=pydotplus-2.0.2-py3-none-any.whl size=24575 sha256=a8bf3b56c3f87f58ca4c03c9fe96543b5256d5953570b9487efad18857d0acba
Stored in directory: /root/.cache/pip/wheels/89/e5/de/6966007cf223872eedfbebbe0e074534e72e9128c8fd4b55eb
Successfully built pydotplus
Installing collected packages: pydotplus
Successfully installed pydotplus-2.0.2
WARNING: You are using pip version 22.0.4; however, version 22.3.1 is available.
You should consider upgrading via the '/root/venv/bin/python -m pip install --upgrade pip' command.