Добавить в корзинуПозвонить
Найти в Дзене
SkyNet | Новости ИИ

Руководство по программированию для создания масштабируемого конвейера аналитики и машинного обучения на миллионах строк с использованием

Vaex В этом руководстве мы разрабатываем комплексный аналитический и моделирующий конвейер в производственном стиле с использованием Vaex для эффективной работы с миллионами строк без материализации данных в памяти. Мы генерируем реалистичный крупномасштабный набор данных, разрабатываем расширенные поведенческие и городские характеристики с использованием отложенных выражений и приблизительной статистики, а затем агрегируем полученные сведения в большом масштабе. Затем мы интегрируем Vaex с scikit-learn для обучения и оценки прогнозной модели, демонстрируя, как Vaex может выступать в качестве основы для высокопроизводительного исследовательского анализа и рабочих процессов машинного обучения. Установка необходимых библиотек ```python !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" ``` ```python import os, time, json, numpy as np, pandas as pd import vaex import vaex.ml from vaex.ml.sklearn

Руководство по программированию для создания масштабируемого конвейера аналитики и машинного обучения на миллионах строк с использованием Vaex

В этом руководстве мы разрабатываем комплексный аналитический и моделирующий конвейер в производственном стиле с использованием Vaex для эффективной работы с миллионами строк без материализации данных в памяти. Мы генерируем реалистичный крупномасштабный набор данных, разрабатываем расширенные поведенческие и городские характеристики с использованием отложенных выражений и приблизительной статистики, а затем агрегируем полученные сведения в большом масштабе. Затем мы интегрируем Vaex с scikit-learn для обучения и оценки прогнозной модели, демонстрируя, как Vaex может выступать в качестве основы для высокопроизводительного исследовательского анализа и рабочих процессов машинного обучения.

Установка необходимых библиотек

```python

!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"

```

```python

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 rocaucscore, averageprecisionscore

print("Python:", import("sys").version.split()[0])

print("vaex:", vaex.version)

print("numpy:", np.version)

print("pandas:", pd.version)

```

Генерация данных

```python

rng = np.random.default_rng(7)

n = 2000000

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")

citymult = 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).tonumpy()

income = (baseincome citymult (1.0 + 0.004(age-35)) (1.0 + 0.0025*np.minimum(tenure_m,120))).astype("float64")

income = np.clip(income, 18000, 420000)

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(-(scorelatent - np.quantile(scorelatent, 0.70))))

target = (rng.random(n) arrays(city=city, age=age, tenurem=tenure_m, tx=tx, income=income, target=target)

```

Создание и кодирование категориальных данных

```python

encoder = vaex.ml.LabelEncoder(features=["city"])

df = encoder.fit_transform(df)

citymap = encoder.labels["city"]

invcitymap = {v: k for k, v in city_map.items()}

ncities = len(citymap)

```

Вычисление агрегир...

Читать далее