!pip install palmerpenguins
from palmerpenguins import load_penguins
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
df = load_penguins()
Exercício 1
#Machine Learning é quando a gente ensina o computador a aprender padrões olhando dados
#em vez de escrever regras fixas pra tudo. É muito util no mundo real pra coisas tipo
#recomendação de filmes no netflix, detecção de fraude no banco.
Exercício 2
#Aprendizado Supervisionado: os dados de treino já tem a resposta certa.
#Por exemplo, ensinar o modelo a diferenciar gato de cachorro mostrando fotos com legenda.
#Aprendizado Não-Supervisionado: É quando os dados não tem resposta, e o modelo tem
#que achar grupos ou padrões sozinho. Tipo agrupar clientes parecidos.
Exercício 3
#. Pandas usado pra mexer em tabelas e dados
# Numpy pra fazer contas matematicas pesadas
#.Matplotlib pra fazer graficos
#. ensorflow pra redes neurais
# Scikit-Learn: Essa é a mais importante pra começar porqueq ela ja tem quase todos os
# algoritmos de ML prontos.
Exercício 4
#Baseado em Instância: O modelo decora os dados de treino e compara os novos com os velhos.
#Exemplo: O algoritmo KNN = vizinhos proximos.
#Baseado em Modelo: O sistema cria uma regra matematica ou formula generalizando tudo.
#Exemplo: Regressão Linear = cria uma linha.
Exercício 5
#Falta de dados: Se tiver pouco dado o modelo nao aprende.
#overfitting: Quando o modelo decora o treino e vai mal no teste.
#dados sujos: Quando tem muita informação errada ou faltando na tabela.
Exercício 6
df = df.dropna() #pra remover os NaN.
#Features (X): São as características que usamos pra prever.
#Target (y): É o que queremos descobrir, aqui quero a espécie.
#só os numeros pras features pra facilitar pro KNN
features = ['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g']
X = df[features]
y = df['species']
print("Features e Target definidos.")
print(X.head())
# nao consigo tirar os NaN.
Exercício 7
#Adelie vira 1, se não for vira 0.
y_adelie = (df['species'] == 'Adelie').astype(int)
#test_size=0.2 pra ir 20% dos dados para testar o modelo
X_train, X_val, y_train, y_val = train_test_split(X, y_adelie, test_size=0.2, random_state=42)
print("Dados separados em treino e validação.")
print(f"Tamanho do treino: {len(X_train)}")
Exercício 8
df = df.dropna() #pra remover os NaN.
#3 vizinhos
modelo_adelie = KNeighborsClassifier(n_neighbors=3)
#Treinando
modelo_adelie.fit(X_train, y_train)
print("Modelo treinado!")
Exercício 9
# aqui o modelo tenta adivinhar a espécie nos dados de teste
previsoes = modelo_adelie.predict(X_val)
# nota do modelo =acurácia
nota = accuracy_score(y_val, previsoes)
# mostrando o resultado na tela
print("Acurácia (nota do modelo):", nota)
Exercício 10
#Meu maior desafio na criação de um modelo de Machine Learning não é escrever o algoritmo em si
#mas sim a etapa de preparação dos dados. Na prática,tive dificuldade de entender e tratar os valores vazios (NaN)
#Isso prova que cada etapa do processo é crucial. Não adianta nada montar o modelo e treinar se a gente não
#garantiu antes que os dados estão limpos e bem estruturados.