accesskey_mod_content

Como preparar un conxunto de datos para machine learning e análises

  • Escoitar
  • Copiar
  • Imprimir PDF
  • Compartir

"Noticia dispoñible unicamente con fins históricos e de hemeroteca. A información e ligazóns mostradas correspóndense cos que estaban operativos á data da súa publicación. Non se garante que continúen activos actualmente".

03 maio 2023

No proceso de análise de datos e adestramento de modelos de aprendizaxe automática, é fundamental contar cun conxunto de datos adecuado.

O primeiro que hai que ter en conta ao preparar os datos é saber o tipo de problema que se tenta resolver. Por exemplo, se a túa intención é crear un modelo de aprendizaxe automática capaz de recoñecer o estado emocional de alguén a partir das súas expresións faciais, necesitarás un conxunto de datos con imaxes ou vídeos de caras de persoas. Ou, talvez, o obxectivo é crear un modelo que identifique os correos electrónicos non desexados. Para iso, necesitaranse datos en formato texto de correos electrónicos.

Ademais, os datos que se precisan tamén dependen do tipo de algoritmo que queiras utilizar. Os algoritmos de  aprendizaxe supervisada(Abre en nova xanela) , como a regresión lineal ou as árbores de decisión, requiren un campo que conteña o valor verdadeiro dun resultado para que o modelo aprenda del. Ademais deste valor verdadeiro, denominado obxectivo, requiren campos que conteñan información sobre as observacións, algo que se coñece como características. En cambio, os algoritmos de  aprendizaxe non supervisada(Abre en nova xanela) , como a agrupación k-means ou os sistemas de recomendación baseados no filtrado colaborativo, polo xeral só necesitan características.

Con todo, atopar os datos é só a metade do traballo. Os conxuntos de datos do mundo real poden conter todo tipo de erros que poden facer que todo o traballo resulte inútil se non se detectan e corrixen antes de empezar. Neste post, imos presentar algúns dos principais obstáculos que pode haber nos conxuntos de datos para a aprendizaxe automática e a análise, así como coñecer algunhas maneiras en que a plataforma de ciencia de datos colaborativa,  Datalore(Abre en nova xanela) , pode axudar a detectalos rapidamente e porlles remedio.

Os datos son representativos daquilo que se quere medir?

A maioría dos conxuntos de datos para proxectos ou análises de aprendizaxe automática non están deseñados especificamente para ese fin. A falta de un dicionario de metadatos ou dunha explicación sobre o que significan os campos do conxunto de datos, é posible que o usuario teña que resolver a incógnita baseándose na información da que dispón.

Unha forma de determinar o que miden as características dun conxunto de datos é comprobar as súas relacións con outras características. Se se supón que dous campos miden cousas similares, é de esperar que estean moi relacionados. Pola contra, se dous campos miden cousas moi diferentes, é de esperar que non estean relacionados. Estas ideas coñécense como validez converxente e discriminante, respectivamente.

Otra cousa importante que hai que comprobar é se algún dos trazos está demasiado relacionado co público obxectivo. Se isto ocorre, pode indicar que este trazo está a acceder á mesma información que o obxectivo a predicir. Este fenómeno coñécese como “feature leakage” (fuga de características). Se se empregan estes datos, existe o risco de inflar artificialmente o rendemento do modelo.

Neste sentido, Datalore permite escanear rapidamente a relación entre variables continúas mediate o gráfico de correlación na pestana Visualizar para un DataFrame. Outra maneira de comprobar estas relacións é utilizando gráficos de barras ou tabulaciones cruzadas, ou medidas do tamaño do efecto como o coeficiente de determinación ou a V de Cramér .

O conxunto de datos está correctamente filtrado e limpo?

Os conxuntos de datos poden conter todo tipo de inconsistencias que poden afectar negativamente aos nosos modelos ou análises. Algúns de os indicadores máis importantes de datos sucios son:

  • Valores inverosímiis: Isto inclúe valores que están fóra de rango, como os negativos nunha variable de reconto ou frecuencias que son moito máis altas ou máis baixas do esperado para un campo en particular.
  • Valores atípicos: Trátase de  valores extremos(Abre en nova xanela) , que poden representar calquera cousa, desde erros de codificación que se produciron no momento en que se escribiron os datos, ata valores raros pero reais que se sitúan fóra do groso das demais observacións.
  • Valores perdidos: O patrón e a cantidade de datos que faltan determinan o impacto que terán, sendo os máis graves os que están relacionados co obxectivo ou as características.

Os datos sucios poden minguar a calidade das súas análises e modelos, en gran medida porque distorsionan as conclusións ou porque conducen a un rendemento deficiente do modelo. A pestana Estatísticas de permite comprobar Datalore facilmente estes problemas, xa que mostra dunha ollada a distribución, o número de valores perdidos e a presenza de valores atípicos para cada campo. Datalore tamén facilita a exploración dos datos en bruto e permite realizar operacións básicas de filtrado, ordenación e selección de columnas directamente nun DataFrame, exportando o código Python correspondente a cada acción a unha nova cela.

As variables están equilibradas?

Os  datos desequilibrados(Abre en nova xanela)  prodúcense cando os campos categóricos teñen unha distribución desigual de observacións entre todas as clases. Esta situación pode causar problemas importantes para os modelos e as análises. Cando se ten un obxectivo moi desequilibrado, pódense crear modelos perezosos que aínda poden lograr un bo rendemento simplemente predicindo por defecto a clase maioritaria. Poñamos un exemplo extremo: temos un conxunto de datos no que o 90% das observacións corresponden a unha das clases obxectivo e o 10% á outra. Se sempre predixésemos a clase maioritaria para este conxunto de datos, seguiriamos obtendo unha precisión do 90%, o que demostra que, nestes casos, un modelo que non aprende nada das características pode ter un rendemento excelente.

As características tamén ven afectadas o desequilibrio de clases. Os modelos funcionan aprendendo patróns, e cando as clases son demasiado pequenas, é difícil para os modelos facer predicións para estes grupos. Estes efectos poden agravarse cando se teñen varias características desequilibradas, o que leva a situacións nas que unha combinación concreta de clases pouco comúns só pode darse nun puñado de observacións.

Os datos desequilibrados poden rectificarse mediante diversas técnicas de mostraxe. O submuestreo (undersampling, en inglés) consiste en reducir o número de observacións nas clases máis grandes para igualar a distribución dos datos, e o sobremuestreo (oversampling) consiste en crear máis datos nas clases máis pequenas. Hai moitas formas de facelo. Algúns exemplos inclúen o uso de paquetes Python como  imbalanced-learn(Abre en nova xanela)  ou servizos como  Gretel(Abre en nova xanela) . As características desequilibradas tamén poden corrixirse mediante a enxeñaría de características, cuxo obxectivo é combinar clases dentro dun campo sen perder información.

En definitiva, é representativo o conxunto de datos?

Á hora de crear un conxunto de datos, tense en mente un grupo obxectivo ou target para o cal desexas que o teu modelo ou análise funcione. Por exemplo, un modelo para predicir a probabilidade de que os homes estadounidenses interesados na moda compren unha determinada marca. Este  grupo obxectivo(Abre en nova xanela)  é a poboación sobre a que se quere poder facer xeneralizacións. Con todo, como non adoita ser práctico recompilar información sobre todos os individuos que constitúen esta parte da poboación, no seu lugar emprégase un subconjunto denominado  mostra(Abre en nova xanela) .

Ás veces xorden problemas que fan que os datos da mostra para o modelo de  aprendizaxe automática(Abre en nova xanela)  e a análise non representen correctamente o comportamento da poboación. Isto denomínase rumbo dos datos. Por exemplo, é posible que a mostra non capte todos os subgrupos da poboación, un tipo de rumbo denominado rumbo de selección.

Unha forma de comprobar o rumbo é inspeccionar a distribución dos campos dos seus datos e comprobar que teñen sentido baseándose no que un sabe sobre ese grupo da poboación. O uso da pestana Estatísticas de permite Datalore escanear a distribución das variables continuas e categóricas dun DataFrame .

Está a medirse o rendemento real dos modelos?

Unha última cuestión que pode porlle nun aperto é a medición do rendemento dos seus modelos. Moitos modelos son propensos a un problema  chamado sobreajuste(Abre en nova xanela)  que é cando o modelo se axusta tan ben aos datos de adestramento que non se xeneraliza ben aos novos datos. O signo revelador do sobreajuste é un modelo que funciona extremadamente ben cos datos de adestramento e o seu rendemento é inferior con novos datos. A forma de ter isto en conta é dividir o conxunto de datos en varios conxuntos: un conxunto de adestramento para adestrar o modelo, un conxunto de validación para comparar o rendemento de diferentes modelos e un conxunto de proba final para comprobar como funcionará o modelo no mundo real.

Con todo, crear unha división limpa de adestramento-validación-proba pode ser complicado. Un problema importante é a fuga de datos, pola que a información de os outros dous conxuntos de datos fíltrase no conxunto de adestramento. Isto pode dar lugar a problemas que van desde os obvios, como as observacións duplicadas que terminan no tres conxuntos de datos, a outros máis sutís, como o uso de información de todo o conxunto de datos para realizar o preprocesamiento de características antes de dividir os datos. Ademais, é importante que o tres conxuntos de datos teñan a mesma distribución de obxectivos e características, para que cada un sexa unha mostra representativa da poboación.

Para evitar calquera problema, débese dividir o conxunto de datos en conxuntos de adestramento, validación e proba ao principio do seu traballo, antes de realizar calquera exploración ou procesamento. Para asegurarse de que cada conxunto de datos ten a mesma distribución de cada campo, pódese utilizar un método como train_test_split de  scikit-learn(Abre en nova xanela) , deseñado especificamente para crear divisións representativas dos datos. Por último, é recomendable comparar as estatísticas descritivas de cada conxunto de datos para comprobar se hai signos de fuga de datos ou divisións desiguais, o que se fai facilmente utilizando a pestana Estatísticas de Datalore.

En definitiva, existen varios problemas que poden ocorrer cando se preparan os datos para a aprendizaxe automática e a análise e é importante saber como mitigalos. Aínda que isto pode ser unha parte que consome moito tempo do proceso de traballo, existen ferramentas que poden facer que sexa máis rápido e fácil detectar problemas nunha etapa temperá.

Fonte orixinal da noticia(Abre en nova xanela)

  • Información e datos do sector público