sklearn.ensemble
.RandomTreesEmbedding¶
- class sklearn.ensemble.RandomTreesEmbedding¶
Un conjunto de árboles totalmente aleatorios.
Una transformación no supervisada de un conjunto de datos a una representación dispersa de alta dimensión. Un punto de datos se codifica según la hoja de cada árbol en la que se clasifica. Utilizando una codificación one-hot de las hojas, se obtiene una codificación binaria con tantos unos como árboles hay en el bosque.
La dimensionalidad de la representación resultante es
n_out <= n_estimators * max_leaf_nodes
. Simax_leaf_nodes == None
, el número de nodos hoja es como máximon_estimators * 2 ** max_depth
.Más información en el Manual de usuario.
- Parámetros
- n_estimatorsint, default=100
Número de árboles en el bosque.
Distinto en la versión 0.22: El valor predeterminado de
n_estimators
cambió de 10 a 100 en 0.22.- max_depthint, default=5
La profundidad máxima de cada árbol. Si es None, los nodos se expanden hasta que todas las hojas sean puras o hasta que todas las hojas contengan menos de min_samples_split muestras.
- min_samples_splitint o float, default=2
El número mínimo de muestras requeridas para dividir un nodo interno:
Si es int, entonces considera
min_samples_split
como el número mínimo.Si es float, entonces
min_samples_split
es una fracción yceil(min_samples_split * n_samples)
es el número mínimo de muestras para cada división.
Distinto en la versión 0.18: Se han añadido valores float para las fracciones.
- min_samples_leafint o float, default=1
El número mínimo de muestras requerido para estar en un nodo hoja. Un punto de división en cualquier profundidad sólo se considerará si deja al menos
min_samples_leaf
muestras de entrenamiento en cada una de las ramas izquierda y derecha. Esto puede tener el efecto de suavizar el modelo, especialmente en la regresión.Si es int, entonces considera
min_samples_leaf
como el número mínimo.Si es float, entonces
min_samples_leaf
es una fracción yceil(min_samples_leaf * n_samples)
es el número mínimo de muestras para cada nodo.
Distinto en la versión 0.18: Se han añadido valores float para las fracciones.
- min_weight_fraction_leaffloat, default=0.0
La fracción mínima ponderada de la suma total de las ponderaciones (de todas las muestras de entrada) requerida para estar en un nodo de hoja. Las muestras tienen la misma ponderación cuando no se proporciona sample_weight.
- max_leaf_nodesint, default=None
Hace crecer árboles con
max_leaf_nodes
en modo best-first. Los mejores nodos se definen como una reducción relativa de la impureza. Si es None, el número de nodos hoja es ilimitado.- min_impurity_decreasefloat, default=0.0
Un nodo se dividirá si esta división induce una disminución de la impureza mayor o igual a este valor.
La ecuación de disminución de impurezas ponderada es la siguiente:
N_t / N * (impurity - N_t_R / N_t * right_impurity - N_t_L / N_t * left_impurity)
donde
N
es el número total de muestras,N_t
es el número de muestras en el nodo actual,N_t_L
es el número de muestras en el hijo izquierdo, yN_t_R
es el número de muestras en el hijo derecho.N
,N_t
,N_t_R
yN_t_L
se refieren a la suma ponderada, si se le pasasample_weight
.Nuevo en la versión 0.19.
- min_impurity_splitfloat, default=None
El umbral para la parada anticipada del crecimiento del árbol. Un nodo se dividirá si su impureza está por encima del umbral, de lo contrario será una hoja.
Obsoleto desde la versión 0.19: El valor de
min_impurity_split
ha quedado obsoleto en favor demin_impurity_decrease
en la versión 0.19. El valor predeterminado demin_impurity_split
ha cambiado de 1e-7 a 0 en 0.23 y se eliminará en 1.0 (cambio de nombre de 0.25). Utilicemin_impurity_decrease
en su lugar.- sparse_outputbool, default=True
Ya sea para devolver o no una matriz de CSR dispersa, como comportamiento predeterminado, o para devolver un arreglo denso compatible con operadores de pipeline densos.
- n_jobsint, default=None
El número de trabajos a ejecutar en paralelo.
fit
,transform
,decision_path
yapply
se paralelizan sobre los árboles.None
significa 1 a menos que esté en un contextojoblib.parallel_backend
.-1
significa que se utilizan todos los procesadores. Ver Glosario para más detalles.- random_stateentero, instancia de RandomState o None, default=None
Controla la generación del estado “y” aleatorio utilizado para ajustar los árboles y escoger las divisiones para cada característica en los nodos de los árboles. Ver Glosario para más detalles.
- verboseint, default=0
Controla la verbosidad al ajustar y predecir.
- warm_startbool, default=False
Cuando se establece en
True
, se reutiliza la solución de la llamada anterior para ajustar y añadir más estimadores al conjunto(ensemble), de lo contrario, sólo se ajusta un bosque nuevo. Ver el Glosario.
- Atributos
- base_estimator_Instancia DecisionTreeClassifier
La plantilla del estimador hijo utilizada para crear la colección de sub-estimadores ajustados.
- estimators_list de instancias DecisionTreeClassifier
La colección de sub-estimadores ajustados.
feature_importances_
ndarray de forma (n_features,)La importancia de las características basadas en la impureza.
- n_features_int
El número de características cuando se realiza
fit
.- n_outputs_int
El número de salidas cuando se realiza
fit
.- one_hot_encoder_Instancia OneHotEncoder
Codificador one-hot utilizado para crear la incrustación dispersa.
Referencias
- 1
P. Geurts, D. Ernst., and L. Wehenkel, «Extremely randomized trees», Machine Learning, 63(1), 3-42, 2006.
- 2
Moosmann, F. and Triggs, B. y Jurie, F. «Fast discriminative visual codebooks using randomized clustering forests» NIPS 2007
Ejemplos
>>> from sklearn.ensemble import RandomTreesEmbedding >>> X = [[0,0], [1,0], [0,1], [-1,0], [0,-1]] >>> random_trees = RandomTreesEmbedding( ... n_estimators=5, random_state=0, max_depth=1).fit(X) >>> X_sparse_embedding = random_trees.transform(X) >>> X_sparse_embedding.toarray() array([[0., 1., 1., 0., 1., 0., 0., 1., 1., 0.], [0., 1., 1., 0., 1., 0., 0., 1., 1., 0.], [0., 1., 0., 1., 0., 1., 0., 1., 0., 1.], [1., 0., 1., 0., 1., 0., 1., 0., 1., 0.], [0., 1., 1., 0., 1., 0., 0., 1., 1., 0.]])
Métodos
Aplica los árboles del bosque a X, devuelve los índices de las hojas.
Devuelve la ruta de decisión en el bosque.
Ajusta el estimador.
Ajusta el estimador y transforma el conjunto de datos.
Obtiene los parámetros para este estimador.
Establece los parámetros de este estimador.
Transforma el conjunto de datos.
- apply()¶
Aplica los árboles del bosque a X, devuelve los índices de las hojas.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Las muestras de entrada. Internamente, su dtype se convertirá a
dtype=np.float32
. Si se proporciona una matriz dispersa, se convertirá a una dispersacsr_matrix
.
- Devuelve
- X_leavesndarray de forma (n_samples, n_estimators)
Para cada punto de datos x en X y para cada árbol del bosque, devuelve el índice de la hoja en la que termina x.
- decision_path()¶
Devuelve la ruta de decisión en el bosque.
Nuevo en la versión 0.18.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Las muestras de entrada. Internamente, su dtype se convertirá a
dtype=np.float32
. Si se proporciona una matriz dispersa, se convertirá a una dispersacsr_matrix
.
- Devuelve
- indicatormatriz dispersa de forma (n_samples, n_nodes)
Devuelve una matriz de indicadores de nodos donde los elementos distintos de cero indican que las muestras pasan por los nodos. La matriz tiene el formato CSR.
- n_nodes_ptrndarray de forma (n_estimators + 1,)
Las columnas de indicador[n_nodes_ptr[i]:n_nodes_ptr[i+1]] dan el valor del indicador para el i-ésimo estimador.
- property feature_importances_¶
La importancia de las características basadas en la impureza.
Cuanto más alta sea, más importante será la característica. La importancia de una característica se calcula como la reducción total (normalizada) del criterio que aporta esa característica. También se conoce como importancia de Gini.
Advertencia: las importancias de características basadas en la impureza pueden ser no representativas para las características de alta cardinalidad (muchos valores únicos). Ver
sklearn.inspection.permutation_importance
como una alternativa.- Devuelve
- feature_importances_ndarray de forma (n_features,)
Los valores de este arreglo suman 1, a menos que todos los árboles sean árboles de un solo nodo que consistan sólo en el nodo raíz, en cuyo caso será una matriz de ceros.
- fit()¶
Ajusta el estimador.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Las muestras de entrada. Utilice
dtype=np.float32
para obtener la máxima eficiencia. También se admiten matrices dispersas, utilicecsc_matrix
dispersa para obtener la máxima eficiencia.- yIgnorado
No se utiliza, está presente para la coherencia de la API por convención.
- sample_weightarray-like de forma (n_samples,), default=None
Ponderación de las muestras. Si es None, las muestras se ponderan por igual. Las divisiones que crearían nodos hijos con ponderación neta cero o negativa se ignoran al buscar una división en cada nodo. En el caso de la clasificación, las divisiones también se ignoran si dan lugar a que una sola clase tenga una ponderación negativa en cualquiera de los nodos hijos.
- Devuelve
- selfobject
- fit_transform()¶
Ajusta el estimador y transforma el conjunto de datos.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Datos de entrada utilizados para construir bosques. Utilice
dtype=np.float32
para obtener la máxima eficiencia.- yIgnorado
No se utiliza, está presente para la coherencia de la API por convención.
- sample_weightarray-like de forma (n_samples,), default=None
Ponderación de las muestras. Si es None, las muestras se ponderan por igual. Las divisiones que crearían nodos hijos con ponderación neta cero o negativa se ignoran al buscar una división en cada nodo. En el caso de la clasificación, las divisiones también se ignoran si dan lugar a que una sola clase tenga una ponderación negativa en cualquiera de los nodos hijos.
- Devuelve
- X_transformedmatriz dispersa de forma (n_samples, n_output)
Conjunto de datos transformado.
- get_params()¶
Obtiene los parámetros para este estimador.
- Parámetros
- deepbool, default=True
Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.
- Devuelve
- paramsdict
Nombres de parámetros mapeados a sus valores.
- set_params()¶
Establece los parámetros de este estimador.
El método funciona tanto en estimadores simples como en objetos anidados (como
Pipeline
). Estos últimos tienen parámetros de la forma<component>__<parameter>
para que sea posible actualizar cada componente de un objeto anidado.- Parámetros
- **paramsdict
Parámetros del estimador.
- Devuelve
- selfinstancia del estimador
Instancia del estimador.
- transform()¶
Transforma el conjunto de datos.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Datos de entrada a ser transformados. Utilice
dtype=np.float32
para obtener la máxima eficiencia. Las matrices dispersas también están soportadas, utilicecsr_matrix
dispersa para una máxima eficiencia.
- Devuelve
- X_transformedmatriz dispersa de forma (n_samples, n_output)
Conjunto de datos transformado.