sap-hana-ml について
`hana-ml` Python クライアントで SAP HANA の機械学習ワークフローを構築する開発者向けのスキルです。インデータベースアルゴリズム、DataFrame、AutoML、可視化に加え、接続トラブルの確認とモデル保存の参考情報を提供します。
主な機能
- 01PAL のインデータベース機械学習アルゴリズム
- 02APL AutoML と特徴量エンジニアリング
- 03遅延評価の HANA DataFrame
- 04モデル可視化と SHAP による説明
- 05モデル保存とパイプライン構築
活用シーン
- 01HANA 内でのモデル学習とスコアリング
- 02AutoML による分類や回帰
- 03HANA DataFrame のクエリと処理
- 04結果の可視化と予測の説明
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ secondsky/ sap-skills --skill sap-hana-mlインストール後、Claude Code で/sap-hana-mlを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdagents/openai.yamlreferences/APL_ALGORITHMS.mdDATAFRAME_REFERENCE.mdPAL_ALGORITHMS.mdSUPPORTING_MODULES.mdVISUALIZERS.md詳細
SAP HANA ML Python クライアント(hana-ml)
関連スキル
- sap-dependency-security: HANA ML スタックと併用する Python/補助ツールで、安全な依存関係の固定やアップグレードのワークフローを実施する際に使用します
このスキルを使用するタイミング
hana-ml Python クライアントを使用した機械学習ワークフローの構築、PAL/APL アルゴリズムの使用、HANA DataFrame へのクエリ、データベース内でのモデルのトレーニングやスコアリング、AutoML の使用、モデル出力の可視化、Python から HANA ML への接続に関するトラブルシューティングを行う際に、このスキルを使用してください。
よくある問題
| 問題 | 最初に確認すること |
|---|---|
| 接続に失敗する | HANA のホスト、ポート、TLS/暗号化、ユーザー権限、ネットワークの許可リストを確認してください。 |
| PAL/APL アルゴリズムが見つからない | HANA システムに必要な AFL/PAL/APL ライブラリがインストールされ、ライセンスが付与されていることを確認してください。 |
| DataFrame の収集が遅い | フィルタリングや射影を HANA 内で行い、大きなフレームを Python に収集しないようにしてください。 |
パッケージバージョン:2.22.241011
最終確認日:2025-11-27
目次
インストールとセットアップ
pip install hana-ml
要件:Python 3.8 以降、SAP HANA 2.0 SPS03 以降、または SAP HANA Cloud
クイックスタート
接続と DataFrame
from hana_ml import ConnectionContext
# Connect
conn = ConnectionContext(
address='<hostname>',
port=443,
user='<username>',
password='<password>',
encrypt=True
)
# Create DataFrame
df = conn.table('MY_TABLE', schema='MY_SCHEMA')
print(f"Shape: {df.shape}")
df.head(10).collect()
PAL による分類
from hana_ml.algorithms.pal.unified_classification import UnifiedClassification
# Train model
clf = UnifiedClassification(func='RandomDecisionTree')
clf.fit(train_df, features=['F1', 'F2', 'F3'], label='TARGET')
# Predict & evaluate
predictions = clf.predict(test_df, features=['F1', 'F2', 'F3'])
score = clf.score(test_df, features=['F1', 'F2', 'F3'], label='TARGET')
APL AutoML
from hana_ml.algorithms.apl.classification import AutoClassifier
# Automated classification
auto_clf = AutoClassifier()
auto_clf.fit(train_df, label='TARGET')
predictions = auto_clf.predict(test_df)
モデルの永続化
from hana_ml.model_storage import ModelStorage
ms = ModelStorage(conn)
clf.name = 'MY_CLASSIFIER'
ms.save_model(model=clf, if_exists='replace')
コアライブラリ
PAL(予測分析ライブラリ)
- 100 種類以上のアルゴリズムをデータベース内で実行
- カテゴリ:分類、回帰、クラスタリング、時系列、前処理
- 主なクラス:
UnifiedClassification、UnifiedRegression、KMeans、ARIMA - 完全な一覧については、
references/PAL_ALGORITHMS.mdを参照してください
APL(自動予測ライブラリ)
- 特徴量エンジニアリングを自動で行う AutoML 機能
- 主なクラス:
AutoClassifier、AutoRegressor、GradientBoostingClassifier - 詳細については、
references/APL_ALGORITHMS.mdを参照してください
DataFrame
- 遅延評価:
collect()が呼び出されるまで SQL を構築します - 最適なパフォーマンスを実現する データベース内処理
- API の全容については、
references/DATAFRAME_REFERENCE.mdを参照してください
ビジュアライザー
- EDA プロット、モデルの説明、メトリクス
- モデルの解釈可能性を高める SHAP との連携
- 14 種類の可視化モジュールについては、
references/VISUALIZERS.mdを参照してください
よくあるパターン
トレーニングとテストの分割
from hana_ml.algorithms.pal.partition import train_test_val_split
train, test, val = train_test_val_split(
data=df,
training_percentage=0.7,
testing_percentage=0.2,
validation_percentage=0.1
)
特徴量の重要度
# APL models
importance = auto_clf.get_feature_importances()
# PAL models
from hana_ml.algorithms.pal.preprocessing import FeatureSelection
fs = FeatureSelection()
fs.fit(train_df, features=features, label='TARGET')
パイプライン
from hana_ml.algorithms.pal.pipeline import Pipeline
from hana_ml.algorithms.pal.preprocessing import Imputer, FeatureNormalizer
pipeline = Pipeline([
('imputer', Imputer(strategy='mean')),
('normalizer', FeatureNormalizer()),
('classifier', UnifiedClassification(func='RandomDecisionTree'))
])
ベストプラクティス
- 遅延評価を使用する:
collect()で実行するまで、各操作は SQL を構築します - データベース内処理を活用する:パフォーマンス向上のため、データを HANA 内に保持します
- Unified インターフェースを使用する:アルゴリズム間で一貫した API を利用できます
- モデルを保存する:永続化には
ModelStorageを使用します - 予測を説明する:解釈可能性を高めるため、SHAP の説明器を使用します
- AutoML を監視する:実行時間の長いジョブには
PipelineProgressStatusMonitorを使用します
同梱リソース
参照ファイル
-
references/DATAFRAME_REFERENCE.md(479 行)- ConnectionContext API、DataFrame 操作、SQL 生成
-
references/PAL_ALGORITHMS.md(869 行)- PAL アルゴリズムの完全なリファレンス(100 種類以上)
- 分類、回帰、クラスタリング、時系列、前処理
-
references/APL_ALGORITHMS.md(534 行)- AutoML 機能、自動特徴量エンジニアリング
- AutoClassifier、AutoRegressor、GradientBoosting クラス
-
references/VISUALIZERS.md(704 行)- 14 種類の可視化モジュール(EDA、SHAP、メトリクス、時系列)
- プロットの種類、設定、エクスポートオプション
-
references/SUPPORTING_MODULES.md(626 行)- モデルストレージ、空間分析、グラフアルゴリズム
- テキストマイニング、統計、エラー処理
エラー処理
from hana_ml.ml_exceptions import Error
try:
clf.fit(train_df, features=features, label='TARGET')
except Error as e:
print(f"HANA ML Error: {e}")
Documentation
- Official Docs: https://help.sap.com/doc/1d0ebfe5e8dd44d09606814d83308d4b/2.0.07/en-US/hana_ml.html
- PyPI Package: https://pypi.org/project/hana-ml/
コメント
Markdown 対応