Galería de mapas mentales Algoritmo de aprendizaje automático regresión lineal árbol de decisiones notas mapa mental de autoestudio
Algoritmo de aprendizaje automático regresión lineal decisión número notas autoestudio completo intercambio! El contenido cubre el algoritmo K-vecino más cercano, regresión lineal, regresión logística, árbol de decisión, aprendizaje conjunto y agrupación.
Editado a las 2023-02-25 09:44:36,Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Este es un mapa mental sobre una breve historia del tiempo. "Una breve historia del tiempo" es una obra de divulgación científica con una influencia de gran alcance. No sólo presenta los conceptos básicos de cosmología y relatividad, sino que también analiza los agujeros negros y la expansión. del universo. temas científicos de vanguardia como la inflación y la teoría de cuerdas.
¿Cuáles son los métodos de fijación de precios para los subcontratos de proyectos bajo el modelo de contratación general EPC? EPC (Ingeniería, Adquisiciones, Construcción) significa que el contratista general es responsable de todo el proceso de diseño, adquisición, construcción e instalación del proyecto, y es responsable de los servicios de operación de prueba.
Los puntos de conocimiento que los ingenieros de Java deben dominar en cada etapa se presentan en detalle y el conocimiento es completo, espero que pueda ser útil para todos.
Algoritmo de aprendizaje automático regresión lineal árbol de decisiones notas mapa mental de autoestudio
Algoritmo K-vecino más cercano
Principios de algoritmos y API
El concepto y principio del algoritmo K-vecino más cercano
concepto
Si la mayoría de las k muestras más similares (es decir, vecinas más cercanas en el espacio de características) de una muestra pertenecen a una determinada categoría, entonces la muestra también pertenece a esta categoría.
espacio de características
Un espacio establecido utilizando todas las características como ejes de coordenadas. En el espacio de características, cada muestra es un punto.
[Puntos clave] Principio y pasos de implementación
1. Calcule la distancia entre el punto en el conjunto de datos de categoría conocida y el punto actual
2. Organice estas distancias en orden ascendente
3. Seleccione los k puntos con la distancia más pequeña desde el punto actual.
4. Cuente la frecuencia de aparición de la categoría donde se ubican los primeros k puntos (encuentre la moda de las K categorías)
5. Utilice la categoría de modo como categoría del punto actual.
API de algoritmo de vecino más cercano K
Introducción a Scikit-learn
Herramientas de aprendizaje automático que implementan numerosos algoritmos de aprendizaje automático.
API
sklearn.vecinos.KNeighborsclassfier(n_vecinos)
Cálculo y optimización de algoritmos.
medida de distancia
distancia euclidiana
Distancia de Manhattan (distancia de cuadra)
distancia de Chebyshev
Distancia de Minkowski (distancia mínima)
Distancia euclidiana normalizada
distancia coseno
distancia de Hamming
Las longitudes de las cuerdas son iguales.
Calcular la distancia de la cuerda.
distancia jaccard
distancia entre dos conjuntos
Distancia de Mahalanobis
El impacto de la elección del valor K en el modelo.
Realización de subajuste y sobreajuste.
error de aproximación
El error del modelo en el conjunto de entrenamiento.
error de estimación
El error del modelo en el conjunto de prueba.
Falta de adaptación
El error de aproximación es grande y el error de estimación es grande. Para decirlo sin rodeos, el modelo tiene un rendimiento deficiente tanto en el conjunto de entrenamiento como en el de prueba.
sobreajuste
El error de aproximación es pequeño, pero el error de estimación es grande. Para decirlo sin rodeos, el modelo funciona bien en el conjunto de entrenamiento pero no en el conjunto de prueba.
El valor K es demasiado pequeño
En gran medida afectado por valores atípicos
El modelo es complejo, tiene una gran capacidad de aprendizaje y es propenso a sobreajustarse.
El valor K es demasiado grande
El impacto del desequilibrio muestral es grande
El modelo es simple, tiene poca capacidad de aprendizaje y es propenso a no adaptarse.
árbol kd
introducción al árbol kd
concepto de arbol
nodo raíz
Nodos con nodos secundarios únicos y sin nodos principales
nodo interno
Nodos que tienen nodos secundarios y nodos principales
nodo de hoja
Nodos con solo nodos principales y sin nodos secundarios
Árbol binario
Un árbol con como máximo dos nodos bifurcados.
El papel del árbol kd
Reduzca la cantidad de cálculos de distancia de muestra y encuentre rápidamente el punto vecino más cercano
Método de construcción del árbol kd.
1. Seleccione aleatoriamente una característica, tome la mediana de esta característica como punto divisorio para dividir los datos en dos partes iguales. La característica seleccionada es la característica divisoria del nodo actual y el punto mediano se utiliza como nodo actual. En esta característica, los puntos más pequeños que la mediana se clasifican en el nodo izquierdo y los puntos más grandes que la mediana se clasifican en el derecho. nodo;
2. Repita el primer paso para los datos del nodo izquierdo y derecho respectivamente;
3. Hasta que todas las muestras se coloquen en el nodo.
Cómo encontrar el punto más cercano en el árbol kd
1. Compare el punto de consulta M con las características divisorias y la mediana correspondiente de cada nodo en el árbol kd, y continúe comparando hacia abajo hasta llegar al nodo hoja. Registre en orden los nodos que recorrieron todo el proceso search_path;
2. El nodo al final de search_path es N, no saque N, registre la distancia entre dist = M y N, más cercano = N;
3. Saque un nodo L del final de search_path, el eje divisor de este nodo es x, calcule la distancia a desde el punto M hasta el eje x y luego manéjelo en dos casos:
Si a<dist, entonces todos los puntos en el espacio del otro lado dividido por el nodo L y el punto más cercano actual se incluyen en el rango de investigación, se calculan las distancias desde todos los puntos en el rango de investigación hasta el punto M, el punto más cercano es encontrado y el punto se registra como el más cercano. La distancia desde este punto a M es dist, descarta el nodo L y el paso finaliza;
Si a>=dist, descarta el nodo L y el paso finaliza
4. Repita el paso 3 hasta que search_path esté vacío;
5. Más cercano es el punto más cercano al punto de búsqueda y la distancia más cercana es dist.
Caso 1
Introducción a la API del conjunto de datos de scikit-learn
sklearn pequeño conjunto de datos
API: load_* Como: load_iris()
conjunto de datos grandes de sklearn
API: fetch_* Como por ejemplo: fetch_20newsgroups(sub_set='train')
Descripción del parámetro: sub_set='train' especifica el tipo de conjunto de datos que se obtendrá
Introducción al valor de retorno del conjunto de datos de sklearn
Tipo de datos: datasets.base.Bunch (formato de diccionario)
datos: matriz de datos de características
objetivo: conjunto de etiquetas (valores objetivo)
feature_names: nombres de características
target_names: nombres de etiquetas
llaves() obtiene todos los atributos (campos) del diccionario
Dibuje un diagrama de dispersión de datos y encuentre valores atípicos
sns.lmplot(col1, col2, datos, tono, fit_reg)
Partición del conjunto de datos
x_train, x_test, y_train, y_test = trian_test_split(x, y, tamaño_prueba)
Preprocesamiento de características usando sklearn
Normalizado
Desventajas de la normalización: muy afectada por valores atípicos
API: MinMaxScaler(feature_range)
Función: Convertir datos entre 0 y 1
Estandarización
API: Escalar estándar()
Función: convertir datos a media = 0, std = 1
Predicción de especies de flores de iris.
Caso 2
Validación cruzada y búsqueda en grilla
Validación cruzada
Divida el conjunto de entrenamiento uniformemente en N partes, tome una parte diferente como conjunto de verificación y la otra parte como conjunto de entrenamiento, entrene y verifique el rendimiento del modelo y utilice el promedio de N veces el rendimiento del modelo como rendimiento del modelo en este conjunto de entrenamiento.
búsqueda de cuadrícula
Encuentre la combinación óptima de hiperparámetros.
API
sklearn.model_selection.GridSearchCV(estimador, param_grid, cv)
Predecir la ubicación del check-in en Facebook
regresión lineal
Introducción a la regresión lineal
Fórmula matemática (modelo matemático) de regresión lineal
h(w) = w1*x1 w2*x2 w3*x3 ... wn*xnb
El concepto de hiperplano.
La relación lineal n-1 dimensional en un espacio n-dimensional se denomina hiperplano en un espacio n-dimensional.
API
sklearn.linear_model.LinearRegression()
Pérdidas y optimización para regresión lineal
función de pérdida
1. La función de pérdida es una función de los parámetros entrenables.
2. Cuanto menor sea el valor de la función de pérdida, más cerca estará el valor predicho del modelo del valor real.
Método de optimización de regresión lineal.
ecuación normal
Calcule los parámetros óptimos directamente
NOTA: Aplicable sólo a modelos de regresión lineal con pérdida de mínimos cuadrados
método de descenso de gradiente
Itere continuamente a través de gradientes para encontrar parámetros entrenables óptimos
Métodos generales de optimización.
Función de pérdida El descenso de gradiente es el método de optimización de modelos más común
método de descenso de gradiente
Algoritmo de descenso de gradiente completo (FG)
Algoritmo de descenso de gradiente estocástico (SG)
Algoritmo de descenso de gradiente promedio estocástico (SAG)
Algoritmo de descenso de gradiente de mini lotes (mini-bantch)
Previsión del precio de la vivienda en Case-Boston
API de evaluación del rendimiento de regresión: sklearn.metrics.mean_squared_error(y_true, y_pred)
API de regresión lineal de optimización de ecuaciones normales: sklearn.linear_model.LinearRegression()
Optimización de la regresión lineal con descenso de gradiente estocástico: sklearn.linear_model.SGDRegressor()
Sobreajuste y desajuste
Falta de adaptación
Definición: el modelo funciona mal tanto en el conjunto de entrenamiento como en el conjunto de prueba.
Solución: aumentar la complejidad del modelo
Aumentar el número de características de los datos.
Agregar términos polinomiales
sobreajuste
Definición: el modelo funciona bien en el conjunto de entrenamiento, pero no funciona bien en el conjunto de prueba.
Solución: reducir la complejidad del modelo
Limpiar los datos nuevamente
Aumentar la cantidad de datos de entrenamiento.
Regularización
Regularización L1: puede hacer que algunos de los valores de W sean directamente 0, eliminando la influencia de esta característica. Se puede utilizar para la selección de funciones.
Regularización L2: puede hacer que algunas de las W sean muy pequeñas y cercanas a 0, debilitando la influencia de una determinada característica.
Reducir el número de funciones
modelo lineal regularizado
regresión de crestas
Regularización L2 de regresión lineal
El lazo regresa
Regularización L1 de regresión lineal
red elástica
Regresión lineal L1 L2
regresión de crestas
Regresión lineal con regularización L2
API: Ridge (alfa)
Guardar y cargar modelos
Guardar: joblib.dump(estimador, ruta)
Cargando: joblib.load(ruta)
Regresión logística
Los principios de la regresión logística.
Modelo matemático: función de activación de regresión lineal (sigmoidea)
El papel de la función de activación: aumentar la capacidad de ajuste no lineal del modelo
Función de pérdida: pérdida de probabilidad logarítmica
Método de optimización: descenso de gradiente
API: sklearn.linear_model.LogisticRegression()
Cómo evaluar modelos de clasificación
API de informe de evaluación de clasificación: Classification_report(y_true, y_pred, label, target_names)
curva ROC
TPR = TP / (TP FN)
FPR = FP / (FP TN)
Ajuste el umbral para obtener múltiples puntos (FPR, TPR) y dibuje la curva ROC
indicador AUC
Significado: seleccione aleatoriamente un par de muestras positivas y negativas, la probabilidad de que la puntuación de la muestra positiva sea mayor que la de la muestra negativa
API: roc_auc_score(y_true, y_score), nota: y_true debe usar 0, 1 para marcar casos falsos y casos positivos
árbol de decisión
Introducción al algoritmo del árbol de decisión.
El árbol de decisión es una estructura de árbol.
Cada nodo interno representa el juicio de una característica.
Cada rama representa la salida de un resultado de juicio.
Cada nodo de hoja representa un resultado de clasificación.
El principio del árbol de decisión.
Selección de características y base de división de los nodos del árbol de decisión.
entropía
Una medida de “caos”
entropía = -p1logp1 - p2logp2 ... pn*log(pn)
ganancia de información
La diferencia de entropía antes y después de dividir el conjunto de datos por una determinada característica.
Ganancia de información = entrada (antes) - entrada (después)
Cuanto mayor sea la ganancia de información, mejor será el método de clasificación de esta característica.
tasa de ganancia de información
Métrica de ganancia de información/información separada
Medida de información de separación = entropía calculada a partir de la probabilidad de ocurrencia de cada categoría de una característica
Ganancia de Gini
Valor de Gini: la probabilidad de que dos muestras seleccionadas al azar del conjunto de datos D tengan valores objetivo (etiquetas) inconsistentes
Cuanto menor sea el valor de Gini, mayor será la pureza del conjunto de datos.
Ganancia de Gini = Valor de Gini (antes) - Valor de Gini (después)
Cuanto mayor sea el aumento del valor de Gini, mejor será este método de división.
Pasos para construir un árbol de decisiones
1. Empiece a mirar todas las muestras en su conjunto.
2. Recorra cada método de segmentación de cada característica y encuentre la mejor segmentación (según la ganancia de información, la tasa de ganancia de información y la ganancia de valor de Gini)
3. Según el método de división óptimo, divida todas las muestras en dos partes N1 y N2, es decir, dos ramas.
4. Continúe los pasos 2 y 3 para N1 y N2 hasta que cada nodo sea lo suficientemente "puro".
Según las diferentes bases de selección y división de nodos, el árbol de decisión se divide en
Árbol de decisión ID3: ganancia de información
C4.5 Árbol de decisión: Tasa de obtención de información
Árbol de decisión CART: ganancia de valor de Gini (o índice de Gini)
poda de carro
Propósito: Reducir la cantidad de nodos del árbol de decisión -> Reducir la complejidad del árbol de decisión -> Evitar que el árbol de decisión se sobreajuste
método
Prepoda: Poda al crear un árbol de decisión
El número mínimo de muestras contenidas en cada nodo, como 10. Si el número total de muestras en el nodo es inferior a 10, no se realizará ninguna clasificación.
Especifique la altura o profundidad del árbol, por ejemplo, la profundidad máxima del árbol es 4
Si la entropía del nodo especificado es menor que un cierto valor, ya no se dividirá.
Postpoda: poda después de crear el árbol de decisión
El método es similar a la poda previa.
Ingeniería de funciones: extracción de funciones
Extracción de características del diccionario
sklearn.feature_extraction.DictVectorizer(esparse=Verdadero)
Nota: Este método codificará automáticamente datos discretos one_hot
Extracción de características de texto
recuento de ocurrencias de palabras
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
Extracción de características de texto tf-idf
TF: frecuencia de palabras
Se refiere a la frecuencia con la que aparece una palabra determinada en el documento.
IDF: frecuencia inversa de documentos
Divida el número total de documentos por el número de documentos que contienen la palabra y luego tome el logaritmo en base 10 del cociente para obtener
TF-IDF
TF-IDF = TF*IDF
Función: Evaluar la importancia de una palabra para un conjunto de documentos o un documento en un corpus
API:sklearn.feature_extraction.text.TfidfVectorizer(stop_works)
Nota: Para extraer características de artículos chinos, primero se debe realizar la segmentación de palabras.
Participio tartamudo: jieba.cut
Caso: Predicción de supervivencia de pasajeros del Titanic
API del árbol de decisión: sklearn.tree.DecisionTreeClassifier(criterio=’gini’, max_profundidad=Ninguno,random_state=Ninguno)
Visualización del árbol de decisión: sklearn.tree.export_graphviz()
Resumir
Ventajas de los árboles de decisión: simples, interpretables y visualizables
Desventajas de los árboles de decisión: fácil de sobreajustar
Solución
poda
bosque aleatorio
Aprendizaje conjunto
Introducción a los algoritmos de aprendizaje conjunto.
Genere múltiples clasificadores/modelos, cada uno de los cuales aprende y hace predicciones de forma independiente. En última instancia, estas predicciones se combinan en una predicción combinada, que por lo tanto es mejor que cualquier predicción de clasificación única.
potenciar -> desadaptar
embolsado -> sobreajuste
Aprendizaje en conjunto de embolsado
Principio: construya varios modelos en paralelo y los modelos sean independientes entre sí.
1. Muestreo: muestreo de N datos con reemplazo aleatorio
2. Aprendizaje: utilice N datos para aprender N modelos diferentes
3. Integración: Mediante votación igualitaria de N modelos, el que tenga más votos será el resultado final.
bosque aleatorio
¿Qué es el bosque aleatorio: árbol de decisión de embolsado?
API: sklearn.ensemble.RandomForestClassifier (n_estimadores, profundidad máxima)
ventaja
Ambos métodos pueden mejorar la tasa de precisión de la generalización en aproximadamente un 2% con respecto al algoritmo original.
Sencillo, práctico y versátil
Impulsar el principio de integración: construya varios modelos en serie, y el modelo creado posteriormente se verá afectado por el modelo creado anteriormente.
1. Inicialice los pesos de entrenamiento, iguale los pesos y entrene al primer alumno (modelo)
2. Calcule la tasa de error del alumno en los datos de entrenamiento.
3. Calcule el peso del alumno en función de la tasa de error.
4. Vuelva a ponderar los datos de entrenamiento según el peso del alumno.
5. Repita los pasos 1 ~ 4 m veces
6. Votación ponderada sobre los resultados de m modelos para obtener el resultado final.
agrupamiento
Introducción a los algoritmos de agrupamiento.
El algoritmo de agrupamiento es un algoritmo de aprendizaje no supervisado típico, que se utiliza principalmente para clasificar automáticamente muestras similares en una categoría.
La mayor diferencia entre los algoritmos de agrupamiento y los algoritmos de clasificación: los algoritmos de agrupamiento son algoritmos de aprendizaje no supervisados y los algoritmos de clasificación son algoritmos de aprendizaje supervisados.
Uso inicial de la API del algoritmo de agrupamiento
sklearn.cluster.KMeans(n_clusters=8)
Método de predicción: llame a fit_predict (X) para obtener los resultados de la clasificación
Proceso de implementación del algoritmo de agrupamiento (principio)
1. Seleccione aleatoriamente K muestras como centros de K categorías;
2. Calcule la distancia desde todas las muestras hasta el centro;
3. Qué categoría la muestra está más cerca del centro;
4. Después de dividir K categorías, vuelva a calcular las coordenadas del centro. El método de cálculo es utilizar el valor promedio de cada valor de característica de las muestras en la categoría como las coordenadas correspondientes del nuevo centro;
5. Repita los pasos 2, 3 y 4 hasta que las coordenadas del centro ya no cambien.
Evaluación de modelos para agrupación.
Suma de errores al cuadrado: la suma de las distancias al cuadrado (distancia euclidiana) de todas las muestras al centro de categoría correspondiente
Método del "codo": cuando la tasa de disminución se ralentiza repentinamente, se considera el mejor valor k
Coeficiente de silueta SC: el valor es [-1, 1]. Cuanto mayor sea el valor, mejor. Si es un valor negativo, la muestra puede clasificarse incorrectamente.
Coeficiente CH: cuanto mayor sea la puntuación s, mejor será el efecto de agrupación.
Optimización de algoritmos
Algoritmo de dosel con agrupamiento inicial
K-medias
K-medias bipartitas
ISODATOS
kernel km significa
K-medias de mini lotes
Reducción de dimensionalidad de características
Selección de características
Eliminar características de baja variación
Coeficiente de correlación de Pearson
Coeficiente de correlación de Spearman
Análisis de componentes principales PCA
Caso: Exploración de las preferencias del usuario para categorías de artículos y reducción de dimensionalidad