Web888.vn
  • Shop
  • Blog
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Conhecimento Microsoft Office
  • Microsoft Excel
  • Notícias de tecnologia
Pipeline em aprendizado de máquina

Pipeline em aprendizado de máquina

  • 24-07-2022
  • chuong xuan
  • 0 Comments

O pipeline no ML é uma maneira de automatizar o fluxo de trabalho de criação de um modelo de aprendizado de máquina. Quase todo sistema de aprendizado de máquina possui componentes como o diagrama abaixo, é um pipeline de aprendizado de máquina.

Pipeline de aprendizado de máquina

Mục lục

  • O que é um pipeline no aprendizado de máquina?
  • Por que construir pipelines?
  • Exemplo simples

O que é um pipeline no aprendizado de máquina?

Bloco de treinamento

  • Validação de dados: é a etapa de teste de dados, determinando se os dados recém-adicionados estão satisfeitos com os dados do banco de dados. Devido ao fato de que novos dados sempre serão adicionados para executar o trem.
  • Depois que os dados brutos são limpos para a etapa de preparação de dados, eles são divididos em um conjunto de dados de treinamento, um conjunto de dados de treinamento e um conjunto de dados de validação. dados de teste para determinar a qualidade do modelo após o processo de treinamento.
  • Os dados de treinamento são colocados no bloco "treinamento do modelo" para treinar o modelo.
  • Após o treinamento, realizamos a análise no bloco "análise do modelo" para analisar a qualidade. Verifique se as métricas no conjunto de teste são boas, os resultados previstos e os resultados reais são equivalentes, a velocidade de previsão,…
  • Quando os dados são passados pelo bloco de análise do modelo, o modelo será usado para executar os dados reais na etapa "Servindo". Caso contrário, precisamos revisar o modelo ou filtrar os dados.

Servindo . Bloquear

  • Quando o modelo ainda é stub, devemos usar um pequeno conjunto de dados, executar o teste, se a qualidade for aceitável, podemos fazê-lo em todos os dados.
  • A Preparação de Dados ajuda a limpar e criar dados que terão que ser os mesmos do modelo no bloco de treinamento.
  • Cada problema diferente requer um sistema de monitoramento e alerta diferente. Normalmente, independentemente dos dados de entrada, o modelo ainda produzirá um resultado previsível, possivelmente aleatório. Se esses resultados não forem monitorados e alarmados com cuidado, levando a mudanças repentinas na qualidade do modelo e nas reações dos usuários, a reputação e a receita da empresa serão afetadas.

Por que construir pipelines?

  • Os sistemas de aprendizado de máquina geralmente consistem em muitos componentes pequenos, como processamento de dados, treinamento de modelos, avaliação de modelos, previsão com novos dados, etc. Sem construir um pipeline completo com cada componente separado Obviamente, haverá muitos problemas. Separar seu sistema passo a passo e juntá-lo novamente em um pipeline facilita a localização de erros ao treinar o modelo.
  • Construir um pipeline também nos ajuda a trabalhar melhor em equipe. Se houver um grupo grande, podemos dividi-lo em pequenos grupos: um grupo especializado em limpeza de dados, um grupo especializado em criar recursos, outro grupo constrói e treina o modelo e outro grupo se concentra na avaliação e monitora a atividade do modelo. Esses blocos de trabalho, se separados e especializados, ajudarão as equipes a detalhar para melhorar a qualidade de cada bloco sem se preocupar em quebrar o código de outra equipe.

Exemplo simples

Aqui apresentarei um pipeline completo, não entrarei em cada linha de comando, mas quero usar este exemplo para fornecer uma visão geral de um pipeline. Você pode ver o código completo aqui

O primeiro passo é importar as bibliotecas necessárias.

from pathlib import Path import pandas as pd from sklearn.compose import ColumnTransformer from sklearn.ensemble import RandomForestClassifier from sklearn.impute import KNNImputer, SimpleImputer from sklearn.metrics import accuracy_score from sklearn.model_selection import train_test_split from sklearn.pipeline import Pipeline from sklearn.preprocessing import OneHotEncoder, RobustScaler

Carregar dados

titanic_path = ( " https://github.com/CongSon01/titanic_pipeline/ " ) df_train_full = pd.read_csv(titanic_path + "train.csv") df_test = pd.read_csv(titanic_path + "test.csv")

Descarte os dados ausentes, não traz eficiência ao modelo.

df_train_full.drop(columns=["Cabin"]) df_test.drop(columns=["Cabin"]);

Antes de entrar na etapa de criação de recursos, precisamos dividir os dados de treinamento/teste. Aqui, os 10% aleatórios dos dados rotulados originais são extraídos como dados de validação , os 90% restantes são mantidos como dados de treinamento . A coluna Sobreviveu é a coluna de rótulo que é dividida em uma variável separada contendo o rótulo:

df_train, df_val = train_test_split(df_train_full, test_size=0.1) X_train = df_train.copy() y_train = X_train.pop("Survived") X_val = df_val.copy() y_val = X_val.pop("Survived")

Os recursos de processamento com tipos de dados categóricos ou numéricos terão métodos de processamento diferentes. Primeiro lidamos com dados categóricos.

cat_cols = ["Embarked", "Sex", "Pclass"] cat_transformer = Pipeline( steps=[ ("imputer", SimpleImputer(strategy="most_frequent")), ("onehot", OneHotEncoder(handle_unknown="ignore", sparse= False )), ] )

Em seguida, aplicamos num_transformer a dois recursos numéricos:

num_cols = ["Age", "Fare"] num_transformer = Pipeline( steps=[("imputer", KNNImputer(n_neighbors=5)), ("scaler", RobustScaler())] )

Combinando dois processadores obtemos um processador completo. A classe ColumnTransformer do scikit-learn ajuda a combinar transformadores:

preprocessor = ColumnTransformer( transformers=[ ("num", num_transformer, num_cols), ("cat", cat_transformer, cat_cols), ] )

Por fim, combinamos o processador específico do pré-processador com um classificador simples que é frequentemente usado com dados tabulares, RandomForestClassifier, para obter um pipeline full_pp que inclui processamento de dados e modelos. Full_pp é ajustado aos dados de treinamento (X_train, y_train) e usado para aplicar aos dados de teste.

# Full training pipeline full_pp = Pipeline( steps=[("preprocessor", preprocessor), ("classifier", RandomForestClassifier())] ) # training full_pp.fit(X_train, y_train) # training metric y_train_pred = full_pp.predict(X_train) print( f"Accuracy score on train data: { accuracy_score(list(y_train), list(y_train_pred)) : .2f } " ) # validation metric y_pred = full_pp.predict(X_val) print( f"Accuracy score on validation data: { accuracy_score(list(y_val), list(y_pred)) : .2f } " )
 Pontuação de precisão nos dados do trem: 0,98
Pontuação de precisão nos dados de validação: 0,83

Assim, todo o sistema fornece 98% de precisão no conjunto de treinamento e 83% no conjunto de teste. Essa diferença prova que ocorreu overfitting (falarei sobre isso nos próximos artigos).

Bài viết liên quan:

Funções que funcionam com strings em PHP
Constantes em PHP e como declarar constantes
Instale o site WordPress no localhost usando o Xampp
Mythemeshop oferece gratuitamente à comunidade 36 temas wordpress de versão premium !
Para desenvolver seu trabalho rapidamente, tenha isso em mente!
Manual do usuário e funções básicas de administração WordPress CMS
Sofrer antes da felicidade e depois ficar rico? Como pensar bem ?
Corrigir o erro "Diretório temporário ausente" no WordPress
Não aceite a cruel realidade do mercado, não pense no sucesso!
Razões pelas quais as pessoas são cada vez mais inexperientes na vida
Instruções para instalar e usar o google analytics para medir as visitas ao site
Configure as conversões de eventos do formulário de contato 7 para google adwords e google analytics usando o gerenciador de tags

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Dados JSON no SQL Server

Recursos avançados do SQL no SQL Server 2019

Apresentando o Azure SQL

Instalar manualmente o PHP no sistema operacional Linux e Unix

Instale o PHP manualmente no Mac OS

Giới thiệu

web888.vn là chuyên trang chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với web888

© web888.vn - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.

Your personal data will be used to support your experience throughout this website, to manage access to your account, and for other purposes described in our privacy policy.

Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×