A API do scikit-learn: fit, transform, predict
Entenda a interface do estimador e o fluxo de divisão entre treinamento e teste.
A API do scikit-learn: fit, transform, predict é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.
O que é o scikit-learn?
scikit-learn é a principal biblioteca Python para aprendizado de máquina clássico. Ela fornece uma API consistente: todo estimador tem fit(), e a maioria tem predict() ou transform().
from sklearn.linear_model import LinearRegression
import numpy as np
X = np.array([[1],[2],[3],[4],[5]])
y = np.array([2, 4, 6, 8, 10])
model = LinearRegression().fit(X, y)
print(model.predict([[6]])) # [12.]Divisão entre treino e teste
Sempre divida os dados antes do treinamento para avaliar o quanto o modelo generaliza para dados não observados.
from sklearn.model_selection import train_test_split
import numpy as np
X = np.random.rand(100, 5)
y = (X[:,0] > 0.5).astype(int)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
print(X_train.shape, X_test.shape) # (80,5) (20,5)fit() — Treinamento
estimator.fit(X, y) treina o modelo com X (características) e y (rótulos). Para métodos não supervisionados, somente X é fornecido.
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=200, random_state=0)
model = LogisticRegression()
model.fit(X, y)
print("Trained:", model.classes_)predict() e predict_proba()
predict(X) retorna rótulos de classe; predict_proba(X) retorna probabilidades de classe para classificadores.
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)
print(model.predict(X[:5])) # [0 1 0 ...]
print(model.predict_proba(X[:2])) # [[0.7 0.3] ...]Transformadores: fit e transform
Transformadores (normalizadores, codificadores) têm fit(X) + transform(X). Sempre faça o ajuste somente com os dados de treinamento e, em seguida, transforme tanto os dados de treino quanto os de teste.
from sklearn.preprocessing import StandardScaler
import numpy as np
X_train = np.array([[1,2],[3,4],[5,6]])
X_test = np.array([[2,3],[4,5]])
scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train) # fit + transform
X_test_s = scaler.transform(X_test) # transform only (using train stats)Fluxo de processamento
Um Pipeline encadeia transformadores e um estimador em um único objeto. Ele evita o vazamento de dados ao aplicar corretamente as transformações durante a validação cruzada.
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
pipe = Pipeline([
("scaler", StandardScaler()),
("clf", SVC())
])
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))Acurácia e outras métricas
Use accuracy_score, f1_score e classification_report para avaliar classificadores.
from sklearn.metrics import accuracy_score, classification_report
y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))Validação cruzada
cross_val_score avalia um modelo usando validação cruzada em k partes, sem dividir os dados manualmente.
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
X, y = make_classification(random_state=0)
scores = cross_val_score(LogisticRegression(), X, y, cv=5)
print(f"CV scores: {scores.mean():.3f} ± {scores.std():.3f}")Ajuste de hiperparâmetros com GridSearchCV
GridSearchCV pesquisa exaustivamente uma grade de parâmetros usando validação cruzada para encontrar os melhores hiperparâmetros.
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import make_classification
X, y = make_classification(random_state=0)
param_grid = {"C": [0.1, 1, 10], "kernel": ["rbf", "linear"]}
gs = GridSearchCV(SVC(), param_grid, cv=5)
gs.fit(X, y)
print(gs.best_params_, gs.best_score_)Pré-processamento: LabelEncoder e OneHotEncoder
Codifique rótulos categóricos com LabelEncoder e características categóricas com OneHotEncoder ou ColumnTransformer.
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import numpy as np
le = LabelEncoder()
print(le.fit_transform(["cat","dog","cat","fish"])) # [0 1 0 2]
ohe = OneHotEncoder(sparse_output=False)
print(ohe.fit_transform([["red"],["green"],["blue"]]))Salvando e carregando modelos
Persista modelos treinados com joblib (mais rápido que pickle para matrizes NumPy).
import joblib
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)
joblib.dump(model, "model.joblib")
loaded = joblib.load("model.joblib")
print(loaded.predict(X[:3]))Verificação rápida
Por que se deve chamar scaler.fit() somente nos dados de treinamento, e não nos dados de teste?
Revisão
A API uniforme do scikit-learn: fit() treina, predict() faz previsões e transform() pré-processa. Use Pipeline para encadear etapas. Divida os dados com train_test_split, avalie com cross_val_score e ajuste com GridSearchCV.
Perguntas Frequentes
A aula “A API do scikit-learn: fit, transform, predict” é grátis?
Sim — o texto completo de “A API do scikit-learn: fit, transform, predict” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.
O que vou aprender em “A API do scikit-learn: fit, transform, predict”?
Entenda a interface do estimador e o fluxo de divisão entre treinamento e teste. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “A API do scikit-learn: fit, transform, predict”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- A API do scikit-learn: fit, transform, predict
- Modelos lineares: regressão e classificação
- Modelos baseados em árvores: árvores de decisão e florestas aleatórias
- Avaliação de modelos e validação cruzada