freeCodeCamp/guide/spanish/machine-learning/random-forest/index.md

59 lines
3.6 KiB
Markdown
Raw Normal View History

2018-10-12 19:37:13 +00:00
---
title: Random Forest
localeTitle: Bosque aleatorio
---
## Bosque aleatorio
Un bosque aleatorio es un grupo de árboles de decisión que toman mejores decisiones en conjunto que individualmente.
### Problema
Los árboles de decisión por sí mismos son propensos a **sobreajuste** . Esto significa que el árbol se acostumbra tanto a los datos de entrenamiento que tiene dificultades para tomar decisiones para datos que nunca antes había visto.
### Solución con Bosques Aleatorios
Los bosques aleatorios pertenecen a la categoría de algoritmos de **aprendizaje conjunto** . Esta clase de algoritmos usa muchos estimadores para producir mejores resultados. Esto hace que los bosques aleatorios usualmente sean **más precisos** que los árboles de decisión simples. En Random Forests, se crean un montón de árboles de decisión. Cada árbol se **entrena en un subconjunto aleatorio de los datos y un subconjunto aleatorio de las características de esos datos** . De esta manera, se reduce considerablemente la posibilidad de que los estimadores se acostumbren a los datos (sobreajuste), ya que **cada uno de ellos trabaja en los diferentes datos y características** que los otros. Este método para crear un grupo de estimadores y entrenarlos en subconjuntos aleatorios de datos es una técnica de _aprendizaje_ en _conjunto_ llamada **empaquetamiento** o _AGGregat de Bootstrap_ . Para obtener la predicción, cada uno de los árboles de decisión vota sobre la predicción correcta (clasificación) o obtiene la media de sus resultados (regresión).
### Ejemplo de Impulso en Python
En esta competencia, nos dan una lista de eventos de colisión y sus propiedades. Luego predeciremos si se produjo una caída de τ → 3μ en esta colisión. Actualmente, los científicos suponen que τ → 3μ no se realizará, y el objetivo de esta competencia fue descubrir que τ → 3μ ocurre con más frecuencia de la que los científicos pueden entender. El desafío aquí fue diseñar un problema de aprendizaje automático para algo que nadie ha observado antes. Los científicos del CERN desarrollaron los siguientes diseños para lograr el objetivo. https://www.kaggle.com/c/flavours-of-physics/data
```python
#Data Cleaning
import pandas as pd
data_test = pd.read_csv("test.csv")
data_train = pd.read_csv("training.csv")
data_train = data_train.drop('min_ANNmuon',1)
data_train = data_train.drop('production',1)
data_train = data_train.drop('mass',1)
#Cleaned data
Y = data_train['signal']
X = data_train.drop('signal',1)
#adaboost
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier
seed = 9001 #this ones over 9000!!!
boosted_tree = AdaBoostClassifier(DecisionTreeClassifier(max_depth=1), algorithm="SAMME",
n_estimators=50, random_state = seed)
model = boosted_tree.fit(X, Y)
predictions = model.predict(data_test)
print(predictions)
#Note we can't really validate this data since we don't have an array of "right answers"
#stochastic gradient boosting
from sklearn.ensemble import GradientBoostingClassifier
gradient_boosted_tree = GradientBoostingClassifier(n_estimators=50, random_state=seed)
model2 = gradient_boosted_tree.fit(X,Y)
predictions2 = model2.predict(data_test)
print(predictions2)
```
#### Más información:
* [Bosques Aleatorios (Wikipedia)](https://www.wikiwand.com/en/Random_forest)
* [Introducción a los bosques aleatorios - simplificado](https://www.analyticsvidhya.com/blog/2014/06/introduction-random-forest-simplified/)
* [Cómo funciona el algoritmo de bosque aleatorio (Video)](https://www.youtube.com/watch?v=loNcrMjYh64)