es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Crear características de cuentas correctamente.

Tengo una tabla como esta:

PC USER Periodo
A U1 2020/01
A U2 2020/02
A U3 2020/03
A U4 2020/04
B U1 2020/01
B U2 2020/02
B U2 2020/03

Necesito crear un “conteo de características” para verificar cuántas veces se encontró “PC” y el usuario se conectó.

Ahora, para un algoritmo de aprendizaje automático, ¿cuál es la mejor manera de hacer eso? Incluso se puede combinar de diferentes formas.

  1. Para cada fila, mostrar la conexión máxima:
PC USER Periodo Máxima Conexión por PC Máxima Conexión por Usuario
A U1 2020/01 4 2
A U2 2020/02 4 3
A U3 2020/03 4 1
A U4 2020/04 4 1
B U1 2020/01 3 2
B U2 2020/02 3 3
B U2 2020/03 3 3
  1. Para cada fila, mostrar el recuento de la conexión:
PC USER Periodo Máxima Conexión por PC Máxima Conexión por Usuario
A U1 2020/01 1 1
A U2 2020/02 2 1
A U3 2020/03 3 1
A U4 2020/04 4 1
B U1 2020/01 1 2
B U2 2020/02 2 2
B U2 2020/03 3 3
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Python y pandas, existen múltiples formas de abordar el problema de crear una “cuenta de características” para la tabla dada.

    Una posible solución es utilizar la función groupby de pandas para agrupar la tabla por PC y USUARIO, y luego utilizar las funciones count y max para crear las características deseadas. Aquí hay dos formas posibles de crear las características:

    1. Para cada fila, mostrar la conexión máxima:
    # Agrupar la tabla por PC y USUARIO
    agrupado = df.groupby(['PC', 'USUARIO'])
    
    # Crear las características 'Máx Con Por PC' y 'Máx Con Por USUARIO' utilizando la función max
    df['Máx Con Por PC'] = agrupado['USUARIO'].transform('count').groupby('PC').transform('max')
    df['Máx Con Por USUARIO'] = agrupado['PC'].transform('count').groupby('USUARIO').transform('max')
    
    1. Para cada fila, mostrar el conteo de la conexión:
    # Agrupar la tabla por PC y USUARIO
    agrupado = df.groupby(['PC', 'USUARIO'])
    
    # Crear las características 'Máx Con Por PC' y 'Máx Con Por USUARIO' utilizando la función count
    df['Máx Con Por PC'] = agrupado['USUARIO'].transform('count').groupby('PC').transform('max')
    df['Máx Con Por USUARIO'] = agrupado['PC'].transform('count').groupby('USUARIO').transform('max')
    
    # Crear las características 'Cuenta De Conexión PC' y 'Cuenta De Conexión USUARIO' utilizando la función count
    df['Cuenta De Conexión PC'] = agrupado['USUARIO'].transform('count')
    df['Cuenta De Conexión USUARIO'] = agrupado['PC'].transform('count')
    

    Ambas soluciones darán como resultado las características deseadas, pero la elección entre ellas realmente depende del contexto del algoritmo de aprendizaje automático específico que se esté utilizando. La primera solución puede ser más útil si el algoritmo es sensible a los valores atípicos y desea capturar el nivel máximo de actividad para cada PC y USUARIO. La segunda solución puede ser más útil si el algoritmo está más interesado en el recuento de conexiones para cada PC y USUARIO, sin tener en cuenta los valores atípicos. Siempre es una buena idea experimentar con múltiples características y evaluar su impacto en el poder predictivo final del algoritmo.

Comments are closed.