tkmlr 生成AI投入用コンテキスト

このファイルは tkmlr を使うコード生成のため、マニュアルとAPIリファレンスを1ファイルへ統合したものです。API名・引数は下記APIリファレンスを優先し、存在しないAPIを推測で作らないでください。ソースコードが同時に与えられた場合はソースコードを最優先します。


tkmlr マニュアル

1. 役割

tkmlr は、複数の回帰backendを共通の fit/predict interfaceで扱う小型ライブラリです。通常の回帰を担当し、次の実験点を選ぶadaptive optimizationは tkbo に分離されています。

2. 推奨import

from tkmlr import create_model, registered_models, regression_report

3. 基本例

from tkmlr import create_model, regression_report

model = create_model("gpr", alpha=1.0e-6)
model.fit(X_train, y_train)
y_pred, y_std = model.predict(X_test, return_std=True)

metrics = regression_report(y_test, y_pred)

標準偏差を返せないmodelで return_std=True を指定した場合の挙動はwrapper実装に依存するため、model.supports_std を確認してください。

4. 登録model

名前

backend

linear

sklearn LinearRegression

ridge

sklearn Ridge

lasso

sklearn Lasso

elastic

sklearn ElasticNet

mlp

sklearn MLPRegressor

rf, random_forest

sklearn RandomForestRegressor

gpr, gp

sklearn GaussianProcessRegressor

svr

sklearn SVR

physbo

PHYSBO GP/RFM surrogate wrapper

実行時の登録一覧:

print(list(registered_models()))

5. 共通interface

BaseRegressor の主要契約:

model.fit(X, y) -> model
model.predict(X, return_std=False)
model.get_params(deep=True) -> dict
model.set_params(**params) -> model
model.score(X, y) -> float
  • X: shape (n_samples, n_features)。1次元入力は (n, 1) に変換。

  • y: shape (n_samples,)

  • supports_std: predictive uncertainty対応。

  • supports_score: backend固有score対応。

6. PHYSBOを回帰器として使う

model = create_model(
    "physbo",
    num_rand_basis=200,
    interval=0,
    standardize=True,
    random_seed=1,
)
model.fit(X_train, y_train)
y_mean, y_std = model.predict(X_candidates, return_std=True)
ei = model.acquisition(X_candidates, mode="EI")

これは回帰・score計算用wrapperであり、ask/tell は実装しません。adaptive searchには tkbo を使います。

7. 表データとtarget列規則

tkmlr.data.parse_target_columns() は列名から目的を読み取ります。

列名例

意味

max:y

yを最大化

min:y

yを最小化(内部で符号反転)

=3.5:y

yを3.5へ近づける(負の二乗誤差へ変換)

t1:y, o1:y

最大化targetとplot index指定

-comment

descriptorから除外

from tkmlr.data import read_table, make_xy_from_table

df = read_table("data.xlsx")
X, y, spec, descriptors, work = make_xy_from_table(df)

8. 前処理

Standardizer はNumPyだけで動く単純標準化器です。分散0列はscale=1として保持します。

from tkmlr.preprocessing import Standardizer

scaler = Standardizer().fit(X_train)
X_train_std = scaler.transform(X_train)
X_test_std = scaler.transform(X_test)

LogTransformer はDataFrameの指定列へcolumn-wise log変換を行います。0以下の値の扱いは入力側で検討してください。

9. 独自model登録

from tkmlr import BaseRegressor, register_model

class MyRegressor(BaseRegressor):
    name = "my_model"

    def fit(self, X, y):
        self.model_ = ...
        return self

    def predict(self, X, return_std=False):
        ...


@register_model("my_model")
def build_my_model(**params):
    return MyRegressor(**params)

登録はbuilder関数に対するdecoratorです。register_model("name", cls) 形式ではありません。

10. CLI

python -m tkmlr.cli \
  --input data.xlsx \
  --method gpr \
  --target max:y \
  --return-std 1

現CLIは全データでfitし、同じデータに対するmetricを表示する簡易動作です。holdoutやcross validationを自動実行すると仮定しないでください。

11. 依存関係

  • numpy, pandas, scikit-learn, openpyxl

  • PHYSBO modelのみ physbo

  • plotを追加する場合は matplotlib

12. 生成AI向けコード生成ルール

  1. model生成は create_model(name, **params) を使う。

  2. 回帰とBayesian optimizationを分け、tkmlrask/tell を期待しない。

  3. return_std=True の前に supports_std またはmodel種別を確認する。

  4. PHYSBO回帰器の標準化は内部で行われるため、二重標準化しない。

  5. target列の min:=value: は内部目的値へ変換される。予測値を元単位のtargetと混同しない。

  6. CLI metricはtraining metricであり、汎化性能評価として報告しない。

  7. 新backendはregistryへbuilderを登録し、factory本体を書き換えない。


tkmlr APIリファレンス

対象ソース: tklib2.zip(解析日: 2026-08-03)。この文書はソースコードを静的解析して生成しています。

APIの読み方

  • パッケージ公開APIは、原則としてトップレベルの __all__ に含まれる名前です。

  • モジュールAPIには、公開名(先頭が _ でない関数・クラス・メソッド)を列挙しています。

  • docstringがないAPIでは、シグネチャとソースパスを一次情報として扱ってください。

  • 生成AIは、この文書に存在しない引数・戻り値・メソッドを推測で追加しないでください。

パッケージ公開API

from tkmlr import (
    BaseRegressor,
    create_model,
    registered_models,
    register_model,
    regression_report,
)

名前

推奨用途

BaseRegressor

トップレベルから安定してimportできる公開API

create_model

トップレベルから安定してimportできる公開API

registered_models

トップレベルから安定してimportできる公開API

register_model

トップレベルから安定してimportできる公開API

regression_report

トップレベルから安定してimportできる公開API

モジュール一覧

モジュール

ソース

関数

クラス

tkmlr

tkmlr/__init__.py

0

0

tkmlr.base

tkmlr/base.py

2

1

tkmlr.cli

tkmlr/cli.py

2

0

tkmlr.data

tkmlr/data.py

4

1

tkmlr.factory

tkmlr/factory.py

0

0

tkmlr.metrics

tkmlr/metrics.py

5

0

tkmlr.physbo_regressor

tkmlr/physbo_regressor.py

1

1

tkmlr.preprocessing

tkmlr/preprocessing.py

0

2

tkmlr.registry

tkmlr/registry.py

3

0

tkmlr.sklearn_models

tkmlr/sklearn_models.py

8

1

tkmlr

ソース: tkmlr/__init__.py

tkmlr: small extensible regression library.

このモジュールには静的解析で検出された公開関数・クラス・定数はありません。

tkmlr.base

ソース: tkmlr/base.py

Base classes for tkmlr regressors.

The design follows the scikit-learn style where possible: fit(X, y) predict(X, return_std=False) get_params() set_params(**params)

Bayesian optimizers should be implemented separately. A PHYSBO Gaussian-process surrogate can live here as a regressor, while ask/tell adaptive search belongs in a separate optimizer module/package.

class BaseRegressor

Small sklearn-like base class.

Subclasses only need to override fit and predict. This class is kept intentionally light so that wrappers for sklearn, PHYSBO, GPy, GPflow, etc. can share the same external interface without inheriting from sklearn.

データクラス相当の初期化フィールド

BaseRegressor(supports_std: bool = False, supports_score: bool = False, name: str = 'base')

フィールド

名前

既定値

supports_std

bool

False

supports_score

bool

False

name

str

'base'

メソッド/プロパティ

method BaseRegressor.fit

def fit(self, X: ArrayLike, y: ArrayLike) -> 'BaseRegressor'

ソース内docstringはありません。シグネチャと実装を参照してください。

method BaseRegressor.predict

def predict(self, X: ArrayLike, return_std: bool = False)

ソース内docstringはありません。シグネチャと実装を参照してください。

method BaseRegressor.get_params

def get_params(self, deep: bool = True) -> Dict[str, Any]

ソース内docstringはありません。シグネチャと実装を参照してください。

method BaseRegressor.set_params

def set_params(self, **params: Any) -> 'BaseRegressor'

ソース内docstringはありません。シグネチャと実装を参照してください。

method BaseRegressor.score

def score(self, X: ArrayLike, y: ArrayLike) -> float

ソース内docstringはありません。シグネチャと実装を参照してください。

function as_2d_array

def as_2d_array(X: ArrayLike) -> np.ndarray

ソース内docstringはありません。シグネチャと実装を参照してください。

function as_1d_array

def as_1d_array(y: ArrayLike) -> np.ndarray

ソース内docstringはありません。シグネチャと実装を参照してください。

tkmlr.cli

ソース: tkmlr/cli.py

Command-line interface for tkmlr.

function build_parser

def build_parser() -> argparse.ArgumentParser

ソース内docstringはありません。シグネチャと実装を参照してください。

function main

def main(argv = None) -> int

ソース内docstringはありません。シグネチャと実装を参照してください。

tkmlr.data

ソース: tkmlr/data.py

Data loading and column parsing utilities.

class TargetSpec

ソース内docstringはありません。シグネチャと実装を参照してください。

データクラス相当の初期化フィールド

TargetSpec(original_label: str, label: str, mode: str = 'max', value: Optional[float] = None, plot_index: Optional[int] = None)

フィールド

名前

既定値

original_label

str

必須

label

str

必須

mode

str

'max'

value

Optional[float]

None

plot_index

Optional[int]

None

function read_table

def read_table(path: str, sheet_name = 0, header: int = 0, index_col = None) -> pd.DataFrame

ソース内docstringはありません。シグネチャと実装を参照してください。

function parse_target_columns

def parse_target_columns(columns: Sequence[str]) -> Tuple[List[TargetSpec], List[str]]

ソース内docstringはありません。シグネチャと実装を参照してください。

function transform_target

def transform_target(y: np.ndarray, spec: TargetSpec) -> np.ndarray

ソース内docstringはありません。シグネチャと実装を参照してください。

function make_xy_from_table

def make_xy_from_table(df: pd.DataFrame, target: Optional[str] = None, descriptors: Optional[Sequence[str]] = None, dropna: bool = True)

ソース内docstringはありません。シグネチャと実装を参照してください。

tkmlr.factory

ソース: tkmlr/factory.py

Public factory helpers.

このモジュールには静的解析で検出された公開関数・クラス・定数はありません。

tkmlr.metrics

ソース: tkmlr/metrics.py

Metrics used by tkmlr.

function mae

def mae(y_true, y_pred) -> float

ソース内docstringはありません。シグネチャと実装を参照してください。

function mse

def mse(y_true, y_pred) -> float

ソース内docstringはありません。シグネチャと実装を参照してください。

function rmse

def rmse(y_true, y_pred) -> float

ソース内docstringはありません。シグネチャと実装を参照してください。

function r2

def r2(y_true, y_pred) -> float

ソース内docstringはありません。シグネチャと実装を参照してください。

function regression_report

def regression_report(y_true, y_pred) -> Dict[str, float]

ソース内docstringはありません。シグネチャと実装を参照してください。

tkmlr.physbo_regressor

ソース: tkmlr/physbo_regressor.py

PHYSBO Gaussian-process surrogate as a regressor.

This class intentionally does not implement ask/tell adaptive learning. It is a surrogate regressor for comparing PHYSBO's GP/RFM backend with sklearn GPR and other regressors through the common tkmlr interface.

class PhysBORegressor — bases: BaseRegressor

ソース内docstringはありません。シグネチャと実装を参照してください。

データクラス相当の初期化フィールド

PhysBORegressor(score_mode: str = 'EI', num_rand_basis: int = 200, interval: int = 0, standardize: bool = True, random_seed: Optional[int] = None, name: str = 'physbo', supports_std: bool = True, supports_score: bool = True)

フィールド

名前

既定値

score_mode

str

'EI'

num_rand_basis

int

200

interval

int

0

standardize

bool

True

random_seed

Optional[int]

None

name

str

'physbo'

supports_std

bool

True

supports_score

bool

True

メソッド/プロパティ

method PhysBORegressor.fit

def fit(self, X, y)

ソース内docstringはありません。シグネチャと実装を参照してください。

method PhysBORegressor.predict

def predict(self, X, return_std: bool = False)

ソース内docstringはありません。シグネチャと実装を参照してください。

method PhysBORegressor.acquisition

def acquisition(self, X, mode: Optional[str] = None)

ソース内docstringはありません。シグネチャと実装を参照してください。

function build_physbo

def build_physbo(**params)

ソース内docstringはありません。シグネチャと実装を参照してください。

tkmlr.preprocessing

ソース: tkmlr/preprocessing.py

Preprocessing utilities for tkmlr.

class Standardizer

Simple standardizer independent of sklearn.

sigma=0 columns are left unchanged by using sigma=1.0.

データクラス相当の初期化フィールド

Standardizer(mean_: Optional[np.ndarray] = None, scale_: Optional[np.ndarray] = None)

フィールド

名前

既定値

mean_

Optional[np.ndarray]

None

scale_

Optional[np.ndarray]

None

メソッド/プロパティ

method Standardizer.fit

def fit(self, X: Any) -> 'Standardizer'

ソース内docstringはありません。シグネチャと実装を参照してください。

method Standardizer.transform

def transform(self, X: Any) -> np.ndarray

ソース内docstringはありません。シグネチャと実装を参照してください。

method Standardizer.fit_transform

def fit_transform(self, X: Any) -> np.ndarray

ソース内docstringはありません。シグネチャと実装を参照してください。

method Standardizer.inverse_transform

def inverse_transform(self, X: Any) -> np.ndarray

ソース内docstringはありません。シグネチャと実装を参照してください。

class LogTransformer

Column-wise log transform.

log_columns can be column names or integer column indices.

データクラス相当の初期化フィールド

LogTransformer(log_columns: Iterable[Any])

フィールド

名前

既定値

log_columns

Iterable[Any]

必須

メソッド/プロパティ

method LogTransformer.transform_dataframe

def transform_dataframe(self, df)

ソース内docstringはありません。シグネチャと実装を参照してください。

tkmlr.registry

ソース: tkmlr/registry.py

Model registry for tkmlr.

New backends can be added without editing the factory by decorating a builder:

@register_model("my_model")
def build_my_model(**params):
    return MyRegressor(**params)

function register_model

def register_model(name: str)

ソース内docstringはありません。シグネチャと実装を参照してください。

function create_model

def create_model(name: str, **params) -> BaseRegressor

ソース内docstringはありません。シグネチャと実装を参照してください。

function registered_models

def registered_models() -> Iterable[str]

ソース内docstringはありません。シグネチャと実装を参照してください。

tkmlr.sklearn_models

ソース: tkmlr/sklearn_models.py

Wrappers for sklearn regressors.

class SklearnRegressor — bases: BaseRegressor

Generic wrapper around a scikit-learn estimator.

データクラス相当の初期化フィールド

SklearnRegressor(estimator: Any, name: str = 'sklearn')

フィールド

名前

既定値

estimator

Any

必須

name

str

'sklearn'

メソッド/プロパティ

method SklearnRegressor.fit

def fit(self, X, y)

ソース内docstringはありません。シグネチャと実装を参照してください。

method SklearnRegressor.predict

def predict(self, X, return_std: bool = False)

ソース内docstringはありません。シグネチャと実装を参照してください。

method SklearnRegressor.get_params

def get_params(self, deep: bool = True)

ソース内docstringはありません。シグネチャと実装を参照してください。

method SklearnRegressor.set_params

def set_params(self, **params)

ソース内docstringはありません。シグネチャと実装を参照してください。

function build_linear

def build_linear(**params)

ソース内docstringはありません。シグネチャと実装を参照してください。

function build_ridge

def build_ridge(alpha: float = 1.0, **params)

ソース内docstringはありません。シグネチャと実装を参照してください。

function build_lasso

def build_lasso(alpha: float = 1.0, max_iter: int = 10000, **params)

ソース内docstringはありません。シグネチャと実装を参照してください。

function build_elastic

def build_elastic(alpha: float = 1.0, l1_ratio: float = 0.5, max_iter: int = 10000, **params)

ソース内docstringはありません。シグネチャと実装を参照してください。

function build_mlp

def build_mlp(hidden_layer_sizes = (20, 20), max_iter: int = 2000, random_state: Optional[int] = 0, **params)

ソース内docstringはありません。シグネチャと実装を参照してください。

function build_random_forest

def build_random_forest(n_estimators: int = 200, random_state: Optional[int] = 0, **params)

ソース内docstringはありません。シグネチャと実装を参照してください。

function build_gpr

def build_gpr(alpha: float = 1e-06, kernel: Any = None, n_restarts_optimizer: int = 5, **params)

ソース内docstringはありません。シグネチャと実装を参照してください。

function build_svr

def build_svr(C: float = 1.0, epsilon: float = 0.1, kernel: str = 'rbf', **params)

ソース内docstringはありません。シグネチャと実装を参照してください。