Conseguir máquina de comenzar (a) el aprendizaje de aprendizaje conjunto

Autor: chen_h
Micro señal y QQ: 862251340
micro-canales número público: coderpai


Usando una variedad de diferentes modelos y no sólo un modelo que es muy fiable. Una colección de varios modelos de trabajar juntos en un grupo llamado Ensemble. Este método se denomina Conjunto de aprendizaje, es un aprendizaje integrado.

Modelo de votación

Se pueden utilizar diferentes algoritmos para entrenar a su modelo, entonces combinado para predecir el resultado final. Por ejemplo, se utiliza clasificador aleatorio bosque, clasificador SVM, regresión lineal, modelo de juego entre sí, y el voto mediante el uso de sklearn.ensemble clase VotingClassifier con el fin de obtener la mejor respuesta clasificación. voto duro se refiere a la selección del modelo de la colección de predecir la votación final por mayoría simple de conseguir la precisión. Sólo cuando todos clasificador de probabilidad se puede calcular resultados pueden ser suaves a voto. voto blando por cada algoritmo para calcular la probabilidad media de resultados óptimos.

código Python detallado es como sigue:

from sklearn.svm import SVC
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import VotingClassifier

log_clf = LogisticRegression()
rnd_clf = RandomForestClassifier()
svm_clf = SVC()

voting_clf = VotingClassifier(
	estimators = [('lr', log_clf), ('rf', rnd_clf), ('svc',svm_clf)],
	voting = 'hard')
voting_clf.fit(X_train, y_train)

VotingClassifier generalmente más alto que la exactitud de solo clasificador. Asegúrese de incluir diferentes clasificadores, a fin de no dar la impresión de ajustar los datos con respecto a las distribuciones similares.

embolsado 和 pegar

Se puede utilizar un único modelo en una variedad de subconjunto aleatorio del conjunto de datos, en lugar de ejecutar una variedad de modelos en un solo conjunto de datos. El muestreo al azar con el algoritmo de reemplazo llama embolsado. Si su mente es difícil de imaginar, sólo imaginar ignorado unos datos aleatorios y datos de modelos establecidos con el resto de los datos. En el caso de pegar, el mismo proceso de aplicación, la única diferencia es que el muestreo múltiple de ejemplos de entrenamiento pegar permitió que el mismo predictor.

código Python es el siguiente:

from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier

bag_clf = BaggingClassifier(
    DecisionTreeClassifier(random_state=42), n_estimators=500,
    max_samples=100, bootstrap=True, n_jobs=-1, random_state=42)
bag_clf.fit(X_train, y_train)

y_pred = bag_clf.predict(X_test)

bootstrap = True parámetro especifica el ensacado. Para pegar algoritmo, cambiar el parámetro de arranque = False en él.

Si el clasificador puede calcular la probabilidad de su pronóstico, la BaggingClassifier realizar automáticamente un voto blando. Esto se hace mediante la comprobación de su método clasificador predict_proba () para verificar.

Sin embargo, embolsado por lo general mucho mejor que pegar efecto.

evaluar

Embolsado sobre la aplicación del conjunto de entrenamiento, sólo el 63% de los ejemplos incluidos en el modelo, que no se ve el 37% de los casos antes de que este clasificador medios. Estos pueden ser el mismo que el utilizado para evaluar la validación cruzada.

Para utilizar esta característica, única clase en el ejemplo anterior BaggingClassifier añadió oob_score = parámetros verdaderos en él.

código Python es el siguiente:

bag_clf = BaggingClassifier(
DecisionTreeClassifier(random_state=42), n_estimators=500,
max_samples=100, bootstrap=True, n_jobs=-1, random_state=42,
oob_score = True) 

Hasta el momento, se muestrea único ejemplo. Sin embargo, para los conjuntos de datos con un gran número de características, así como otras técnicas.

Random Forests

El árbol de decisiones es una colección de bosque aleatorio. Random Forests ejecución de ensacado internamente. Random bosques crean unos árboles, a veces miles de árboles, y calcular el mejor modelo para un determinado conjunto de datos. Random Bosque algoritmo no se considera a todas las características del nodo de división, sino seleccionar las mejores características de todas las características de la sub-conjunto. Esta desviación a cambio de una mayor a una menor varianza, lo que resulta en mejores modelos.

código Python es el siguiente:

from sklearn.ensemble import RandomForestClassifier

rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1, random_state=42)
rnd_clf.fit(X_train, y_train)

y_pred_rf = rnd_clf.predict(X_test)

Parámetros: n_estimators es limitar el número de árboles forestales. El número máximo de max_leaf_nodes utilizados para establecer el nodo final, de modo que el algoritmo no perforará hacia abajo y modelos exceso de ajuste en una sola característica (Para instrucciones detalladas, véase el árbol de decisión). n_jobs especifica de ordenador el número de núcleos que se utilizarán; todo valor posible de -1 significa el núcleo máxima.

El uso de una búsqueda de rejilla se puede mejorar cambiando los valores de los parámetros del modelo.

AdaBoost

Aunque la función de la tecnología de las matemáticas AdaBoost es muy desalentadora, pero el concepto es muy simple. En primer lugar, seleccione un clasificador básico, para un conjunto dado de predicción. Anote los casos de errores de clasificación. Justo clasificados erróneamente los casos de aumento de peso. El derecho a un segundo clasificador entrenado en el conjunto de entrenamiento y el uso de las ponderaciones actualizadas.

En términos simples, la clasificación y la predicción de ejecución. Ejecutar otra instancia de un clasificador para encajar el error de clasificación y predicción anterior. Repita hasta que todos / la mayoría de los ejemplos de entrenamiento son adecuados.

código Python es el siguiente:

from sklearn.ensemble import AdaBoostClassifier

ada_clf = AdaBoostClassifier(
    DecisionTreeClassifier(max_depth=1), n_estimators=200,
    algorithm="SAMME.R", learning_rate=0.5, random_state=42)
ada_clf.fit(X_train, y_train)

Scikit-learn utilizar una versión multi-clase llamada Adaboost SAMME (multi-función de pérdida por etapas Índice Aditivo Modeling). Si el predictor puede calcular una (método que tiene predict_proba ()) la probabilidad, el uso Scikit Aprende SAMME.R (R representa un número real), que se basa en la probabilidad de un ajuste por exceso y fácil. Si el exceso de ajuste, pruebe el Estimador básica regularizarse.

Impulsar gradiente

Y AdaBoost similares, Gradiente Impulsar también se aplica a añadir a los modelos de predicción continuas generales. Gradiente de impulsar no actualiza ejemplos de entrenamiento AdaBoost tales como el peso, pero los nuevos residuos del modelo coincide.

En resumen, el ajuste del modelo en un conjunto de entrenamiento dado. Cálculo de una nueva residuales ejemplos de entrenamiento. Un nuevo modelo fue entrenado en ellos y así sucesivamente. Seleccione Añadir todos los modelos predicen.

código Python es el siguiente:

from sklearn.ensemble import GradientBoostingRegressor

gbrt = GradientBoostingRegressor(max_depth=2, n_estimators=3, learning_rate=1.0, random_state=42)

contribución tasa de aprendizaje estrecha de cada árbol. Compromiso entre learning_rate y n_estimators. La reducción del valor de learning_rate aumentará el número total de árboles. Esto se conoce como contracción. La diferencia es que el número estimado se incrementa a un valor mayor puede hacer que el modelo de sobreajuste.

XGBoost

XGBoost es la última mejor y más poderoso método, la mejora del gradiente. XGBoost no hace un "sí" y "no decisión" en un nodo hoja, pero la distribución de valor positivo y negativo para cada decisión. Todos los árboles son debilidad de los alumnos, y proporcionan un poco mejor que las decisiones de adivinar al azar. Pero, en general, XGBoost lo hizo muy bien.

código Python es el siguiente:

from xgboost import XGBoostClassifier
xgb_clf = XGBClassifier()
xgb_clf.fit(X, y)

XGBoost árbol y se puede utilizar con los modelos lineales, y se ha utilizado con gran éxito Kaggle modelo de juego. Es una poderosa herramienta para su caja de herramientas de la ciencia de datos.

Publicados 414 artículos originales · ganado elogios 168 · vistas 470 000 +

Supongo que te gusta

Origin blog.csdn.net/CoderPai/article/details/90609944
Recomendado
Clasificación