Scikit-learn 1.9 Lançado em 12 de Junho de 2026: Um Grande Salto para Engenharia de ML Clássico
Scikit-learn 1.9, lançado em 12 de junho de 2026, introduz uma API de callback em tempo real e suporte expandido de GPU, aprofundando sua integração com o ecossistema de ML do Hugging Face.
Scikit-learn 1.9 Lançado em 12 de Junho de 2026: Um Grande Salto para Engenharia de ML Clássico
O time core do scikit-learn lançou a versão 1.9.0 em 12 de junho de 2026, marcando um dos lançamentos mais ricos em recursos da história da biblioteca. A atualização chega em um momento crítico para o ecossistema de machine learning: enquanto modelos de linguagem grandes continuam a dominar os noticiários, os mantenedores do scikit-learn dobraram sua aposta no que a biblioteca faz melhor — machine learning clássico rápido, interpretável e pronto para produção — enquanto simultaneamente modernizam sua interface para a próxima geração de ferramentas de ML. O lançamento está disponível no PyPI e é compatível com Python 3.11 até 3.14.
Para engenheiros que constroem pipelines de ML em dados estruturados e tabulares — o pão com manteiga do ML empresarial — scikit-learn 1.9 oferece uma cascata de melhorias: um novo sistema experimental de callbacks para monitoramento de treinamento, aceleração expandida de GPU através da Array API, uma camada de compatibilidade de dataframe mais leve via narwhals, e visualização de estimadores HTML significativamente mais rica. Essas mudanças resolvem coletivamente pontos de atrito de longa data para profissionais que implementam modelos sklearn em escala.
O lançamento também chega no contexto de uma parceria ativa com o Hugging Face, a plataforma de IA que se tornou o hub central da comunidade de ML de código aberto. Embora a versão 1.9 não chegue com novo código de integração específico do Hugging Face, as duas organizações passaram os últimos quatro anos construindo uma infraestrutura compartilhada — mais notavelmente através da biblioteca skops — que agora hospeda quase 800 modelos de scikit-learn no Hugging Face Hub. Juntos, o lançamento 1.9 e o pipeline sklearn–Hugging Face em maturação representam um momento crucial para ML clássico na era dos modelos de fundação.
A API de Callback: Monitoramento de Treinamento em Tempo Real Chega ao Scikit-learn
O acréscimo mais impactante na versão 1.9 é o mecanismo experimental de callback, um recurso solicitado há muito tempo que introduz monitoramento em tempo real e visibilidade de progresso no loop de treinamento dos estimadores do scikit-learn. Até agora, engenheiros de ML usando sklearn não tinham forma nativa de observar um modelo sendo ajustado em progresso — sem barras de progresso, sem curvas de perda ao vivo, sem hooks de early stopping. Essa lacuna forçava equipes a confiar em soluções alternativas como flags de log detalhado ou bibliotecas externas. A versão 1.9 fecha essa lacuna definitivamente.
O sistema de callback introduz duas implementações concretas prontas para uso:
sklearn.callback.ProgressBar— renderiza uma barra de progresso ao vivo durantefit(), dando aos engenheiros uma visão em tempo real de quanto do treinamento foi progredido sem sair do notebook ou terminalsklearn.callback.ScoringMonitor— registra métricas de pontuação em cada iteração do loop de otimização, permitindo rastreamento de convergência sem ferramentas externas ou boilerplate personalizado
Na versão 1.9, o sistema de callback é suportado por um conjunto direcionado mas significativo de estimadores: LogisticRegression (usando o solver lbfgs), a família completa SearchCV (GridSearchCV, RandomizedSearchCV, HalvingGridSearchCV e HalvingRandomSearchCV), Pipeline e StandardScaler. Os mantenedores sinalizaram explicitamente que isso é uma fundação, não um teto — o post do blog de lançamento descreve o mecanismo de callback como aquele que "abre a porta para barras de progresso ou monitoramento avançado de convergência", com cobertura de estimadores mais ampla planejada para lançamentos subsequentes.
A significância desse recurso vai além da experiência do usuário. Para equipes integrando scikit-learn em pipelines maiores de MLOps — onde monitoramento, alertas e auditabilidade são requisitos inegociáveis — a API de callback fornece um hook programático que pode alimentar infraestrutura de logging, dashboards ou rastreadores de experimentos como MLflow e Weights & Biases. Sinaliza que o time do scikit-learn está pensando seriamente no contexto operacional em que sua biblioteca é usada, não apenas na correção estatística de seus algoritmos.
"O mecanismo de callback abre a porta para barras de progresso ou monitoramento avançado de convergência," — anúncio de lançamento scikit-learn 1.9, junho de 2026
Olhando para o futuro, o status experimental da API de callback significa que a interface pode evoluir antes da estabilização. Engenheiros construindo sistemas em produção sobre ela devem tratar a superfície da API como sujeita a mudanças nas versões 1.10 e 1.11. Dito isto, o design já é expressivo o suficiente para cobrir os casos de uso de monitoramento mais comuns, e a resposta da comunidade desde o lançamento de 12 de junho foi em grande parte positiva, com vários mantenedores de ferramentas MLOps já experimentando adaptadores de callback para suas plataformas.
Aceleração de GPU e Array API: Scikit-learn se Move em Direção à Neutralidade de Hardware
Uma das narrativas definidoras do período 2024–2026 em engenharia de ML tem sido a aceleração da diversidade de hardware: engenheiros não estão mais confinados a CPUs para ML clássico. A resposta do Scikit-learn a essa tendência — o lançamento gradual do suporte à Array API — deu um passo significativo na versão 1.9. O lançamento expande a execução compatível com GPU para um conjunto mais amplo de estimadores e métricas, desacoplando ainda mais scikit-learn da suposição de que toda computação acontece em uma CPU com arrays NumPy.
Na versão 1.9, os principais estimadores a ganhar suporte de GPU via Array API são:
linear_model.LogisticRegressioncomsolver="lbfgs"— um dos estimadores mais amplamente usados da biblioteca agora é executado nativamente em GPUlinear_model.PoissonRegressorcomsolver="lbfgs"— crítico para dados de contagem e aplicações de seguros ou atuariaiskernel_approximation.Nystroem— aproximação de kernel acelerada por GPU desbloqueia fluxos de trabalho SVM com kernel em larga escalapipeline.FeatureUnion— permitindo pipelines de combinação de features multi-ramo totalmente acelerados por GPU
Funções de métrica também ganharam cobertura em 1.9: d2_absolute_error_score, d2_pinball_score e average_precision_score agora aceitam entradas compatíveis com Array API, o que significa que podem operar diretamente em tensores de GPU sem copiar dados de volta para a CPU. O lançamento também fornece um novo utilitário, sklearn.utils._array_api.move_estimator_to, que permite aos engenheiros mover os atributos de array de um estimador ajustado para um dispositivo ou namespace diferente — um habilitador crítico para pipelines de ML com dispositivos mistos onde o pré-processamento pode acontecer em CPU enquanto a inferência é executada em GPU.
As implicações práticas são substanciais. Benchmarks independentes publicados por :probabl. em março de 2026 demonstraram até 15x aceleração em pipelines complexos de scikit-learn ao executar em GPU via Array API. Embora esses ganhos dependam muito do tipo de modelo e tamanho dos dados — datasets menores frequentemente não veem benefício devido ao overhead de transferência de dados — eles validam a direção estratégica: para datasets tabulares grandes e pipelines computacionalmente intensivos, sklearn acelerado por GPU agora é uma opção de produção viável.
Modernização de Interface Esparsa
A versão 1.9 também introduz a chave de configuração "sparse_interface", que permite aos usuários controlar se scikit-learn retorna matrizes esparsas SciPy ou a interface de array esparso mais nova:
import sklearn
sklearn.set_config(sparse_interface="sparray") # opt into sparse arrays
Isso faz parte de um alinhamento mais amplo com a direção do ecossistema SciPy, que se moveu do formato legado csr_matrix em direção a csr_array desde SciPy 1.8. O padrão atual permanece "spmatrix" para compatibilidade com versões anteriores, mas o time sinalizou uma futura mudança de padrão para "sparray" em lançamentos futuros. Engenheiros construindo novos pipelines devem considerar optar pela nova interface hoje para evitar uma migração disruptiva depois.
Integração Narwhals: Um Caminho Mais Leve para Interoperabilidade de Dataframe
Uma das mudanças mais tranquilas mas estrategicamente importantes em scikit-learn 1.9 é a adição de narwhals como uma nova dependência de biblioteca. Narwhals é uma camada de compatibilidade leve que permite que código Python funcione perfeitamente em múltiplas bibliotecas de dataframe — principalmente pandas e Polars — sem exigir ramificação condicional específica de biblioteca. Ao adotar narwhals, scikit-learn está reconhecendo uma realidade que profissionais sentem há dois anos: o ecossistema de dados Python não é mais sinônimo de apenas pandas.
A motivação imediata para essa mudança é a descontinuação do protocolo de intercâmbio de dataframe (__dataframe__) pelo time do Polars. Scikit-learn tinha sido confiando nesse protocolo para lidar com dataframes não-pandas através de sua API set_output, introduzida na versão 1.2. Com Polars descontinuando o protocolo, o time sklearn precisava de uma solução mais robusta que não quebraria conforme a API do Polars continuasse evoluindo. Como o changelog da versão 1.9 explica, narwhals fornece exatamente isso: uma interface unificada e leve que fica acima da camada de dataframe e traduz operações para a biblioteca subjacente.
Para engenheiros de ML, isso é uma melhoria significativa de qualidade de vida com implicações reais de produção. Polars, que prioriza desempenho através de avaliação lenta, processamento multi-thread e backend Rust, ganhou tração substancial como uma alternativa ao pandas para pré-processamento de dados em escala. Equipes que migraram seus pipelines de pré-processamento upstream para Polars agora podem usar set_output(transform="polars") em scikit-learn sem bater nos problemas de compatibilidade que atormentaram a abordagem do protocolo de intercâmbio. A ponte narwhals garante que as saídas transformadoras do sklearn — seja de StandardScaler, ColumnTransformer ou estimadores personalizados — possam ser retornadas como DataFrames Polars nativamente, preservando o contexto de execução lenta downstream.
A escolha de narwhals — um projeto impulsionado pela comunidade em vez de uma solução de primeira parte de qualquer um dos times pandas ou Polars — reflete a preferência do time do scikit-learn por neutralidade de ecossistema. Em vez de apostar na API interna de uma biblioteca de dataframe, eles adotaram uma camada de abstração que evoluirá junto com o ecossistema mais amplo. Essa é a mesma abordagem filosófica que motivou a adoção da Array API: onde possível, scikit-learn deve ser um consumidor de padrões comunitários em vez de um definidor de interfaces proprietárias.
Para cientistas de dados trabalhando na intersecção de sklearn e ferramentas modernas da stack de dados — pipelines que ingerem de Parquet via DuckDB, pré-processam com Polars e modelam com sklearn — narwhals fecha uma lacuna que anteriormente exigia etapas de conversão manual ou código wrapper personalizado. O pipeline end-to-end agora pode permanecer em território nativo Polars o caminho todo até o estágio de transformação do sklearn.
Scikit-learn e Hugging Face Hub: 800 Modelos e uma Parceria Aprofundada
O lançamento scikit-learn 1.9 não inclui novo código de integração do Hugging Face de primeira parte, mas chega dentro de um ecossistema que vem se amadurecendo silenciosamente desde junho de 2022, quando Hugging Face se tornou um patrocinador oficial do consórcio scikit-learn na Fondation Inria em Paris. Essa parceria, agora em seu quarto ano, produziu mudanças de infraestrutura concretas que estão transformando como modelos de ML clássico são compartilhados, implementados e descobertos.
O centerpiece da integração sklearn–Hugging Face é o skops, uma biblioteca Python construída especificamente para fazer a ponte entre os dois ecossistemas. Skops fornece duas capacidades principais que resolvem pontos de dor reais na distribuição de modelos de ML clássico:
- Serialização segura via
skops.io— modelos de scikit-learn são empacotados como arquivos zip com arquivos de schema JSON acompanhantes, substituindo o formatopickleinseguro que há muito tempo é uma preocupação de segurança no compartilhamento de modelos de ML. Diferentemente de pickle, o formato skops permite que consumidores de modelos inspecionem a estrutura completa do objeto antes de carregá-lo, fornecendo uma proteção significativa contra ataques da cadeia de suprimentos através de arquivos de modelo maliciosos — um vetor de ameaça que se tornou cada vez mais relevante conforme o Hub do Hugging Face escala. - Integração do Hugging Face Hub via
skops.card— com skops, engenheiros podem empurrar modelos sklearn treinados diretamente para o Hub, gerar cards de modelo automaticamente a partir de metadados de estimador, e tornar modelos disponíveis para inferência no navegador através do Hugging Face Spaces. A geração de card de modelo por si só remove um fardo de documentação que anteriormente desencorajava profissionais de compartilhar modelos de ML clássicos publicamente.
A escala dessa integração é refletida nas estatísticas atuais do Hub: a partir de junho de 2026, existem 799 modelos de scikit-learn hospedados no Hugging Face Hub, abrangendo classificação tabular, regressão tabular e um conjunto crescente de tarefas de predição estruturada incluindo credit scoring, detecção de fraude, predição de churn de cliente e estratificação de risco médico. Esse número representa uma biblioteca que, quatro anos atrás, tinha praticamente nenhuma presença no Hub — a plataforma do Hugging Face foi construída principalmente em torno de modelos de deep learning para NLP, visão e áudio. O crescimento de modelos sklearn no Hub sinaliza um alargamento importante do escopo da plataforma: ela está se tornando um lar para a stack completa de ML, não apenas redes neurais.
O Capital Humano Por Trás da Parceria
O investimento institucional subjacente à colaboração é igualmente notável. Dois desenvolvedores experientes estão embutidos no Hugging Face especificamente para avançar o ecossistema sklearn: Adrin Jalali, um contribuidor core do scikit-learn que foi central para a governança e design de API da biblioteca, e Benjamin Bossan, autor da biblioteca skorch amplamente utilizada que faz a ponte entre scikit-learn e PyTorch. Sua presença no Hugging Face garante que a integração seja impulsionada por engenheiros que entendem o internals do scikit-learn no nível necessário para construir ferramentas confiáveis e compatíveis com versões futuras.
A parceria também tem profundidade institucional através da biblioteca Evaluate, estrutura do Hugging Face para avaliação de ML eficiente e padronizada. A biblioteca evaluate está sendo estendida para suportar nativamente métricas do scikit-learn em sua API, o que permitiria aos engenheiros computar e comparar métricas sklearn — precision, recall, F1, AUC, calibração — junto com métricas de deep learning dentro de um único pipeline de avaliação. Esse é um passo importante em direção a ferramentas de avaliação de ML unificadas entre abordagens clássicas e neurais, reduzindo a complexidade operacional que atualmente vem de manter código de avaliação separado para diferentes famílias de modelo.
O Que o Lançamento Scikit-learn 1.9 Significa para Modelos Hospedados no Hub
Para os 799 modelos já hospedados no Hub, as melhorias scikit-learn 1.9 se traduzem diretamente em melhor qualidade de modelo. O tratamento aprimorado de pesos de amostra em modelos baseados em árvore e a estabilidade numérica melhorada em modelos de regressão ridge significam que modelos retreinados em 1.9 devem produzir saídas estatisticamente mais corretas, particularmente para modelos treinados em dados de pesquisa ou administrativos onde pesos de amostra são comuns. Engenheiros que mantêm modelos sklearn no Hub devem considerar executar novamente o treinamento com a versão 1.9 e atualizar seus cards de modelo — a nova visão de estimador HTML torna a geração de descrições de arquitetura de modelo precisas significativamente mais fácil.
Melhorias Adicionais: Algoritmos Mais Rápidos, Visualizações Mais Inteligentes e Descontinuações Principais
Além dos recursos destaque, scikit-learn 1.9 fornece um pacote denso de melhorias algorítmicas, atualizações de visualização e correções de bugs que beneficiam o trabalho de ML de engenharia do dia a dia. Vários destes merecem atenção de profissionais que poderiam de outra forma ignorá-los nas notas de lançamento.
Ganhos de Desempenho Algorítmico
FastICA com o algoritmo de deflação é aproximadamente 10x mais rápido na versão 1.9, uma melhoria dramática para equipes usando análise de componentes independentes para separação de sinal em processamento de áudio, neurociência (EEG/fMRI) ou decomposição de série temporal financeira. RidgeCV e RidgeClassifierCV — entre os modelos mais comumente implantados em ML clássico em produção — agora são ambos mais rápidos e numericamente mais estáveis, resolvendo casos extremos que poderiam produzir seleção alfa não confiável em matrizes de design mal condicionadas. O eigensolver ARPACK usado em SpectralEmbedding foi otimizado, beneficiando fluxos de trabalho de aprendizado de variedade baseado em grafo que confiam na decomposição de autovalor de matrizes esparsas grandes.
Nova Função metric_at_thresholds()
A nova função metrics.metric_at_thresholds() computa valores de métrica através de todos os limiares de classificação possíveis de uma única passagem sobre predições de modelo. Antes dessa adição, computar curvas de sensibilidade de limiar para classificadores binários — uma tarefa rotineira em diagnóstico médico, detecção de fraude e qualquer aplicação onde o ponto operacional é ajustável — exigia código de loop personalizado ou pós-processamento de precision_recall_curve() e saídas de roc_curve(). A nova função padroniza esse fluxo de trabalho e se integra limpa com o resto da API de métricas sklearn.
Visualizações de Estimador HTML Mais Ricas
A representação HTML de estimadores ajustados em notebooks Jupyter foi significativamente aprimorada. Atributos ajustados (aqueles terminando em _, como coef_, feature_importances_ e n_iter_) agora são exibidos em uma tabela estruturada dentro da visão HTML, permitindo aos engenheiros inspecionar parâmetros aprendidos de relance sem chamar print(model.coef_). ColumnTransformer agora mostra nomes de features de saída com botões de copiar/colar na visualização, tornando dramaticamente mais fácil rastrear como features de entrada são mapeadas através de pipelines complexos de pré-processamento. Para equipes que usam Jupyter para desenvolvimento exploratório de modelo e comunicação com stakeholders, essas melhorias de visualização reduzem significativamente o atrito de inspeção de modelo.
Melhorias de Modelo de Árvore e Linear
RandomForestRegressor agora suporta tratamento nativo de valores faltantes ao usar o critério absolute_error — fechando uma lacuna que forçava profissionais a imputar dados antes de ajustar modelos ensemble em contextos (como registros de saúde ou dados de sensor) onde ausência carrega informação e não deve ser imputada para longe. O lançamento também melhora a correção estatística do tratamento de peso de amostra em HistGradientBoosting, RandomForest e ExtraTree, resolvendo vieses sutis que poderiam afetar modelos treinados em datasets desbalanceados ou dados de pesquisa com pesos de probabilidade. Adicionalmente, modelos lineares multi-tarefa agora suportam matrizes de entrada esparsa X e pesos de amostra — uma capacidade importante para profissionais de NLP que usam regressão multi-saída em matrizes documento-feature esparsas.
Descontinuações para Observar
A versão 1.9 introduz várias descontinuações que equipes devem planejar migrações antes das mudanças de ruptura programadas nas versões 1.11 e 1.12:
criterion="friedman_mse"em modelos baseados em árvore está descontinuado; o critério padrão"squared_error"é a substituição recomendada- Parâmetro
SVC.probabilityestá descontinuado; a substituição recomendada éCalibratedClassifierCVenvolvendo um baseSVC(probability=False) - Parâmetro
n_alphasestá descontinuado emlasso_path()eenet_path() - O padrão de scoring em
LogisticRegressionCVmudará de acurácia para"neg_log_loss"na versão 1.11 — uma mudança estatisticamente motivada que pode surpreender equipes confiando no comportamento padrão atual para seleção de modelo baseada em limiar
Essas descontinuações seguem a convenção do scikit-learn de avisar duas versões maiores antes que mudanças de ruptura cheguem, dando às equipes pista adequada para atualizar seu código sem refatorações de emergência.
Fontes
- Lançamento scikit-learn 1.9: numerics melhor, nova funcionalidade core (scikit-learn Blog)
- Versão 1.9 — notas de lançamento scikit-learn 1.9.0 (scikit-learn.org)
- scikit-learn e Hugging Face unem forças (scikit-learn Blog)
- Modelos compatíveis com a biblioteca scikit-learn (Hugging Face Hub)
- skops — biblioteca Python para compartilhamento seguro de modelos scikit-learn (GitHub)
- Acelerando scikit-learn com GPUs: 15x aceleração via Array API (blog :probabl.)
- scikit-learn 1.9.0 no PyPI
- Atualização sobre adoção da array API em scikit-learn (Quansight Labs)