Analista de datos: entrevista técnica
Analista de datos - Entrevista técnica
Comencé a buscar una pasantía en marzo y ya ha pasado medio año. En este medio año, básicamente he experimentado todo lo que necesito. Para experimentar, durante el reclutamiento de pasantías de primavera, recibí 7 ofertas. Durante el reclutamiento escolar, conseguí con éxito mi trabajo favorito, lo que puso fin a mi viaje de reclutamiento de otoño. Para las entrevistas, el nivel técnico son algoritmos, software, etc., y el nivel empresarial es hacer trampa (después de todo, nunca he hecho un proyecto completo), pero también debes tener tu propia lógica y forma de pensar (yo también soy muy falta en este aspecto). A continuación, mi experiencia en entrevistas se clasifica en niveles técnicos y comerciales para compartir con usted.
Entrevista técnica
1. Software
1. Lectura de archivos en lenguaje R: método de lectura de archivos csv (read.csv), método de lectura de archivos txt (read.table)
2. El papel de algunas funciones pequeñas en lenguaje R
①aplicar función: 1 significa llamar a la función de cada fila, 0 significa llamar a la función de cada columna (Tenga en cuenta la diferencia entre su uso y Python)
②función runif: genera números aleatorios distribuidos uniformemente
③sample (, return = TRUE): muestreo aleatorio con reemplazo
3. La mayor diferencia entre listas y tuplas en Python: el valor de una tupla no se puede cambiar, pero el valor de una lista se puede cambiar.
4. Cómo conectar tablas en la base de datos
①Unión interna: unión interna
②Unión externa: unión externa
③Conexión izquierda: left join
Nota: para el análisis de datos, se recomienda tener su propio conjunto de sistemas de proceso, ya sea R, Python o SQL. Este sistema puede ayudarlo a resolver problemas prácticos.
2. Algoritmos
Para los algoritmos (clasificación, agrupamiento, asociación, etc.), se recomienda que todos tengan un sistema basado en procesos. Al entrevistar algoritmos, es secuencial. En el proceso de progreso, no caves agujeros por ti mismo, al contrario, debes aprovechar al máximo tus propias ventajas y liberar todo lo que sabes.
Conectaré todas mis entrevistas a continuación y las compartiré contigo, solo como referencia.
Entrevistador: Hola, Xiao Zhang. Después de leer su currículum, sé un poco sobre los algoritmos relevantes. Comencemos nuestra entrevista. Hay 100 muestras en un conjunto de muestras. a A, y 9900 muestras pertenecen a B. Quiero utilizar el algoritmo del árbol de decisión para distinguir las muestras AB. Qué problemas encontraré en este momento:
Xiao Zhang: Fenómeno de desajuste, porque en En esta muestra. conjunto, las muestras AB están seriamente desequilibradas en el proceso de establecer el algoritmo del árbol de decisión, el modelo estará más sesgado hacia las propiedades de las muestras B. Está mal entrenado en las propiedades de las muestras A y no puede reflejar bien las características de la muestra. colocar. .
Entrevistador: Parece que comprende bien los árboles de decisión. ¿Puede contarme sobre su comprensión del algoritmo del árbol de decisión?
Xiao Zhang: No importa qué tipo de algoritmo de árbol de decisión sea, su propósito es reducir la incertidumbre del modelo lo más rápido posible. En función de sus diferentes indicadores de evaluación, es principalmente el algoritmo ID3 y. Algoritmo C4 .5 y algoritmo CART El índice de evaluación del algoritmo ID3 es la ganancia de información, el índice de evaluación del algoritmo C4.5 es la tasa de ganancia de información y el índice de evaluación del algoritmo CART es el coeficiente de Gini.
Entrevistador: Ganancia de información, está bien, aquí hay un concepto de teoría de la información, deberías conocerlo, por favor descríbelo
Xiao Zhang: Entropía de Shannon, medida de incertidumbre de variable aleatoria. Usando el algoritmo ID3, cada vez que bifurcamos el árbol de decisión para seleccionar atributos, seleccionaremos el atributo con la mayor ganancia de información como atributo dividido. Solo así la impureza del árbol de decisión se reducirá más rápido.
Entrevistador: Bueno, también sabes que en el proceso de bifurcación infinita del árbol de decisión, habrá un fenómeno llamado sobreajuste, que es diferente del desajuste mencionado anteriormente. ¿Puedes decirme por qué ocurre el sobreajuste? ¿Y qué métodos utilizamos para prevenirlo?
Xiao Zhang: El efecto de predicción en los datos de entrenamiento es muy bueno, pero el efecto de predicción en los datos de prueba es pobre, lo que se dice que es un fenómeno de sobreajuste. Hay varias razones para el fenómeno de sobreajuste: en primer lugar, en el proceso de construcción del árbol de decisión, no existe una restricción (poda) razonable en el crecimiento del árbol de decisión; en segundo lugar, en el proceso de modelado, el uso de; Se agregan más variables de salida y más variables son propensas a sobreajustarse; tercero: hay algunos datos de ruido en la muestra, que interfieren mucho con la construcción del árbol de decisión y no se eliminan de manera efectiva. Para las medidas preventivas del fenómeno de sobreajuste, existen los siguientes métodos: primero: seleccionar parámetros razonables para la poda, que se pueden dividir en prepoda y pospoda. : K veces la validación cruzada, divide el conjunto de entrenamiento en K partes y luego realiza K veces la validación cruzada, cada vez usando K-1 parte como conjunto de datos de muestra de entrenamiento y la otra parte como el tercer conjunto de prueba; : reducir características, calcular cada una La correlación entre una característica y la variable de respuesta, comúnmente conocida como coeficiente de correlación de Pearson, elimina variables con pequeñas correlaciones. Por supuesto, existen otros métodos para la selección de características, como la selección de características basada en árboles de decisión, mediante. métodos de regularización para la selección de características, etc.
Entrevistador: Usted acaba de mencionar la poda previa y la poda posterior. Por supuesto, la poda previa significa que los parámetros del árbol de decisión se establecen en la etapa inicial de la generación del árbol de decisión y la poda posterior. Es cuando se genera el árbol de decisión. Una vez que esté completamente establecido, regrese y pode el árbol de decisión. ¿Puede decirme algunos parámetros a los que se puede hacer referencia durante el proceso de poda?
Xiao Zhang: La poda se divide en poda previa y posterior. Hay muchos parámetros en R y Python. Los parámetros se describen a continuación, max_ Depth (. altura del árbol), min_samples_split (número de nodos de hoja), max_leaf_nodes (número máximo de nodos de hoja), min_impurity_split (límite de impureza), por supuesto, el paquete rpart en lenguaje R también puede manejar bien este problema.
Entrevistador: Por cierto, acaba de hablar sobre el uso de árboles de decisión para seleccionar características. Ahora tomemos el algoritmo ID3 como ejemplo para hablar sobre la selección de características utilizando el algoritmo de árbol de decisión.
Xiao Zhang: para variables discretas, calcule la ganancia de información de cada variable y seleccione el atributo con la mayor ganancia de información como atributo de división del nodo, primero organice los valores de; las variables en orden ascendente, y cada El punto medio de los valores adyacentes se utiliza como un posible punto de separación. Para cada división, el punto con el requisito de información mínimo esperado se selecciona como el punto de división para realizar la división posterior del número de decisión.
Entrevistador: Usted acaba de mencionar la regularización, que de hecho puede hacer buenos ajustes al fenómeno de sobreajuste, según su propia comprensión, ¿puede hablar de regularización?
Xiao Zhang: No tengo un buen conocimiento de esta área del conocimiento. Permítanme hablar brevemente sobre mi comprensión de esta área. Tomando el caso bidimensional como ejemplo, en la regularización L1, el término de penalización es la suma de valores absolutos, por lo que aparecerá un rectángulo en el eje de coordenadas, pero el término de penalización de la regularización L2 es un círculo, por lo que aumenta en L1. regularización En la regularización L2, dado que la probabilidad de que el coeficiente sea 0 se reduce considerablemente, no tiene las características de una solución dispersa. Sin embargo, las características no seleccionadas por L1 no significan que no sean importantes, por lo que la regularización L1 y L2 deben usarse juntas.
Entrevistador: ¡No está mal! La regularización consiste en agregar un término de penalización después de la función objetivo. También puede entender este último término de penalización como una norma.
Hay muchos algoritmos de clasificación, y el algoritmo de regresión logística también es un algoritmo que usamos con frecuencia. La discusión principal ahora es el algoritmo del árbol de decisión. ¡Ahora hablemos brevemente sobre las diferencias entre los diferentes algoritmos de clasificación! ¿Discutir la diferencia entre el algoritmo de árbol de decisión y el algoritmo de regresión logística?
Xiao Zhang: Se divide en los siguientes aspectos: primero, la regresión logística se centra en ajustar los datos generales y es mejor que el árbol de decisión en términos de estructura general; sin embargo, el árbol de decisión utiliza un método de segmentación; y profundiza en los datos, el análisis de la estructura local es mejor que la regresión logística; en segundo lugar, la regresión logística tiene una mejor comprensión de los problemas lineales, por lo que cuando establecemos un algoritmo de clasificación, también damos prioridad al algoritmo de regresión logística, y Los árboles de decisión tienen una mejor comprensión de los problemas no lineales; en tercer lugar, considerando la naturaleza, el algoritmo del árbol de decisión supone que cada límite de decisión es paralelo o perpendicular a las características, por lo que el espacio de características se dividirá en rectángulos, por lo que el árbol de decisión. generar ecuaciones complejas, lo que provocará un fenómeno de ajuste excesivo. La regresión logística es solo una curva de límite suave y no es propensa a sobreajustarse.
Entrevistador: Ahora hablemos de la evaluación de modelos mediante algoritmos, ¿cuáles son algunos indicadores comúnmente utilizados? ¿Tasa de recuperación? ¿Curva ROC? ¿Qué significan exactamente estos indicadores?
Xiao Zhang: La precisión, una medida de exactitud, representa la proporción de tuplas marcadas como ejemplos positivos con respecto a los ejemplos positivos reales recordados, una medida de integridad, representa la proporción real de tuplas positivas que lo son; etiquetado correctamente; la abscisa de la curva ROC son falsos positivos y la ordenada son verdaderos positivos. Cuanto mayor sea el valor, mejor será el efecto de clasificación.
(Para ser honesto, esta es la primera vez que me arrodillo para hacer esta pregunta. Aunque no es problema memorizarla, mi mente estaba en blanco al momento de la entrevista)
Entrevistador: Usted conoce el análisis de conglomerados, ¿verdad? En algunos de nuestros análisis, también es un tipo de algoritmo que usamos a menudo. ¡Ahora puede presentar el algoritmo K-means!
Xiao Zhang: Para el algoritmo K-means, se puede dividir en los siguientes pasos: primero, seleccione aleatoriamente K puntos de datos de los puntos de datos como el centro de agrupación inicial; segundo: calcule la distancia de cada punto; a estos K puntos centrales y asigne cada punto al centro más cercano a él. Tercero: encuentre el valor promedio de cada clase y use estos valores promedio como el nuevo centro de clase Cuarto: repita los pasos El segundo y tercer proceso; , hasta el final del algoritmo, hay dos tipos de final del algoritmo, uno es que el número de iteraciones alcanza el requisito y el otro es que se alcanza una cierta precisión.
Posdata
El proceso de la entrevista es muy profundo. Por supuesto, las preguntas durante los aspectos técnicos del análisis de datos son mucho más que estas. Por lo tanto, debemos formar una imagen completa. Nuestra mente, ya sea un determinado lenguaje de programación o un algoritmo de minería de datos, necesita formar su circuito cerrado en el trabajo, y es aún más importante para usted formar un circuito cerrado durante la entrevista. perfectamente, ¡resúmelo tú mismo!
Apéndice
Sistema de procesamiento de datos en lenguaje R: resumen personal del preprocesamiento de datos simple
1. Vista simple de los datos
⑴Cómo verlos. Dimensión de datos: dim
⑵Ver atributos de datos: colnames
⑶Ver tipo de datos: str
Nota: algunos algoritmos, como los algoritmos de combinación, requieren clasificación La variable es una variable de factor; la agrupación jerárquica requiere una matriz de distancia, que se puede ver a través de la función str
⑷Ver las primeras filas de datos: head
Nota: inicialmente puede observar los datos Si hay diferencias dimensionales, nos prepararemos para el análisis posterior
⑸ Verifique la proporción de variables de factor: tabla/prop.table
Nota: puede tomar muestras de datos posteriores Haga los preparativos para ver si hay un problema de desequilibrio de clases
2 Procesamiento de valores de datos faltantes
⑴Función de resumen para visualización simple
⑵Utilice ratones y paquetes VIM Verifique los valores faltantes. de los datos, funciones representativas: md.pattern, aggr
⑶La función preProcess en el paquete caret puede realizar trabajos de interpolación de valores faltantes, incluidos los métodos knn, bagging y mediana
p>⑷La función missForest en el paquete missForest puede usar el método de bosque aleatorio para la interpolación
⑸El método de análisis de regresión se puede usar para completar el trabajo de interpolación de valores faltantes
⑹Si el tamaño de la muestra es grande y los datos faltantes son muy pequeños. Puede elegir el método de eliminación directa
3. Procesamiento de datos atípicos
⑴Función de resumen para una visualización sencilla, como: valor máximo, valor mínimo, etc.
⑵La función boxplot dibuja diagramas de caja
4. Muestreo de datos
⑴La función muestra realiza un muestreo aleatorio
⑵createDataPartition (en el paquete de intercalación) La función realiza un muestreo en proporciones iguales de muestras de entrenamiento y muestras de prueba
⑶La función createFold en el paquete caret realiza un muestreo en proporciones iguales según un determinado indicador
⑷La función SMOTE en el paquete DMwR puede resolver el desequilibrio de procesamiento Problema de clasificación
Nota: por ejemplo, en el algoritmo del árbol de decisión, si las muestras están muy desequilibradas, el modelo aparecerá insuficientemente ajustado
5. variables
p>⑴ Combine el negocio, primero elimine aquellos indicadores que son irrelevantes para el análisis
⑵La función corrgram del paquete corrgram para ver la matriz de coeficientes de correlación
⑶La función findCorrelation del paquete de intercalación para ver múltiples** *Lineal
⑷Si la correlación es demasiado grande, puede considerar eliminar las variables; si las variables son más importantes, puede considerar el componente principal/; análisis factorial para reducción de dimensionalidad