Um Guia de Codificação para Construir um Pipeline Escalável de Análise e Machine Learning Ponta a P…

Neste tutorial, projetamos um pipeline de análise e modelagem ponta a ponta, de estilo de produção, usando Vaex para operar eficientemente em milhões de linhas sem materializar dados na memória. Geramos um conjunto de dados realista e em larga escala, projetamos recursos comportamentais e em nível de cidade ricos usando expressões lazy e estatísticas aproximadas, e agregamos insights em escala. Em seguida, integramos Vaex com scikit-learn para treinar e avaliar um modelo preditivo, demonstrando como o Vaex pode atuar como a espinha dorsal para análise exploratória de alto desempenho e fluxos de trabalho de machine learning. Copiar Código Copiado Use um navegador diferente!pip -q install "vaex==4.19.0" "vaex-core==4.19.0" "vaex-ml==0.19.0" "vaex-viz==0.6.0" "vaex-hdf5==0.15.0" "pyarrow>=14" "scikit-learn>=1.3" import os, time, json, numpy as np, pandas as pd import vaex import vaex.ml from vaex.ml.sklearn import Predictor from sklearn.linear_model import LogisticRegression from sklearn.metrics import roc_auc_score, average_precision_score print("Python:", __import__("sys").version.split()[0]) print("vaex:", vaex.__version__) print("numpy:", np.__version__) print("pandas:", pd.__version__) rng = np.random.default_rng(7) n = 2_000_000 cities = np.array(["Montreal","Toronto","Vancouver","Calgary","Ottawa","Edmonton","Quebec City","Winnipeg"], dtype=object) city = rng.choice(cities, size=n, replace=True, p=np.array([0.16,0.18,0.12,0.10,0.10,0.10,0.10,0.14])) age = rng.integers(18, 75, size=n, endpoint=False).astype("int32") tenure_m = rng.integers(0, 180, size=n, endpoint=False).astype("int32") tx = rng.poisson(lam=22, size=n).astype("int32") base_income = rng.lognormal(mean=10.6, sigma=0.45, size=n).astype("float64") city_mult = pd.Series({"Montreal":0.92,"Toronto":1.05,"Vancouver":1.10,"Calgary":1.02,"Ottawa":1.00,"Edmonton":0.98,"Quebec City":0.88,"Winnipeg":0.90}).reindex(city).to_numpy() income = (base_income * city_mult * (1.0 + 0.004*(age-35)) * (1.0 + 0.0025*np.minimum(tenure_m,120))).astype("float64") income = np.clip(income, 18_000, 420_000) noise = rng.normal(0, 1, size=n).astype("float64") score_latent = ( 0.55*np.log1p(income/1000.0) + 0.28*np.log1p(tx) + 0.18*np.sqrt(np.maximum(tenure_m,0)/12.0 + 1e-9) - 0.012*(age-40) + 0.22*(city == "Vancouver").astype("float64") + 0.15*(city == "Toronto").astype("float64") + 0.10*(city == "Ottawa").astype("float64") + 0.65*noise ) p = 1.0/(1.0 + np.exp(-(score_latent - np.quantile(score_latent, 0.70))))

Fonte: MarkTechPost

Publicado em 2026-03-03

Notícias relacionadas

Continue explorando