すべてのプロダクト
Search
ドキュメントセンター

PolarDB:機能管理

最終更新日:Jun 03, 2024

このトピックでは、PolarDB for AIで機能管理を適用できるシナリオについて説明します。 このトピックでは、フィーチャーを作成、更新、削除し、フィーチャーのステータスとフィーチャー一覧を表示する方法についても説明します。

シナリオ

ほとんどの場合、生データを使用してAIモデルを構築することは困難です。 生データがモデルに入力される前に、生データは前処理または事前計算される。 生および前処理されたデータは、特徴として使用される。

例えば、データセットが、サイズ、寝室の数、地理的位置、および建設年などの家に関連する複数のアイテムを含む場合、各アイテムは特徴と考えることができる。

機能の選択と準備は、効果的なAIモデルを構築するために不可欠です。 理想的な特徴は、モデルの性能を大幅に改善することができるが、無関係または冗長な特徴は、モデルの学習プロセスに悪影響を及ぼし、モデル性能を低下させ得る。

特徴工学は、最も関連性のある特徴を選択すること、生データを機械学習アルゴリズムに適したフォーマットに変換すること、および生データから導出される新しい特徴を作成することなどの、特徴に関連する操作を含む。

機能は、次のシナリオで一般的に使用されます。

  • 分類

    • メール分類: スパムメールを識別する機能として単語やフレーズを使用します。

    • 画像認識: ピクセル値、色、テクスチャ、形状などの特徴を使用して画像を分類します。

    • 顧客解約予測: 取引履歴、エンゲージメントレベル、購入頻度など、顧客に関連する機能を使用して、プラットフォームでの顧客の維持率を予測します。

  • 回帰

    • 住宅価格予測: 住宅の場所、サイズ、年齢、アメニティなどの機能を使用して、将来の価格を予測します。

    • 株価予測: 過去の価格、取引量、経済指標などの機能を使用して、将来の株価を予測します。

  • クラスタリング

    • マーケットセグメンテーション: 顧客の購入履歴や好み、人口統計情報などの機能を使用して顧客をグループ化します。

    • ソーシャルネットワーク分析: ソーシャルアクティビティデータやユーザーの接続性などの機能を使用して、ソーシャルネットワーク内のグループを発見します。

  • おすすめ

    • 映画の推奨: ユーザーが視聴した映画や、映画のレーティング、タイプ、俳優などの機能を使用して、映画を推奨します。

    • 商品推奨: ユーザーの購入履歴や閲覧行動、商品属性などの機能を使用して商品を推奨します。

  • 時系列分析

    • 天気予報: 過去の気象条件、日付、太陽条件などの機能を使用して、将来の気象条件を予測します。

    • 財務予測: 会社の財務諸表や市場動向などの機能を使用して、会社の財務状況を予測します。

  • 異常検出

    • クレジットカードの不正検出: トランザクションの時間、場所、金額などの機能を使用して、異常なトランザクションを識別します。

    • ネットワークセキュリティ: ネットワークトラフィックデータ、接続タイプ、トラフィックサイズなどの機能を使用して、ネットワーク攻撃を検出します。

  • 自然言語処理 (NLP)

    • 感情分析: 単語、フレーズ、文構造などの機能を使用して、テキストの感情的な傾向を分析します。

    • 機械翻訳: 単語、文法構造、コンテキストなどの機能を使用して、機械翻訳を支援します。

  • コンピュータビジョン

    • 顔認識: 顔のキーポイント、輪郭、テクスチャなどの特徴を使用して個人を識別します。

    • オブジェクト検出: オブジェクトの形状、サイズ、色などの特徴を使用して、画像内のオブジェクトを検出します。

機能はすべての分野で広く使用されています。 機能の選択とエンジニアリングは、モデル構築プロセスの重要なステップです。 それらはモデルのパフォーマンスに直接影響します。

フィーチャーの作成

フィーチャは非同期で作成されます。 機能が作成されているかどうかは、そのステータスを照会して確認できます。

構文

  • データベース内のデータを使用してフィーチャを作成します。

    CREATE FEATURE feature_name WITH (feature_class= '',parameters=()) AS (SELECT select_expr[, select_expr] ... table_referenceから) 
  • 既存のフィーチャーを使用してフィーチャーを作成します。

    CREATE FEATURE feature_name WITH (feature_class = '',parameters=()) USING FEATURE feature_reference

Parameters

パラメーター

説明

feature_name

フィーチャーの名前。

feature_class

フィーチャーのタイプ。 有効な値:

  • graph: グラフ。 この値は、データベース内のデータを使用してフィーチャを作成する場合にのみ使用できます。

  • connected_subgraph: 接続グラフ。 この値は、既存のフィーチャーを使用してフィーチャーを作成する場合にのみ使用できます。 既存のフィーチャーは、グラフを使用して作成する必要があります。

  • iv: 特徴の予測力を評価する。 有効な値の範囲は0から正の無限大です。 この値は、データベース内のデータを使用してフィーチャを作成する場合にのみ使用できます。 詳細については、「情報値」をご参照ください。

  • none_value: フィーチャ内のNULL値の割合を測定して、フィーチャの有効性を評価します。 この値は、データベース内のデータを使用してフィーチャを作成する場合にのみ使用できます。

    説明
    • NULL値の割合が高い場合 (≧ 80% など) 、この機能を破棄できます。

    • NULL値の割合が低い場合は、機能を保持し、不足している値を入力して影響を減らすことができます。

  • pearson: 2つの特徴の線形相関を測定します。 この値は、データベース内のデータを使用してフィーチャを作成する場合にのみ使用できます。 詳細については、「ピアソン相関係数」をご参照ください。

  • psi: データの予想分布と実際の分布の差を測定し、モデルの安定性を評価します。 この値は、データベース内のデータを使用してフィーチャを作成する場合にのみ使用できます。 詳細については、「人口安定指数」をご参照ください。

parameters

フィーチャーを作成するためのカスタムパラメーター。

select_expr

フィーチャーの作成に使用される列の名前。

table_reference

フィーチャーの作成に使用される列を含むテーブルの名前。

feature_reference

既存のフィーチャーの名前。

  • データベース内のデータを使用してフィーチャを作成します。

    /* polar4ai */create feature test_graph_1 with (feature_class='graph') as (select ip, user_id from small_sample limit 30)

    サンプル結果:

    クエリOK、影響を受ける0行 (0.79秒)
  • 既存のフィーチャーを使用してフィーチャーを作成します。

    /* polar4ai */create feature test_subgraph_1 with (feature_class='connected_subgraph') using feature test_graph_1

    サンプル結果:

    クエリOK、影響を受ける0行 (0.79秒)

機能を更新するUpdate a feature

特徴は非同期的に更新される。 ステータスを照会することで、機能が更新されたかどうかを確認できます。

構文

UPDATE FEATURE feature_name WITH (feature_class = ''、parameters=()) AS (SELECT select_expr [, select_expr] ... table_referenceから) 

Parameters

パラメーター

説明

feature_name

フィーチャーの名前。

feature_class

フィーチャーのタイプ。 値をgraphに設定します。

parameters

フィーチャーを作成するためのカスタムパラメーター。

select_expr

機能の更新に使用される列の名前。

説明
  • 機能の更新に使用される列の名前が既存の機能で使用されている列とは異なるが、同じ情報が含まれている場合は、2つの列にエイリアスを追加して名前を同じにする必要があります。

  • 機能の更新に使用される列の名前が既存の機能で使用されている列と同じで、異なる情報が含まれている場合は、2つの列にエイリアスを追加して、名前を変更する必要があります。

table_reference

機能の更新に使用される列を含むテーブルの名前。

test_subgraph_1機能の列を、small_sampleテーブルのip列とuser_id列に変更します。

/* polar4ai */update feature test_graph_1 with (feature_class='graph') as (select ip, user_id from small_sample limit 30)

サンプル結果:

クエリOK、影響を受ける0行 (0.79秒)

機能ステータスの表示

フィーチャの現在のステータスを表示します。 ほとんどの場合、フィーチャーを作成または更新した後に、フィーチャーが作成または更新されたかどうかを確認できます。 フィーチャは、次のいずれかの状態にある可能性があります。

  • INIT: 機能が初期化されます。

  • 準備: フィーチャのデータは準備中です。

  • 準備済み: フィーチャのデータが準備されます。

  • COMPUTING: 特徴は計算中です。

  • COMPUTED: 特徴が計算される。

  • RESTORING: フィーチャの結果が保存されています。

  • RESTORED: フィーチャの結果が保存されます。

  • FINISHED: 機能のコンピューティングが成功しました。

  • FAILED: 機能のコンピューティングに失敗しました。

構文

SHOW FEATURE feature_name

Parameters

パラメーター

説明

feature_name

フィーチャーの名前。

test_subgraph_1機能のステータスを表示します。

/* polar4ai * /ショー機能test_subgraph_1;

サンプル結果:

+ ----------- + ------------------------------------------------------------------------------------------------------------------------------- +
| CSGStatus | featurePath |
+ ----------- + ------------------------------------------------------------------------------------------------------------------------------- +
| FINISHED | http://db4ai-collie-cn-hangzhou-dataset.oss-cn-hangzhou.aliyuncs.com/xxxx.txt?OSSAccessKeyId=xxxx&Expires=xxxx&Signature=xxxx |
+ ----------- + ------------------------------------------------------------------------------------------------------------------------------- + 
説明

featurePathの有効期間は100分です。 featurePathExpiresパラメーターを使用して、リンクが有効かどうかを確認できます。 有効期間内にリンクにアクセスする必要があります。

機能リストを表示する

現在のクラスターのすべての機能を表示できます。

構文

ショーの特徴

/* polar4ai * /ショー機能;

サンプル結果:

+ -------------------- + ----------------- + ---------------- +
| feature_class | feature_name | feature_status |
+ -------------------- + ----------------- + ---------------- +
| connected_subgraph | test_subgraph_1 | 削除済み |
| グラフ | test_graph_1 | 終了 |
+ -------------------- + ----------------- + ---------------- +
セットの2列 (0.32秒) 

機能を削除する

既存の機能を削除できます。

構文

ドロップ機能機能_名

Parameters

パラメーター

説明

feature_name

フィーチャーの名前。

既存の機能test_subgraph_1を削除します。

/* polar4ai * /ドロップ機能test_subgraph_1

次の結果は、この機能が削除されたことを示します。

クエリOK、影響を受ける0行 (0.69秒)