O machine learning, ou aprendizado de máquina, está mudando o mundo em que vivemos. Ele permite que computadores aprendam com dados, sem precisar serem programados linha por linha. Neste artigo, você vai entender o que é machine learning, como ele funciona e como começar a usá-lo com a biblioteca Scikit-Learn em Python.
O que é Machine Learning?
Machine learning é um tipo de inteligência artificial. Ele permite que um sistema aprenda padrões a partir de dados. Depois, o sistema usa esse conhecimento para fazer previsões ou tomar decisões.
Imagine um aplicativo que reconhece rostos em fotos. Em vez de programar todas as características de um rosto, usamos machine learning para ensinar o sistema com milhares de fotos. Assim, ele aprende a reconhecer um rosto sozinho.
Tipos de Machine Learning
Existem três tipos principais de aprendizado de máquina:
- Supervisionado: o sistema aprende com dados rotulados (com respostas). Exemplo: prever preço de casas.
- Não supervisionado: os dados não têm rótulos. O sistema tenta encontrar padrões por conta própria. Exemplo: agrupar clientes por comportamento.
- Aprendizado por reforço: o sistema aprende com tentativa e erro. Muito usado em jogos e robótica.
Neste artigo, vamos focar no aprendizado supervisionado, o mais comum.
O que é o Scikit-Learn?
Scikit-Learn é uma biblioteca gratuita de Python que facilita o uso de machine learning. Com ela, você consegue:
- Carregar e preparar dados
- Escolher um modelo
- Treinar o modelo
- Avaliar os resultados
- Fazer previsões com novos dados
Ela é muito usada por iniciantes e profissionais. Está sempre sendo atualizada e tem uma documentação excelente.
Site oficial: https://scikit-learn.org
Como instalar o Scikit-Learn
Para instalar, basta usar o seguinte comando no terminal:
pip install scikit-learn
Você também vai precisar de:
pip install numpy pandas matplotlib
Essas bibliotecas ajudam na manipulação de dados e criação de gráficos.
Primeiro exemplo: classificando flores
O Scikit-Learn já vem com alguns conjuntos de dados para testes. Um deles é o famoso Iris Dataset, que contém dados sobre flores.
Vamos ver como fazer uma classificação simples:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# Carregar dados
dados = load_iris()
X = dados.data # características das flores
y = dados.target # espécie da flor
# Dividir em treino e teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Treinar modelo
modelo = DecisionTreeClassifier()
modelo.fit(X_train, y_train)
# Fazer previsões
y_pred = modelo.predict(X_test)
# Avaliar
print("Acurácia:", accuracy_score(y_test, y_pred))
Esse código treina um modelo para reconhecer três tipos de flores usando uma árvore de decisão.
Passo a passo de um projeto com Scikit-Learn
Vamos detalhar as etapas principais:
1. Coleta de dados
Você precisa de dados. Podem ser arquivos CSV, dados de banco de dados ou APIs. Exemplo: dados de pacientes.
2. Limpeza e preparação dos dados
Corrigir erros, lidar com valores ausentes e converter dados em números, se necessário.
3. Escolha do modelo
Cada problema exige um tipo diferente de modelo. Alguns exemplos:
- Regressão Linear: prever valores (preços, notas)
- Classificação: prever categorias (spam ou não spam)
- Clustering: agrupar dados parecidos
4. Treinamento do modelo
O Scikit-Learn usa o comando .fit()
para isso. Ele treina o modelo com os dados.
5. Avaliação do desempenho
Métricas como acurácia, precisão e recall mostram se o modelo é bom.
6. Ajuste do modelo
Você pode melhorar o modelo ajustando parâmetros ou tentando outro modelo.
7. Previsões reais
Depois de treinado, o modelo pode fazer previsões com novos dados.
Termos importantes
Aqui estão alguns termos comuns no machine learning:
- Acurácia: porcentagem de acertos.
- Overfitting: quando o modelo aprende demais os dados de treino e vai mal em dados novos.
- Underfitting: quando o modelo é simples demais e não aprende o suficiente.
- Features: são as características dos dados (ex: altura, peso).
- Target: é o que queremos prever (ex: espécie da flor).
Exemplo do mundo real: prever diabetes
Vamos usar dados reais para prever se uma pessoa tem diabetes com base em exames:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
# Carregar os dados
url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv'
colunas = ['Pregnancies','Glucose','BloodPressure','SkinThickness','Insulin','BMI','DiabetesPedigreeFunction','Age','Outcome']
df = pd.read_csv(url, names=colunas)
X = df.drop('Outcome', axis=1)
y = df['Outcome']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
modelo = LogisticRegression(max_iter=1000)
modelo.fit(X_train, y_train)
y_pred = modelo.predict(X_test)
print(classification_report(y_test, y_pred))
Esse exemplo usa regressão logística para classificar se o paciente tem diabetes (1) ou não (0).
Onde aprender mais
Se você quer se aprofundar, aqui estão alguns links úteis:
Conclusão
O machine learning com Scikit-Learn é uma forma poderosa de resolver problemas com dados. Com poucos comandos, você consegue criar modelos que aprendem com exemplos e fazem previsões com novos dados.
Mesmo sem conhecimento avançado, já é possível criar projetos reais. Comece pequeno, com exemplos práticos como vimos aqui. Com o tempo, você vai ganhar confiança e poderá explorar problemas mais complexos.
Machine learning é uma área em crescimento e cheia de oportunidades. E o melhor: você pode começar hoje mesmo!