ODE3:Ferramentas para IA: Cadernos de programación e librerías
Aplicación en IA
Aplicación práctica en IA
As actividades anteriores, aínda que parecen centrarse só en análise de datos ou gráficos, teñen unha relación moi importante coa intelixencia artificial (IA) porque
a base da IA é o manexo, análise e comprensión de datos.
As librerías Matplotlib e Seaborn vanche servir en IA para:
Visualización de Datos
Exploración e Preprocesamiento de Datos
Atopar variables Relevantes para Modelos
Introdución a Técnicas Estatísticas
Aínda que ata agora estamos a traballar na visualización e comprensión de datos, estes pasos son a antesala da IA
Exemplos de aplicación de Matplotlib e Seaborn en IA
Este é un programa en Python que podes executar en Google Colaboratory para crear e manipular unha gráfica de datos de cualificacións de estudantes.
O programa inclue explicacións detalladas nos comentarios para que comprendas cada paso.
Executandoo en Colab, podes probar a crear a gráfica.
Non te preocupes por comprender o programa totalmente, só de entender o que fai.
Podes xogar cos datos das cualificacións ou cos parámetros da gráfica para practicar.
Que fai este programa?
Creación do DataFrame con datos simulados
Este DataFrame contén as puntuacións de 24 estudantes en dúas materias: Matemáticas e Ciencias. Cada estudante ten un nome único e as súas puntuacións van de 0 a 10.
Transformación a formato longo
Convértese o DataFrame a formato longo para que cada fila represente un estudante, unha materia e a puntuación. Este formato é útil para visualizar e analizar datos.
Normalización e mapa de cores
As puntuacións son vinculadas a unha paleta de cores (de fresco a cálido) para que os valores máis altos e baixos se diferencien visualmente no gráfico.
Creación dun gráfico de dispersión
Seaborn produce un gráfico onde os puntos representan estudantes, puntuacións, e materias. O tamaño e a cor dos puntos axúdanos a identificar puntuacións altas e baixas.
Personalización do gráfico
Engádese un borde ós puntos de Matemáticas para distinguilos dos de Ciencias. Mellórase a visibilidade co título, etiquetas, límites no eixo y e nomes dos estudantes rotados.
Que se pode extraer da gráfica?
Patróns: Identificar cales materias teñen puntuacións altas ou baixas en xeral.
Valores atípicos: Ver se hai estudantes cuxas puntuacións son especialmente altas ou baixas.
Erros: Detectar datos pouco comúns que poderían ser erros, como puntuacións fóra do rango.
O clustering ou agrupamento ou segmentación é unha técnica moi utilizada en intelixencia artificial, especificamente na aprendizaxe non supervisada.
Consiste en agrupar datos (neste caso, estudantes) en categorías baseadas en características similares.
Non se require etiquetar previamente os datos; en cambio, o algoritmo identifica patróns para formar grupos.
Do resultado do clustering e da visualización gráfica realizada, pódense extraer varias conclusións clave:
Agrupación de estudantes por rendemento:
O grupo azul contén estudantes con puntuacións altas en ambas materias.
O grupo gris representa estudantes con rendemento baixo tanto en Matemáticas como en Ciencias.
O grupo vermello inclúe estudantes con puntuacións intermedias.
Patróns claros no rendemento. Observando os grupos, pódense identificar tendencias como:
Estudantes que destacan de forma consistente en ambas materias.
Aqueles que precisan maior apoio para mellorar o seu rendemento.
Estudantes que poderían ter fortalezas nunha materia pero debilidades noutra.
Centros dos clústeres:Os centros dos clústeres representan os valores medios das puntuacións dentro de cada grupo. Isto dá unha visión xeral dos estándares de rendemento de cada grupo.
Potenciais usos deste modelo en IA:
Este tipo de clustering podería ser utilizado como parte dun sistema de recomendación para personalizar contidos e recursos educativos segundo o rendemento previo do estudante.Poderíase integrar con modelos que predigan o éxito en futuras materias baseándose no grupo ó que pertence cada estudante, facilitándolle por exemplo, a selección de materias optativas ou estudos superiores.
E agora imaxina poder manexar os datos de millóns de estudantes, de centos de materias, ...aí radica realmente o poder da IA!
Código Python: Rendemento de estudantes
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Crear o DataFrame con datos
datos = pd.DataFrame({
'Estudante': [f'Estudante {i+1}' for i in range(24)],
'Matemáticas': [8, 5, 7, 3, 10, 6, 4, 9, 2, 5, 7, 3, 6, 8, 5, 4, 3, 2, 9, 7, 6, 4, 5, 8],
'Ciencias': [7, 4, 6, 2, 9, 5, 3, 8, 1, 6, 8, 4, 7, 9, 5, 3, 2, 1, 10, 8, 7, 3, 4, 7]
})
# Converter os datos a formato longo
datos_melt = datos.melt(id_vars='Estudante', var_name='Materia', value_name='Puntuación')
# Normalizar as puntuacións para a barra de cores
norm = plt.Normalize(datos_melt['Puntuación'].min(), datos_melt['Puntuación'].max())
sm = plt.cm.ScalarMappable(cmap='coolwarm', norm=norm)
# Crear a figura e o eixo
fig, ax = plt.subplots(figsize=(12, 6))
# Crear o gráfico de dispersión con Seaborn
scatter = sns.scatterplot(
data=datos_melt,
x='Estudante',
y='Puntuación',
size='Puntuación',
hue='Puntuación',
sizes=(50, 300),
palette='cool',
ax=ax
)
# Engadir bordes aos puntos da materia 'Matemáticas'
for i, row in datos_melt.iterrows():
if row['Materia'] == 'Matemáticas':
ax.scatter(
row['Estudante'],
row['Puntuación'],
s=100, # Tamaño do punto (fixo para bordes)
facecolor='none', # Punto transparente
edgecolor='black', # Borde negro
linewidth=1.5
)
# Configurar a barra de cores
sm.set_array([])
fig.colorbar(sm, ax=ax, label='Puntuación')
# Personalización do gráfico
ax.set_title('Puntuacións de Estudantes por Materia', fontsize=16)
ax.set_xlabel('Estudante', fontsize=12)
ax.set_ylabel('Puntuación', fontsize=12)
ax.set_ylim(0, 10)
plt.xticks(rotation=90)
plt.grid(axis='y', linestyle='--', linewidth=0.5)
# Mostrar o gráfico
plt.tight_layout()
plt.show()
Código Python: Segmentación ou clustering de estudantes
import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import seaborn as sns
# Crear o DataFrame con datos
datos = pd.DataFrame({
'Estudante': [f'Estudante {i+1}' for i in range(24)],
'Matemáticas': [8, 5, 7, 3, 10, 6, 4, 9, 2, 5, 7, 3, 6, 8, 5, 4, 3, 2, 9, 7, 6, 4, 5, 8],
'Ciencias': [7, 4, 6, 2, 9, 5, 3, 8, 1, 6, 8, 4, 7, 9, 5, 3, 2, 1, 10, 8, 7, 3, 4, 7]
})
# Usar só as columnas numéricas para o clustering
X = datos[['Matemáticas', 'Ciencias']] # Seleccionamos as puntuacións como variables
# Crear o modelo K-means con 3 clústeres
kmeans = KMeans(n_clusters=3, random_state=0)
datos['Cluster'] = kmeans.fit_predict(X) # Etiquetar cada estudante co seu clúster
# Visualizar os centros dos clústeres
centros = kmeans.cluster_centers_
# Crear gráfico de dispersión para ver os clústeres
plt.figure(figsize=(10, 6))
sns.scatterplot(
data=datos,
x='Matemáticas',
y='Ciencias',
hue='Cluster', # Os clústeres diferéncianse por cores
palette='coolwarm', # Paleta de cores para os clústeres
s=100 # Tamaño dos puntos
)
# Engadir os centros dos clústeres ó gráfico
plt.scatter(centros[:, 0], centros[:, 1], c='black', s=200, marker='X', label='Centros') # Marcadores para os centros
plt.title('Clustering de Estudantes segundo o Rendemento', fontsize=16)
plt.xlabel('Puntuación en Matemáticas')
plt.ylabel('Puntuación en Ciencias')
plt.legend(title='Grupo')
plt.grid(color='gray', linestyle='--', linewidth=0.5)
plt.tight_layout()
plt.show()
Explicación do programa
Creación do DataFrame:Contén as puntuacións en Matemáticas e Ciencias de cada estudante.Só se empregan as columnas numéricas para o clustering, xa que o modelo K-means funciona con valores continuos.
Modelo K-means:Divide os estudantes en tres grupos (ou clústeres) baseándose nas puntuacións. Cada grupo representa estudantes con rendemento similar.
Engadir a columna 'Cluster':Cada estudante é etiquetado co grupo ó que pertence segundo o modelo K-means.
Visualización dos clústeres:Usa un gráfico de dispersión onde os clústeres se diferencian por cores.Engádense os centros dos clústeres ó gráfico como marcadores 'X' negros.
O programa inclue explicacións detalladas nos comentarios para que comprendas cada paso.
Executandoo en Colab, podes probar a crear a gráfica usando o arquivo de datos Pirámide de población.csv.
Non te preocupes por comprender o programa totalmente, só de entender o que fai.
Podes xogar cos datos buscando outros na web ou cos parámetros da gráfica para practicar.Podes extraer outro tipo de datos nesta web: https://datos.gob.es/es/catalogo?res_format_label=CSV
Que fai este programa?
Subir o arquivo en Google Colab
files.upload() abre un cadro de diálogo para que poidas cargar o ficheiro CSV desde o teu computador.
Engadir puntos medios de idade
Asigna un valor representativo (como 4.5 para o tramo 0-9) aos tramos de idade para poder usar curvas de densidade.
Expandir os datos
Convértese cada tramo nunha lista longa, replicando o punto medio tantas veces como o número de mulleres ou varóns dese tramo. Isto é necesario para as curvas de densidade.
Crear e personalizar o gráfico
Xera un gráfico de densidade que amosa as distribucións de mulleres e varóns por idades, diferenciados por cores.
Que se pode extraer da gráfica?
Comparación por sexos: Observa como se distribúe a densidade de mulleres e varóns en diferentes tramos de idade. Ata os 30 anos, hai máis homes, a partir de aí, máis mulleres.
Identificación de picos: Os valores máis altos de densidade corresponden aos tramos de idade máis representados na poboación. A maioría da poboación están entre 50-59 anos.
Tendencias demográficas: Analiza cales son os tramos de idade máis numerosos ou menos representados. É lóxico que haiba menos persoas maiores, pero obsérvase unha baixada "atípica" entre 30-39 anos.
De esta gráfica poden extraerse varias conclusións clave:
Tramos de idade con maior densidade de poboación
Mulleres:O rango 50-59 anos ten o maior número de mulleres, cun total de 7703.
Varóns:O rango 50-59 anos tamén concentra o maior número de varóns, cun total de 6679.
Tramos de idade con menor densidade de poboación
Mulleres:O rango 110-119 anos ten a menor cantidade, cunha poboación de só 1 muller.
Varóns:O rango 110-119 anos tamén ten só 1 varón, igualando o valor mínimo.
Comparación xeral entre sexos
O total de mulleres é maior que o de varóns en todos os rangos de idade maiores de 40 anos, cunha tendencia máis significativa nos grupos de idade máis avanzada (como 80-89 anos, onde hai 2148 mulleres fronte a 1664 varóns).
Os varóns superan ás mulleres lixeiramente nos rangos de idade máis novos, como en 0-9 anos (4025 varóns fronte a 3900 mulleres).
Observacións xerais sobre a distribución
A densidade de poboación tende a diminuír progresivamente a medida que aumenta a idade, con caídas máis bruscas a partir do rango 70-79 anos.
O tramo 50-59 anos parece ser o pico da poboación tanto para mulleres como para varóns, seguido de diminuír gradualmente nos rangos superiores.
Potenciais usos destes datos en IA
Análise e extracción de patróns demográficos.Estes patróns poden ser usados como entradas nun modelo preditivo para anticipar tendencias futuras de poboación (envellecemento da poboación, cambios de proporción entre sexos, etc.).
Segmentación personalizada para proxectos.A gráfica permite clasificar a poboación en segmentos relevantes (como idades máis novas, adultos ou maiores).Estes segmentos poden ser utilizados para desenvolver modelos enfocados en necesidades específicas: Educación: Analizar tramos con maior densidade de poboación nova.Saúde: Monitorar tramos de idade avanzada. En sistemas de recomendación ou planificación, esta segmentación pode ser usada para personalizar servizos ou recursos para cada grupo demográfico.
Detección de anomalías nos datos. Tramos de idade con densidade pouco común ou valores atípicos na gráfica,poden indicar erros nos datos orixinais ou tendencias excepcionais. A detección de anomalías é fundamental para preprocesar datos antes de aplicalos nun modelo. Unha IA ben adestrada pode identificar automaticamente estes problemas para mellorar a calidade dos datos.
Predición de políticas públicas Ao observar as diferenzas por sexos ao longo dos tramos de idade, a gráfica pode proporcionar pistas útiles para deseñar políticas públicas como:Axudas sociais para tramos específicos. Recursos sanitarios para sexos ou idades máis vulnerables. Modelos de IA poden utilizar esta información para suxerir políticas eficaces baseadas nas características demográficas reveladas pola gráfica.
A visualización clara é esencial para comunicar datos complexos de forma comprensible, mellorando a interpretación e toma de decisións baseada en datos.
E agora imaxina poder manexar os datos de millóns de persoas, ...aí radica realmente o poder da IA!
Código Python: Densidade de poboación por idades e sexos
#Gráfica de densidade
# PASO 1: Importar as bibliotecas necesarias
import pandas as pd # pandas axúdanos a traballar con datos tabulares
import seaborn as sns # seaborn permítenos crear gráficos avanzados
import matplotlib.pyplot as plt # matplotlib complementa para personalizar gráficos
# PASO 2: Subir o arquivo en Google Colab
from google.colab import files
arquivo = files.upload() # Isto abrirá un cadro de diálogo para subir o arquivo CSV
# PASO 3: Ler o arquivo CSV subido
nome_arquivo = list(arquivo.keys())[0] # Obtemos o nome do arquivo subido
datos = pd.read_csv(nome_arquivo) # Cargamos o ficheiro CSV nun DataFrame
datos = datos[datos['Idades'] != 'Totales']#Eliminamos a última columna de totais
# PASO 4: Engadir unha columna cos puntos medios dos tramos de idade
datos['Punto_medio'] = [4.5, 14.5, 24.5, 34.5, 44.5, 54.5, 64.5, 74.5, 84.5, 94.5, 104.5, 114.5]
# PASO 5: Expandir os datos para usar en curvas de densidade
mulleres_expandidas = []
varóns_expandidos = []
for i in range(len(datos)):
mulleres_expandidas += [datos['Punto_medio'][i]] * datos['Mulleres'][i]
varóns_expandidos += [datos['Punto_medio'][i]] * datos['Varóns'][i]
# PASO 6: Crear o gráfico de densidade
plt.figure(figsize=(12, 8))
sns.kdeplot(mulleres_expandidas, color='#E55624', fill=True, label='Mulleres') # Densidade para mulleres
sns.kdeplot(varóns_expandidos, color='#2430E5', fill=True, label='Varóns') # Densidade para varóns
# PASO 7: Personalizar o gráfico
plt.title('Distribución por Sexos da Poboación', fontsize=16)
plt.xlabel('Idades (anos)', fontsize=12)
plt.ylabel('Densidade', fontsize=12)
plt.legend(title='Sexos')
plt.grid(color='gray', linestyle='--', linewidth=0.5)
plt.tight_layout()
plt.show()
Código Python: Gráfico de barras por tramos de idade e sexos
# Importar as bibliotecas necesarias
import pandas as pd
import matplotlib.pyplot as plt
from google.colab import files
import matplotlib.image as mpimg # Para cargar a imaxe
# PASO 1: Subir o arquivo CSV
archivo_csv = files.upload() # Subir o arquivo de datos
nome_csv = list(archivo_csv.keys())[0] # Obter o nome do ficheiro
datos = pd.read_csv(nome_csv) # Ler os datos
datos_filtrados = datos[datos['Idades'] != 'Totales'].copy()
datos_filtrados['Varóns'] = pd.to_numeric(datos_filtrados['Varóns'], errors='coerce')
datos_filtrados['Mulleres'] = pd.to_numeric(datos_filtrados['Mulleres'], errors='coerce')
# PASO 2: Subir a imaxe
archivo_imaxe = files.upload() # Subir o arquivo da imaxe
nome_imaxe = list(archivo_imaxe.keys())[0] # Obter o nome do ficheiro
# Crear unha figura para amosar os datos como gráfico de barras apilado
fig, ax = plt.subplots(figsize=(12, 8))
# Cargar a imaxe de multitude
fondo_imaxe = mpimg.imread(nome_imaxe) # Ler a imaxe subida
# Engadir a imaxe como fondo
ax.imshow(fondo_imaxe, aspect='auto', extent=[-0.5, len(datos['Idades']) - 0.5, 0, max(datos_filtrados['Varóns'] + datos_filtrados['Mulleres'])], alpha=0.3)
# Calcular os totais de poboación por sexo
total_varóns = datos_filtrados['Varóns'].sum()
total_mulleres = datos_filtrados['Mulleres'].sum()
# Crear gráfico de barras apiladas para mulleres e varóns
barra_varóns = ax.bar(datos_filtrados['Idades'], datos_filtrados['Varóns'], label='Varóns', color='#2430E5', alpha=0.7)
barra_mulleres = ax.bar(datos_filtrados['Idades'], datos_filtrados['Mulleres'], label='Mulleres', color='#E55624', alpha=0.7, bottom=datos_filtrados['Varóns'])
# Engadir anotacións sobre as barras
for rect_varóns, rect_mulleres, varóns, mulleres in zip(barra_varóns, barra_mulleres, datos_filtrados['Varóns'], datos_filtrados['Mulleres']):
# Anotación para varóns
ax.text(
rect_varóns.get_x() + rect_varóns.get_width() / 2, # Posición horizontal
rect_varóns.get_height() / 2, # Posición vertical no medio da barra de varóns
str(varóns), # Texto (número de varóns)
ha='center', va='center', fontsize=9, color='white' # Estilo do texto
)
# Anotación para mulleres
ax.text(
rect_mulleres.get_x() + rect_mulleres.get_width() / 2, # Posición horizontal
rect_mulleres.get_height() + rect_varóns.get_height() / 2, # Enriba da barra de varóns
str(mulleres), # Texto (número de mulleres)
ha='center', va='center', fontsize=9, color='black' # Estilo do texto
)
# Personalizar o gráfico
plt.title('Distribución por Idades e Sexos da Poboación', fontsize=16)
plt.xlabel('Tramos de Idade', fontsize=12)
plt.ylabel('Poboación', fontsize=12)
plt.xticks(rotation=45) # Rotar os tramos de idade para mellor visibilidade
plt.legend(title='Sexos') # Engadir unha lenda para identificar as barras
plt.grid(axis='y', linestyle='--', linewidth=0.5)
# Amosar o gráfico
plt.tight_layout()
plt.show()
Explicación do programa
Subida de datos: files.upload() abre unha interface en Google Colab para subir ficheiros desde o computador. O usuario carga un ficheiro CSV que contén datos sobre poboación divididos en Idades, Varóns, e Mulleres.
Lectura do ficheiro:Usamos pd.read_csv(nome_csv) para ler o ficheiro CSV e almacenalo nun DataFrame chamado datos. Este DataFrame contén as columnas e filas coas informacións subidas.
Filtrar os datos: A fila chamada Totales, que representa unha suma total non útil para a gráfica, elimínase co código:datos_filtrados = datos[datos['Idades'] != 'Totales'].copy() Isto garante que só se procesen os tramos de idade específicos.
Conversión de tipos de datos:As columnas Varóns e Mulleres son convertidas a numéricas usando: pd.to_numeric(datos_filtrados['Varóns'], errors='coerce')pd.to_numeric(datos_filtrados['Mulleres'], errors='coerce') Este paso evita erros no caso de que algún valor sexa non numérico.
Subir a imaxe: De forma similar á subida do ficheiro CSV, files.upload() permite cargar unha imaxe desde o computador.
Lectura da imaxe:Usamos mpimg.imread(nome_imaxe) para ler o ficheiro de imaxe cargado e almacenalo como unha matriz.
Creación do gráfico .
Inicialización da figura: plt.subplots(figsize=(12, 8)) crea unha figura de gran tamaño para mellorar a visibilidade.
Engadir a imaxe como fondo: A imaxe cargada é utilizada como fondo da gráfica con ax.imshow(fondo_imaxe, aspect='auto', extent=[-0.5, len(datos_filtrados['Idades']) - 0.5, 0, max(datos_filtrados['Varóns'] + datos_filtrados['Mulleres'])], alpha=0.3)
extent define os límites da imaxe no gráfico.
alpha=0.3 fai a imaxe semitransparente para que os elementos do gráfico sexan visibles.
Cálculo dos totais: Sumamos as cantidades de varóns e mulleres con total_varóns = datos_filtrados['Varóns'].sum() total_mulleres = datos_filtrados['Mulleres'].sum()Estes totais poderían ser usados na lenda ou para outros propósitos.
Gráfico de barras apiladas: ax.bar() é utilizado para representar os datos:
Primeiro para varóns.Logo para mulleres, apilados enriba dos varóns utilizando o parámetro bottom=datos_filtrados['Varóns'].
Engadir anotacións
Texto sobre as barras:O bucle for percorre as barras e engade os valores exactos de varóns e mulleres con ax.text():rect_varóns.get_height() e rect_mulleres.get_height() calculan a altura das barras para situar os textos de forma correcta.
Personalización do gráfico.
Título e etiquetas:Engádese un título e etiquetas para os eixes con plt.title('Distribución por Idades e Sexos da Poboación', fontsize=16)plt.xlabel('Tramos de Idade', fontsize=12)plt.ylabel('Poboación', fontsize=12)
Rotación das etiquetas: As etiquetas das idades no eixo x son rotadas 45 grados para mellorar a lectura.
Lenda e cuadrícula:A lenda identifica mulleres e varóns por cor, e unha cuadrícula lixeira facilita a lectura visual.
Visualización:Finalmente, plt.tight_layout() axusta os espazos para evitar solapamentos, e plt.show() amosa o gráfico.
Exemplo 3: Crear un heatmap sobre influencers para comprobar correlacións entre datos
Aquí xeramos un heatmap para visualizar facilmente estas correlacións:
Cada celda está coloreada dependendo da súa intensidade. Por exemplo, neste caso o azul indica correlacións baixas e o vermello altas.
O argumento annot=True mostra os valores numéricos dentro das celas.
O mapa de cor coolwarm crea un gradiente para destacar os extremos.
Que se pode extraer do heatmap?
Estes datos representan características de cinco adolescentes famosos, e cada un deles ten:
Seguidores (millóns): Cantidade de persoas que os seguen nas redes sociais.
Ingresos ($ miles): Dinero que gañan ao ano en miles de dólares.
Horas de traballo (semanais): Tempo que dedican ao traballo cada semana.
Correlacións. As correlacións calculadas entre estas características son as seguintes:
"Seguidores (millóns)" e "Ingresos ($ miles)": 0.88 (correlación forte e positiva). Isto indica que a medida que aumentan os seguidores nas redes sociais, normalmente aumentan os ingresos.
"Seguidores (millóns)" e "Horas de traballo (semanais)":0.46 (correlación moderada e positiva). Cantos máis seguidores, parece haber un aumento moderado nas horas de traballo semanais.
"Ingresos ($ miles)" e "Horas de traballo (semanais)": 0.20 (correlación débil pero positiva). Os ingresos teñen pouca relación coas horas de traballo semanais.
Análise do heatmap. No gráfico resultante (heatmap), observamos:
Colores intensos (vermello) nas células con correlación forte, como entre "Seguidores (millóns)" e "Ingresos ($ miles)".
Colores intermedios (tonos máis suaves) nas correlacións moderadas, como entre "Seguidores (millóns)" e "Horas de traballo (semanais)".
Colores pouco intensos (azuis) nas correlacións débiles, como entre "Ingresos ($ miles)" e "Horas de traballo (semanais)".
Para que se podería usar en IA
Osheatmaps son ferramentas fundamentais en IA porque permiten:
Explorar datos iniciais: Identificar relacións significativas entre variables antes de crear modelos preditivos.
Optimización de modelos: Seleccionar características relevantes ou eliminar aquelas redundantes (altamente correlacionadas) para mellorar o rendemento.
Detección de patróns: Comprender patróns en conxuntos de datos grandes que serían difíciles de interpretar só cos números.
Potenciais usos deste heatmap en IA:
Recomendación personalizada: Un modelo pode usar esta información para suxerir estratexias aos influencers que desexen aumentar ingresos optimizando o número de seguidores.
Optimización de recursos: Axuda a determinar como se distribúen os esforzos (horas de traballo) para maximizar os ingresos nun modelo baseado nos datos.
Detección de patróns: Os resultados poden inspirar investigacións máis profundas sobre factores que impactan no éxito de adolescentes famosos.
E agora imaxina poder manexar os datos de millóns de influencers, con moitas máis variables, ...aí radica realmente o poder da IA!
Código Python: Relación entre características adolescentes famosos
# PASO 1: Importar as bibliotecas necesarias
# Importamos bibliotecas para manexar datos e crear gráficos.
import pandas as pd # Manexar datos tabulares con DataFrames.
import seaborn as sns # Crear gráficos avanzados de maneira sinxela.
import matplotlib.pyplot as plt # Personalizar e mostrar gráficos.
# PASO 2: Crear os datos ficticios de adolescentes famosos
# Neste exemplo, representamos datos de adolescentes cunha variedade de características:
data = pd.DataFrame({
'Seguidores (millóns)': [5, 10, 20, 8, 3], # Cantidade de seguidores en redes sociais (en millóns).
'Ingresos ($ miles)': [159, 120, 300, 80, 20], # Ganancias anuais en miles de dólares.
'Horas de traballo (semanais)': [25, 40, 35, 45, 20] # Cantidade de horas de traballo semanais.
}, index=['Cantante (Chica)', 'Actor (Chico)', 'Influencer (Chica)', 'Gamer (Chico)', 'Deportista (Chica)']) # Etiquetas que representan cada adolescente.
# PASO 3: Calcular as correlacións entre variables
# As correlacións axúdannos a identificar como se relacionan as características.
correlaciones = data.corr() # Matriz que mostra o grao de relación entre cada par de características.
# PASO 4: Crear o heatmap usando Seaborn
# Usamos un heatmap para representar visualmente estas correlacións.
sns.heatmap(correlaciones, annot=True, cmap='coolwarm', fmt=".2f") # Configuración visual:
# - 'annot=True': amosa os valores numéricos dentro das celas.
# - 'cmap="coolwarm"': usa unha paleta de cores para distinguir os graos de correlación.
# - 'fmt=".2f"': formato dos números con dúas decimais.
# PASO 5: Personalizar o gráfico
# Engadimos título e etiquetas para que o gráfico sexa máis informativo.
plt.title('Relación entre características de adolescentes famosos', fontsize=16) # Título do gráfico.
plt.xlabel('Características', fontsize=12) # Etiqueta do eixo X.
plt.xticks(rotation=35) # Rotar as etiquetas de x para mellor visibilidade
plt.ylabel('Características', fontsize=12) # Etiqueta do eixo Y.
# PASO 6: Mostrar o gráfico
# Finalmente amosamos o gráfico na pantalla.
plt.show()