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

Platform For AI:線形 SVM

最終更新日:Apr 02, 2026

線形サポートベクターマシン (SVM) は、統計的学習理論に基づいて構築された二値分類器です。カーネル関数を使用せずに、構造的リスクを最小化することで、2つのクラス間のマージンを最大化する決定境界を見つけ出します。

線形 SVM は、次の場合に使用します:

  • 分類タスクがバイナリ (2 クラスのみ) である。

線形 SVM は多クラス分類をサポートしていません。多クラス分類タスクには、別のコンポーネントを使用してください。

アルゴリズムのリファレンス

線形 SVM コンポーネントは、L2-SVM のための信頼領域ニュートン法を実装しています。詳細については、「Trust Region Newton Method for Large-Scale Logistic Regression」の「Trust region method for L2-SVM」セクションをご参照ください。

コンポーネントの設定

設定方法は、ビジュアルモデリングのビジュアルインターフェイスと PAI コマンドラインの 2 つがあります。インタラクティブな実験にはビジュアルモデリングインターフェイスを使用し、スクリプト化または自動化されたワークフローには PAI コマンドを使用します。

方法 1: ビジュアルモデリングで設定

入力ポート

線形 SVM コンポーネントには入力ポートが 1 つあります。これをテーブル読み込みコンポーネントに接続します。

パラメーター

タブパラメーター必須説明
フィールド設定特徴量列はい特徴量として使用される列。使用可能なデータ型:BIGINT または DOUBLE。
フィールド設定ラベル列はいクラスラベルを含む列。使用可能なデータ型:BIGINT、DOUBLE、または STRING。
パラメーター設定正例のラベルいいえ正例クラスとして扱われるラベル値。省略した場合、コンポーネントはランダムに値を選択します。クラスのディストリビューションが不均衡な場合に、このパラメーターを指定します。
パラメーター設定正のペナルティ係数いいえ正例を誤分類した場合に割り当てられるコスト。この値を大きくすると、モデルは正例クラスのエラーに対してより重いペナルティを課すようになります。これは、偽陰性のコストが高い場合に役立ちます。有効な値:(0, +∞)。デフォルト:1.0。
パラメーター設定負例のペナルティ係数いいえ負例を誤分類した場合に割り当てられるコスト。この値を大きくすると、モデルは負例クラスのエラーに対してより重いペナルティを課すようになります。これは、偽陽性のコストが高い場合に役立ちます。有効な値:(0, +∞)。デフォルト:1.0。
パラメーター設定収束係数いいえ収束許容値 (イプシロン)。反復間の変化がこの値を下回ると、トレーニングが停止します。値を小さくするとトレーニングの精度は向上しますが、より多くの反復が必要になります。有効な値:(0, 1)。デフォルト:0.001。
チューニングコア数いいえトレーニングに使用する CPU コアの数。省略した場合は自動的に割り当てられます。
チューニングコアあたりのメモリサイズいいえコアあたりに割り当てられるメモリ (MB 単位)。省略した場合は自動的に割り当てられます。

出力ポート

このコンポーネントは、バッチモデルと同じフォーマットのバイナリモデルを、後続の予測コンポーネントに出力します。

方法 2:PAI コマンドの実行

SQL スクリプトコンポーネントを使用して PAI コマンドを送信します。設定手順については、「SQL スクリプト」をご参照ください。

PAI -name LinearSVM -project algo_public
    -DinputTableName="bank_data"
    -DmodelName="xlab_m_LinearSVM_6143"
    -DfeatureColNames="pdays,emp_var_rate,cons_conf_idx"
    -DlabelColName="y"
    -DpositiveLabel="0"
    -DpositiveCost="1.0"
    -DnegativeCost="1.0"
    -Depsilon="0.001";

パラメーター

パラメーター必須説明デフォルト
inputTableNameはい入力テーブルの名前。
inputTablepartitionsいいえトレーニングに使用するパーティション。フォーマット:Partition_name=value (単一) または name1=value1/name2=value2 (複数レベル)。複数のパーティションはカンマで区切ります。すべてのパーティション
modelNameはい出力モデルの名前。
featureColNamesはい入力テーブルの特徴量列。
labelColNameはいラベル列の名前。
positiveLabelいいえ正例クラスのラベル値。ラベル列からランダムな値
positiveCostいいえ正例のペナルティ係数。この値を大きくすると、モデルは正例クラスのエラーに対してより重いペナルティを課すようになります。有効な値:(0, +∞)。1.0
negativeCostいいえ負例のペナルティ係数。この値を大きくすると、モデルは負例クラスのエラーに対してより重いペナルティを課すようになります。有効な値:(0, +∞)。1.0
epsilonいいえ収束許容値。有効な値:(0, 1)。0.001
enableSparseいいえ入力データがスパース形式の場合は true に設定します。false
itemDelimiterいいえスパース入力でキーと値のペアを区切るデリミタ。, (カンマ)
kvDelimiterいいえスパース入力でキーと値を区切るデリミタ。: (コロン)
coreNumいいえCPU コアの数。正の整数である必要があります。自動割り当て
memSizePerCoreいいえコアあたりのメモリ (MB 単位)。有効な値:1~65536。自動割り当て

注意事項

不均衡なクラス:正例と負例のサンプルに大きな偏りがある場合は、[正例のラベル] を明示的に設定し、positiveCost または negativeCost の値を上げて少数派クラスの重みを大きくします。例えば、偽陽性よりも偽陰性の方が有害である場合は、positiveCost を 1.0 より大きい値に設定します。

スパースデータ:高次元のスパース特徴量 (例えば、テキストデータやワンホットエンコーディングされたデータ) の場合は、enableSparse=true に設定し、ご利用のデータ形式に合わせて itemDelimiterkvDelimiter を設定します。

リソースのチューニング:ほとんどのワークロードでは、[コア数][コアあたりのメモリサイズ] は未設定のままにしてください。プラットフォームがデータサイズに基づいて自動的にリソースを割り当てます。予測可能なリソース使用量が必要な場合にのみ、これらの値を手動で設定してください。

この例では、小規模なデータセットで線形 SVM 二値分類器をトレーニングします。

  1. 入力として、以下のトレーニングデータを使用します。

    idyf0f1f2f3f4f5f6f7
    1-1-0.2941180.4874370.180328-0.292929-10.00149028-0.53117-0.0333333
    2+1-0.882353-0.1457290.0819672-0.414141-1-0.207153-0.766866-0.666667
    3-1-0.05882350.8391960.0491803-1-1-0.305514-0.492741-0.633333
    4+1-0.882353-0.1055280.0819672-0.535354-0.777778-0.162444-0.923997-1
    5-1-10.376884-0.344262-0.292929-0.6028370.284650.887276-0.6
    6+1-0.4117650.1658290.213115-1-1-0.23696-0.894962-0.7
    7-1-0.647059-0.21608-0.180328-0.353535-0.791962-0.0760059-0.854825-0.833333
    8+10.1764710.155779-1-1-10.052161-0.952178-0.733333
    9-1-0.7647060.9798990.147541-0.09090910.283688-0.0909091-0.9316820.0666667
    10-1-0.05882350.2562810.57377-1-1-1-0.8684880.1
  2. 入力として、以下のテストデータを使用します。

    idyf0f1f2f3f4f5f6f7
    1+1-0.8823530.08542710.442623-0.616162-1-0.19225-0.725021-0.9
    2+1-0.294118-0.0351759-1-1-1-0.293592-0.904355-0.766667
    3+1-0.8823530.2462310.213115-0.272727-1-0.171386-0.981213-0.7
    4-1-0.1764710.5075380.278689-0.414141-0.7021280.0491804-0.4756620.1
    5-1-0.5294120.839196-1-1-1-0.153502-0.885568-0.5
    6+1-0.8823530.246231-0.0163934-0.353535-10.0670641-0.627669-1
    7-1-0.8823530.8190950.278689-0.151515-0.3073290.192250.00768574-0.966667
    8+1-0.882353-0.07537690.0163934-0.494949-0.903073-0.418778-0.654996-0.866667
    9+1-10.5276380.344262-0.212121-0.3569740.23696-0.836038-0.8
    10+1-0.8823530.1155780.0163934-0.737374-0.56974-0.28465-0.948762-0.933333
  3. 次の図に示すパイプラインを作成します。詳細については、「アルゴリズムモデリング」をご参照ください。

    image.png

  4. 線形 SVM コンポーネントに対して、次の表にリストされているパラメーターを設定します。他のすべてのパラメーターはデフォルト値のままにします。

    タブパラメーター
    フィールド設定特徴量カラムf0、f1、f2、f3、f4、f5、f6、および f7 を選択します。
    フィールド設定ラベルカラムy を選択します。
  5. パイプラインを実行し、予測結果を表示します。Prediction results