WeltPython SDK
Products: switch from Welt to another product
Open console

Get startedFind research data and make a first prediction

← All notebooks

Static notebook preview · outputs are cleared. Open in Colab or download the notebook to run the cells. Colab setup

python
!pip install "welt-client[parquet]"

Find research data and make a first prediction

Run the installation cell first, connect your workspace, then run the remaining cells in order. These are real hosted requests: fitting retains a private training dataset and predictor. No extra helper file is needed. Outputs are deliberately not saved in this source.

python
from welt import Client

with Client() as client:
    client.connect()
python
from welt import Client
with Client() as client:
    page = client.research_datasets(q="iris", availability="available", limit=10)
print([(item["id"], item["name"]) for item in page["items"]])

Search results may change. We select the Iris asset below, then download its current content. The SDK verifies the download. Its outcome column is target. Follow the same six modelling steps.

python
from pathlib import Path
from tempfile import mkdtemp
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report
from welt import Client, Classifier

# 1. Get a real table from Welt's research inventory.
dataset_id = "asset-d839644b6de36fc5cafdda18c5daeca3"
path = Path(mkdtemp(prefix="welt-iris-")) / "iris.parquet"
with Client() as client:
    info = client.research_dataset(dataset_id)
    print("Dataset:", info["name"])
    client.download_research_dataset(dataset_id, path)
data = pd.read_parquet(path)
target = "target"  # The outcome column in this table.
python
# 2. Look at the rows before modelling.
print(data.head())
print("Rows and columns:", data.shape)
data.info()
print(data[target].value_counts())
python
# 3. Set aside test rows before fitting; never train on their answers.
train, test = train_test_split(
    data, test_size=0.2, random_state=9, stratify=data[target])
query = test.drop(columns=target)
y_test = test[target]
print("Training rows:", len(train), "— Test rows:", len(test))
python
# 4. Create a model and train it on the training table.
model = Classifier(model="tabicl-v2", random_state=9)
model.fit(train, target=target)
python
# 5. Predict the held-out rows, without passing their target column.
predictions = model.predict(query)
print(pd.DataFrame({"actual": y_test.to_numpy(), "predicted": predictions}).head())
python
# 6. Compare predictions with the answers we kept aside.
print("Test accuracy:", accuracy_score(y_test, predictions))
print(classification_report(y_test, predictions, zero_division=0))
print("Keep this predictor ID:", model.predictor_id_)

Optional: load the table directly into a DataFrame with its column descriptions. load_research_dataset(..., metadata=True) returns the data and its catalogue metadata. No local file path is needed.

python
with Client() as client:
    loaded, meta = client.load_research_dataset(dataset_id, metadata=True)
print(meta.name)
print(meta.column_descriptions)
print("Same table as the download:", loaded.equals(data))
Documentation

Search SDK 0.13.1

Search this SDK version by task, method or error.