SVMLight への変換

重要

Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。

2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。

ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。

SVM-Light フレームワークによって使用される形式にデータ入力を変換します

カテゴリ: データ形式の変換

注意

適用対象: Machine Learning Studio (クラシック) のみ

類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。

モジュールの概要

この記事では、Machine Learning Studio (クラシック) の [SVMLight に変換] モジュールを使用して、データセットを SVMLight で使用される形式に変換する方法について説明します。

SVM-Light フレームワークはコーネル大学の研究者によって開発されました。 SVM-Light ライブラリは Vapnik のサポート ベクター マシンを実装しますが、形式は他の場所で採用され、分類や回帰などの多くの機械学習タスクに使用できます。

詳細については、「 SVMLight サポート ベクター マシン」を参照してください

SVMLight への変換を構成する方法

SVMLight 形式への変換では、各ケースをラベルで始まるデータ行に変換し、続いてコロンで区切られた数値で表される特徴と値のペアに変換する必要があります。 変換プロセスでは 正しい 列が自動的に識別されないので、変換を試みる前にデータセット内の列を準備することが重要です。 詳細については、「変換のための データの準備」を参照してください

  1. [SVMLight に変換] モジュールを実験に追加します。 このモジュールは、Machine Learning Studio (クラシック) の [データ形式変換] カテゴリで確認できます。

  2. Connect変換するデータセットまたは出力を SVMLight 形式に変換します。

  3. 実験を実行します。

  4. モジュールの出力を右クリックし、 [ダウンロード] を選択し、データをローカル ファイルに保存して変更したり、SVMLight をサポートするプログラムで再利用したりします。

変換のためのデータの準備

変換プロセスを示す場合、この例では Studio (クラシック) の [Blood Dataset ] データセットを使用します。

このサンプル データセットの形式は表形式です。

頻度 頻度 金融 Time クラス
2 50 12500 98 1
0 13 3250 28 1
1 1 4000 35 1
2 20 5000 45 1
1 24 6000 77 0

このデータセットの [Class] という名前のラベル列が、テーブルの最後の列です。 ただし、最初にどの列にラベルが含まれているか示さずにデータセットを SVMLight に変換すると、最初の列 [Recency] がラベルとして使用され、[Class] 列が特徴として扱われる。

2 1:50 2:12500 3:98 4:1
0 1:13 2:3250 3:28 4:1
1 1:16 2:4000 3:35 4:1

各ケースの行の先頭でラベルが正しく生成されるようにするには、メタデータの編集モジュールの 2 つのインスタンス を追加する必要 があります。

  1. [メタデータの編集] の最初のインスタンスで、ラベル列 ([クラス]) を選択し、[フィールド] で [ ラベル] を選択 します

  2. [メタデータの編集] の 2 番目のインスタンスで、変換されたファイルに必要なすべての特徴列 ([Recency]、[Frequency]、[通貨]、[時間]) を選択し、[フィールド] で [特徴] を選択します。

列が正しく識別された後、 SVMLight への変換モジュールを実行 できます。 変換後、今度は、Blood Dataset の最初の数行に次の形式が設定されます。

  • 各エントリの前にラベル値が続き、[Recency]、[Frequency]、[Monetary]、および [Time] の値が続き、それぞれ特徴 1、2、3、4 として識別されます。

  • 5 行目のラベル値 0 は -1 に変換されました。 これは、SVMLight が二項分類ラベルのみをサポートしているためです。

1 1:2 2:50 3:12500 4:98
1 1:0 2:13 3:3250 4:28
1 1:1 2:16 3:4000 4:35
1 1:2 2:20 3:5000 4:45
-1 1:1 2:24 3:6000 4:77

このテキスト データは、Azure MLモデルに直接使用したり、視覚化したりすることはできません。 ただし、ローカル共有にダウンロードできます。

ファイルを開 #いている間は、ソースまたは元の特徴列名に関するメモを追加できるよう、 で前にコメント行を追加することをお勧めします。

Vowpal Wabbit で SVMLight ファイルを使用し、次の説明に従って追加の変更を行う場合: Vowpal Wabbit 形式への変換。 ファイルの準備ができたら、Azure Blob Storage にアップロードし、Vowpal Wabbit モジュールの 1 つから直接呼び出します。

この形式に 固有の Azure AI Gallery例はありません。

テクニカル ノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

使用上のヒント

SVM-Light フレームワークで提供される実行可能ファイルには、サンプル ファイルとモデル ファイルの両方必要です。 ただし、このモジュールでは、サンプル ファイルのみが作成されます。 SVMLight ライブラリを使用して、モデル ファイルを個別に作成する必要があります。

サンプル ファイルは、トレーニングの例を含むファイルです。

  • オプション ヘッダー

    最初の行にはコメントを含めできます。 コメントには番号記号 (#) を前に付ける必要があります。

    SVMLight への変換によって出力されるファイル形式では、ヘッダーは作成されません。 ファイルを編集して、コメントや列名の一覧を追加できます。

  • トレーニング データ

    各ケースは独自の行に含されます。 ケースは、ターゲット値の後に一連のインデックスと関連する特徴値で構成されます。

    応答値は、分類の場合は 1 または -1、回帰の場合は数値となる必要があります。

    ターゲット値と、それぞれのインデックス値ペアは、スペースで区切られます。

トレーニング データの例

次の表は、Two-Class Iris データセットの列の値を、各列がインデックスで表され、コロン、その列の値が続く表現に変換される方法を示しています。

Iris データセット SVMLight に変換された Iris データセット
1 6.3 2.9 5.6 1.8 1 1:6.3 2:2.9 3:5.6 4:1.8
0 4.8 3.4 1.6 0.2 -1 1:4.8 2:3.4 3:1.6 4:0.2
1 7.2 3.2 6 1.8 1 1:7.2 2:3.2 3:6 4:1.8

変換では、特徴列の名前が失われる点に注意してください。

SVMLight を使用して Vowpal Wabbit ファイルを準備する

SVMLight 形式は、Vowpal Wabbit で使用される形式に似ています。 SVMLight 出力ファイルを Vowpal Wabbit モデルのトレーニングに使用できる形式に変更するには、ラベルと特徴の一覧の間にパイプ記号を追加します。

たとえば、次の入力行を比較します。

Vowpal Wabbit 形式 (省略可能なコメントを含む)

# features are [Recency], [Frequency], [Monetary], [Time]
1 | 1:2 2:50 3:12500 4:98
1 | 1:0 2:13 3:3250 4:28

SVMLight 形式 (省略可能なコメントを含む)

# features are [Recency], [Frequency], [Monetary], [Time]
1 1:2 2:50 3:12500 4:98
1 1:0 2:13 3:3250 4:28

想定される入力

名前 説明
データセット データ テーブル 入力データセット

出力

名前 説明
結果のデータセット SvmLight 出力データセット

関連項目

データ形式の変換
モジュールの一覧 (アルファベット順)