これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド autoclass です。
プログラム:
NAME
autoclass - データ内のクラスを自動的に検出します
SYNOPSIS
自動クラス -サーチ データファイル ヘッダーファイル モデルファイル s_param_file
自動クラス -報告する 結果ファイル 検索ファイル r_params_file
自動クラス -予測する 結果ファイル 検索ファイル 結果ファイル
DESCRIPTION
オートクラス データ内のクラスの自動検出の問題 (とも呼ばれます) を解決します。
クラスタリング、または教師なし学習)、クラスの生成とは異なります
ラベル付きの例からの説明 (教師あり学習と呼ばれます)。 を発見することを目的としています。
データ内の「自然な」クラス。 オートクラス できるものの観察に適用できます。
他のものを参照することなく、一連の属性によって記述されます。 データ値
各属性に対応するものは、数値または要素のいずれかに限定されます。
シンボルの固定セット。 数値データの場合は、測定誤差を与える必要があります。
オートクラス は、見つけられるデータの最適な分類を探しています。 あ
分類は次のもので構成されます。
1) クラスのセット。各クラスはクラス パラメーターのセットによって記述されます。
さまざまな属性に沿ってクラスがどのように分散されるかを指定します。 例えば、
「身長は平均 4.67 フィート、標準偏差 32 フィートで正規分布します」、
2) クラスの重み付けのセット。ケースの何パーセントが該当する可能性があるかを記述します。
各クラス。
3) データ内のケースをこれらのクラスに確率的に割り当てます。 つまり、それぞれ
場合、それが各クラスのメンバーである相対確率。
厳密なベイジアン システム (代替品は受け入れません!) として、品質尺度は オートクラス 使用されます
データやそのドメインについて何も知らなかった場合に、
この基礎となるモデルによって生成されたこのデータ セットを見つけたはずです。 これには、
「世界」がこの数のクラス、このセットを選択する事前確率
相対的なクラスの重み、各クラスのパラメータのセット、および次の可能性
このようなクラスのセットは、次の属性の値のセットを生成します。
データケース。
これらの確率は通常、e^-30000 の範囲で非常に小さいため、通常は
指数表記で表します。
で実行すると、 -サーチ コマンド、 オートクラス 分類を検索します。 必須
引数は、データ、データ形式、
それぞれ、目的の分類モデルと検索パラメータです。
デフォルトでは、 オートクラス 中間結果をバイナリ ファイルに書き込みます。 とともに -報告する
コマンド、 オートクラス ASCII レポートを生成します。 引数はフルパス名です。
.results、.search、および .r-params ファイル。
で実行すると、 -予測する コマンド、 オートクラス 「テスト」のクラスメンバーシップを予測します
「トレーニング」データセットで見つかったクラスに基づくデータセット (以下の「予測」を参照)。
入力 ファイル
AutoClass データ セットは 2 つのファイルに存在します。 ヘッダー ファイル (ファイル タイプ "hdXNUMX") があります。
では、特定のデータ形式と属性の定義について説明します。 実際のデータ値は次のとおりです。
データ ファイル (ファイル タイプ「db2」)。 データ説明の編集を可能にするために XNUMX つのファイルを使用します
データセット全体を扱う必要がなくなります。 これにより、実験が簡単になります
データセットを再現することなく、データベースのさまざまな記述を行うことができます。
内部的には、AutoClass データベース構造はヘッダー ファイルとデータ ファイルによって識別されます。
ロードされたデータの数。
これらのファイルの形式の詳細については、次を参照してください。
/usr/share/doc/autoclass/preparation-c.text.
DATA FILE
データ ファイルには、データの終わりまでに終了する一連のデータ オブジェクト (データまたはケース) が含まれています。
ファイル。 各データ オブジェクトの値の数は、
ヘッダー ファイルで定義された属性。 データ オブジェクトは、次のように区切られたトークンのグループである必要があります。
「改行」。 属性は、REAL、DISCRETE、または DUMMY として型指定されます。 実際の属性値は次のとおりです。
整数または浮動小数点の数値。 個別の属性値は文字列にすることができます。
記号または整数。 ダミー属性値は、次のいずれかのタイプになります。 ダミーが読み取られます
それ以外の場合は無視されます。内部データベースではゼロに設定されます。 したがって
実際の値はレポート出力には使用できません。 これらの属性を持つには
使用可能な値は、REAL 型または DISCRETE 型のいずれかを使用し、そのモデル タイプを次のように定義します。
.model ファイルで IGNORE を指定します。 属性タイプの欠損値は次のように表すことができます。
「?」、またはヘッダー ファイルで指定された他のトークン。 すべてが特別なものに変換されます
読み取られた後は一意の値になるため、このシンボルは事実上、不明/欠落用に予約されます。
値。
具体的な例を挙げますと、以下の通りです。
ホワイト 38.991306 0.54248405 2 2 1
赤 25.254923 0.5010235 9 2 1
黄色 32.407973 ? 8 2 1
オールホワイト 28.953982 0.5267696 0 1 1
ヘッダ FILE
ヘッダー ファイルはデータ ファイル形式とデータの定義を指定します。
属性。 ヘッダー ファイルの機能仕様は、データという XNUMX つの部分で構成されます。
フォーマット定義仕様と属性記述子を設定します。 ";" 列 1 に
コメントを識別します。
ヘッダー ファイルは次の一般的な形式に従います。
;; num_db2_format_defs 値 (フォーマット定義行数)
;; 以下に続きます)、n の範囲は 1 -> 5 です
num_db2_format_defs n
;; number_of_attributes トークンと値が必要です
属性数
;; 以下はオプションです - デフォルト値が指定されています
区切り文字 ' '
コメント文字 ';'
不明なトークン「?」
separator_char ','
;; 属性記述子
;;
;;
各属性記述子は次の行で構成されます。
属性インデックス (1 から始まり、列 XNUMX から始まります)
属性のタイプ。 下記参照。
属性のサブタイプ。 下記参照
属性の説明: 記号 (空白は埋め込まれません) または
弦; <= 40 文字
特定のプロパティと値のペア。
現在利用可能な組み合わせ:
タイプ サブタイプ プロパティ タイプ
---- -------- ---------------
ダミーなし/なし --
個別の公称範囲
実際の位置エラー
実数スカラー zero_point rel_error
ERROR プロパティは、予想される平均誤差の最良の推定値を表す必要があります。
その実際の属性の測定と記録。 より良い情報が不足しているため、
誤差は、測定値間の最小可能差の 1/2 として捉えることができます。 できる
実際の値はしばしば切り捨てられるため、より小さな誤差が正当化される可能性があると主張されるかもしれませんが、
特に生成されたデータの場合。 ただし、AutoClass は記録された値のみを参照します。 それはそう
実際の測定誤差ではなく、記録された値の誤差が必要です。 設定
この誤差が表現可能な最小の差よりもはるかに小さいということは、次の可能性を意味します。
データでは表現できない値。 さらに悪いことに、XNUMX つの同一の値が存在することを意味します。
実際よりもはるかに近い測定値を表す必要があります。
これは分類の過剰適合につながります。
REL_ERROR プロパティは、誤差が実数に比例する場合に SCALAR 実数に使用されます。
測定値。 ERROR プロパティはサポートされていません。
AutoClass は、誤差を正規分布の幅の下限として使用します。 それで
誤差推定値が小さいと、ピークが狭くなり、両方の数が増加する傾向があります。
クラスと分類確率。 広範な誤差推定値は、
クラスの数。
スカラー ZERO_POINT プロパティは、測定プロセスが取り得る最小値です。
生産してきました。 多くの場合、これは 0.0、または何らかの誤差の範囲でそれ以下になります。 同様に、有界
real の min プロパティと max プロパティは、属性生成プロセスの排他的な境界です。
計算されたパーセンテージの場合、これらは 0-e および 100+e になります。ここで、e は誤差値です。 の
個別属性の範囲は、属性が取り得る値の数です。
このような値が発生する場合、この範囲には値として不明な値が含まれている必要があります。
ヘッダー ファイルの例:
!#; AutoClass C ヘッダー ファイル -- 拡張子 .hd2
!#; 列 1 の次の文字は、その行をコメントにします。
!#; 「!」、「#」、「;」、「 」、「\n」(空行)
;#! num_db2_format_defs
num_db2_format_defs 2
;; 必要
属性数 7
;; オプション - デフォルト値が指定されます
;; 区切り文字 ' '
;; コメント文字 ';'
;; 不明なトークン「?」
separator_char ','
;;
0 ダミー nil "真のクラス、範囲 = 1 - 3"
1 つの実際の位置「X 位置、m. 25.0 ~ 40.0 の範囲内」エラー .25
2 実際の位置「Y 位置、m. 0.5 ~ 0.7 の範囲」エラー .05
3 実数スカラー "重量、kg。5.0 ~ 10.0 の範囲" zero_point 0.0
rel_error .001
4 ディスクリート公称「真理値、範囲 = 1 ~ 2」 範囲 2
5 つの個別公称「foobar の色、10 値」範囲 10
6 個別の公称 Spectral_color_group 範囲 6
MODEL FILE
データセットの分類は、次の形式を指定するモデルに関して行われます。
そのデータセット内のクラスの確率分布関数。 通常はモデル
構造は、XNUMX つ以上のモデルを含むモデル ファイル (ファイル タイプ「model」) で定義されます。
内部的には、モデルは特定のデータベースに関連して定義されます。 こうして特定される
対応するデータベース、モデルのモデル ファイル、およびそのモデル内の順序位置によって決まります。
ファイルにソフトウェアを指定する必要があります。
各モデルは XNUMX つ以上のモデル グループ定義行によって指定されます。 各モデルグループ
行は、属性インデックスをモデル用語タイプに関連付けます。
モデル ファイルの例を次に示します。
# AutoClass C モデル ファイル -- 拡張子 .model
モデル_インデックス 0 7
0を無視する
シングル_ノーマル_cn 3
シングルノーマルcn 17 18 21
マルチ_ノーマル_cn 1 2
multi_normal_cn 8 9 10
multi_normal_cn 11 12 13
単一多項式のデフォルト
ここで、最初の行はコメントです。 列 1 に次の文字があると、その行は
コメント: `!'、`#'、` '、`;'、および `\n' (空行)。
トークン「model_index」 n m" は、コメント以外の最初の行に、「
モデル用語の定義行。 n はゼロから始まるモデル インデックスで、通常、存在する場合は 0 になります。
モデルは XNUMX つだけで、ほとんどの検索状況で使用されます。 m はモデル項の数です
続く定義行。
最後の XNUMX 行はモデル グループ行です。 各モデル グループ ラインは次のもので構成されます。
モデル用語のタイプ (次のいずれか) 単数多項式, シングル_通常_cm, single_normal_cn,
multi_normal_cnまたは 無視する).
属性インデックスのリスト (属性セット リスト)、またはシンボル デフォルト。 属性
インデックスはゼロベースです。 単一のモデル項には XNUMX つ以上の属性インデックスが含まれる場合があります。
一方、マルチモデル項では XNUMX 行に XNUMX つ以上の属性インデックスが必要です。 アン
属性インデックスはモデル リスト内に複数回出現してはなりません。
注意:
1) 少なくとも XNUMX つのモデル定義が必要です (model_index トークン)。
2) 任意のモデル項タイプのモデル内に複数のエントリが存在する可能性があります。
3) モデル用語タイプは現在次のもので構成されています。
単数多項式
離散属性を欠損値を含む多項式としてモデル化します。
single_normal_cn
実数値の属性を法線としてモデル化します。 欠損値はありません。
シングル_通常_cm
欠損値のある実際の値の属性をモデル化します。
multi_normal_cn
は、欠損値のない共変正規モデルです。
無視する モデルが XNUMX つ以上の属性を無視できるようにします。 無視する は有効ではありません
デフォルトのモデル用語タイプ。
特定のモデルの詳細については、models-c.text のドキュメントを参照してください。
条項。
4) Single_normal_cn, シングル_通常_cm, multi_normal_cn モデル化されたデータ、そのサブタイプ
is スカラー (値の分布は 0.0 から離れているため、「正規」ではありません
分布) は対数変換され、対数正規モデルでモデル化されます。 ために
サブタイプが次のデータ 場所 (値の分布は約 0.0)、変換は行われません。
完了し、通常のモデルが使用されます。
検索
AutoClass は、「検索」モードで呼び出されると、データ セットの有効性をチェックします。
ヘッダー、モデル、および検索パラメーター ファイル。 エラーが発生すると検索が開始されなくなります。
警告により、続行するかどうかがユーザーに尋ねられます。 エラーと警告の履歴
メッセージはデフォルトでログ ファイルに保存されます。
ヘッダー ファイルとモデル ファイルを使用してデータを記述することに成功したら、
AUTOCLASS -SEARCH <...> 入力チェックに合格すると、検索ドメインを入力したことになります。
コラボレー オートクラス データを分類します。 (やっと!)
データの適切な分類を見つけるために使用する主な関数は AUTOCLASS です。
-SEARCH を使用すると、計算時間の大部分がかかります。 検索は次のコマンドで呼び出されます。
autoclass -search <.db2 ファイル パス> <.hd2 ファイル パス>
<.model ファイルのパス> <.s-params ファイルのパス>
すべてのファイルは、完全修飾相対パス名または絶対パス名として指定する必要があります。 ファイル名
すべてのファイルの拡張子 (ファイル タイプ) は、強制的に、
AutoClass プログラム:
データ ファイル (「ascii」) db2
データ ファイル (「バイナリ」) db2-bin
ヘッダー ファイル hd2
モデルファイル モデル
params ファイルの検索 s-params
サンプル実行 (/usr/share/doc/autoclass/examples/)付属の オートクラス いくつかを示しています
サンプル検索を行って、これらを閲覧するのが、おそらくその方法を理解する最も早い方法です。
検索を行うため。 テスト データ セットは次の場所にあります。 /usr/share/doc/autoclass/examples/ 意志
他のヘッダー (.hd2)、モデル (.model)、および検索パラメーター (.s-params) ファイルを示します。
セットアップ。 このセクションの残りの部分では、もう少し詳しく検索を行う方法について説明します。
詳細。
当学校区の 大胆な 直面して 以下のトークンは通常、検索パラメータ ファイルのパラメータです。 多くのための
s-params ファイルに関する情報については、を参照してください。 検索 パラメーター 以下、または
/usr/share/doc/autoclass/search-c.text.gz.
WHAT 結果 です
オートクラス は、見つけられるデータの最適な分類を探しています。 あ
分類は次のもので構成されます。
1) クラスのセット。各クラスはクラス パラメーターのセットによって記述されます。
さまざまな属性に沿ってクラスがどのように分散されるかを指定します。 例えば、
「身長は平均 4.67 フィート、標準偏差 32 フィートで正規分布します」、
2) クラスの重みのセット。ケースの何パーセントが該当する可能性があるかを記述します。
各クラス。
3) データ内のケースをこれらのクラスに確率的に割り当てます。 つまり、それぞれ
場合、それが各クラスのメンバーである相対確率。
厳密なベイジアン システム (代替品は受け入れません!) として、品質尺度は オートクラス 使用されます
データやそのドメインについて何も知らなかった場合に、
この基礎となるモデルによって生成されたこのデータ セットを見つけたはずです。 これには、
「世界」がこの数のクラス、このセットを選択する事前確率
相対的なクラスの重み、各クラスのパラメータのセット、および次の可能性
このようなクラスのセットは、次の属性の値のセットを生成します。
データケース。
これらの確率は通常、e^-30000 の範囲で非常に小さいため、通常は
指数表記で表します。
WHAT 結果 MEAN
これらの確率はすべて、実際のモデルが
はモデルファミリーに属しています オートクラス に注意を限定しました。 もしも オートクラス is
ガウス クラスを探していて、実際のクラスはポアソンであるという事実は、
オートクラス 5 つのガウス クラスが見つかりましたが、そこにポアソン クラスがいくつあるかについてはあまり言えないかもしれません。
実際にある。
見つかった異なる分類間の相対確率は、次のように非常に大きくなる可能性があります。
e^1000 であるため、見つかった最良の分類は、通常、分類よりも圧倒的に確率が高くなります。
残り(そしてこれまでのどのより優れた分類よりも確率が圧倒的に低い)
未発見)。 もしも オートクラス の範囲内にある XNUMX つの分類をなんとか見つける必要があります。
お互いに約 exp(5-10) (つまり、確率が 100 ~ 10,000 倍以内) である場合、
私たちの計算は通常それ以上ではないので、それらはほぼ同じ確率であると考えるべきです。
これよりも正確です (場合によってははるかに低い場合もあります)。
HOW IT WORKS
オートクラス ランダムな分類を繰り返し作成し、これをマッサージして分類しようとします。
局所的な変化はあるものの、ある「局所的な」状態に収束するまで、確率の高い分類が行われます。
次に、見つかった内容を記憶し、最初からやり直して、あなたが満足するまで続けます。
やめるよう言ってください。 それぞれの努力は「トライ」と呼ばれ、計算された確率が意図されます。
だけではなく、この最大値付近のパラメータ空間内のボリューム全体をカバーします。
ピーク。
マッサージの標準的なアプローチは、
1) クラスパラメータとを使用して、ケースの確率的クラスメンバーシップを計算します。
暗黙の相対的可能性。
2) 新しいクラス メンバーを使用して、クラス統計 (平均など) を計算し、
クラスパラメータ。
変化が止まるまで繰り返します。 使用可能な収束アルゴリズムは XNUMX つあります。
「converge_search_3」 (デフォルト)、「converge_search_4」、「converge」。 彼らの
仕様は検索パラメータファイルパラメータによって制御されます try_fn_type.
WHEN に STOP
AUTOCLASS -SEARCH に次のように停止するように指示できます。 1) max_duration (秒単位) 引数
初めに。 2) を与える max_n_tries (整数) 引数が先頭にあります。 または 3) までに
「q」を入力すると、 十分なトライを見た後。 の max_duration
max_n_tries 引数は、バッチ モードで AUTOCLASS -SEARCH を実行する場合に便利です。 もしも
前回の検索から AUTOCLASS -SEARCH を再開すると、次の値が返されます。 max_n_tries フォーム
たとえば 3 を指定すると、プログラムに、さらに 3 回の試行を計算するように指示します。
たとえそれがすでに多く行われたとしても。 同じ増分動作が次の場合にも示されます。
max_duration.
いつ停止するかを決めるのは判断であり、それはあなた次第です。 検索には
ランダムなコンポーネントなので、そのままにしておくと、見つかる可能性が常にあります。
もっと良い何か。 したがって、どの程度の効果が得られるかということと、どれくらいの期間を費やすかをトレードオフする必要があります。
それを見つけるのに時間がかかるかもしれません。 新しいベストが見つかったときに印刷される検索ステータス レポート
分類が見つかった場合は、これを行うのに役立つ情報を提供することを目的としています。
トレード・オフ。
おそらく停止すべきであるという明らかな兆候の XNUMX つは、見つかった分類のほとんどが次のような場合です。
以前のものの重複 (見つかったときに「dup」のフラグが付けられます)。 これだけが起こるはずです
非常に小さなデータセットの場合、または XNUMX つなどの非常に少数のクラスを修正する場合。
私たちの経験では、中規模から非常に大規模なデータ セット (約 200 ~ 約 10,000)
データム)、実行する必要があります オートクラス 少なくとも 50 回のトライアル。
WHAT 取得 戻ってきた
戻る直前に、AUTOCLASS -SEARCH は最高の機能についての短い説明を提供します。
分類が見つかりました。 記述される数は次のように制御できます。 n_final_summary.
デフォルトでは、AUTOCLASS -SEARCH は、最後と最後に多数のファイルを書き込みます。
検索中に定期的に実行します (終了前にシステムがクラッシュした場合に備えて)。 これらは
ファイルはすべて同じ名前になります (検索パラメータのパス名 [ .s-
params]) であり、ファイル拡張子のみが異なります。 検索実行が非常に長く、
マシンがクラッシュする可能性がありますが、中間の「結果」が得られる可能性があります。
書き出されたファイル。 これらを使用すると、損失を最小限に抑えて検索実行を再開できます。
捜索努力。 ドキュメントファイルを参照してください /usr/share/doc/autoclass/checkpoint-c.text.
「.log」ファイルには、実行中に画面に出力された内容のほとんどのリストが保持されます。
設定しない限り実行します ログファイル_p そんな愚かなことはしたくないと言うのは間違いだ。 そうでもなければ
結果ファイル_p false の場合、バイナリ「.results-bin」ファイル (デフォルト) または ASCII「.results」
テキスト ファイルには、返された最良の分類が保持されます。 検索ファイル_p
false の場合、「.search」ファイルに検索試行の記録が保持されます。 保存_コンパクト_p
「結果」ファイルをバイナリとして保存するか、ASCII テキストとして保存するかを制御します。
C グローバル変数「G_safe_file_writing_p」が「autoclass-」で TRUE として定義されている場合
c/prog/globals.c"、「結果」ファイルの名前 (保存された結果が含まれるファイル)
分類)は、冗長なファイル書き込みを考慮して内部的に変更されます。 もし
params ファイル名を「my_saved_clsfs」として検索すると、次の「結果」ファイルが表示されます。
名前 (この例ではディレクトリとパス名を無視します)
保存_コンパクト_p =本当 --
「my_saved_clsfs.results-bin」 - 完全に書き込まれたファイル
「my_saved_clsfs.results-tmp-bin」 - 部分的に書き込まれたファイル、名前が変更されました
完了したら
保存_コンパクト_p = 偽 --
「my_saved_clsfs.results」 - 完全に書き込まれたファイル
「my_saved_clsfs.results-tmp」 - 部分的に書き込まれたファイル、名前が変更されました
完了したら
チェックポイントが行われている場合、これらの追加の名前が表示されます
保存_コンパクト_p =本当 --
「my_saved_clsfs.chkpt-bin」 - 完全に書き込まれたチェックポイント ファイル
「my_saved_clsfs.chkpt-tmp-bin」 - 部分的に書き込まれたチェックポイント ファイル、
完了時に名前が変更される
保存_コンパクト_p = 偽 --
「my_saved_clsfs.chkpt」 - 完全に書き込まれたチェックポイント ファイル
「my_saved_clsfs.chkpt-tmp」 - 部分的に書き込まれたチェックポイント ファイル、
完了時に名前が変更される
HOW に GET 開始しました
AUTOCLASS -SEARCH を呼び出す方法は次のとおりです。
autoclass -search <.db2 ファイル パス> <.hd2 ファイル パス>
<.model ファイルのパス> <.s-params ファイルのパス>
以前の検索を再開するには、次のように指定します force_new_search_p の値は false です
デフォルトは true なので、params ファイルを検索します。 false を指定すると、AUTOCLASS -SEARCH に指示されます。
以前の互換性のある検索 (<...>.results[-bin] & <...>.search) の検索を試みます。
から続行し、見つかった場合は使用を再開します。 代わりに新しい検索を強制するには
古いものを再起動するには、パラメータを指定します force_new_search_p true の値、または
デフォルト。 既存の検索 (<...>.results[-bin] & <...>.search) がある場合、ユーザー
続行すると既存の検索が破棄されるため、続行を確認するように求められます。
以前の検索を継続する場合は、代わりに「検索を再開しています」というメッセージが表示されます。
いつもの「BEGINNING SEARCH」。 通常は、以前の検索を続行することをお勧めします
大幅に異なる検索方法を試している場合を除き、新しい検索方法を開始するよりも
この場合、以前の検索の統計が現在の検索を誤解させる可能性があります。
ステータス レポート
検索に関する実行中のコメントが画面とログ ファイルに出力されます。
(ただし、 ログファイル_p は誤りです)。 「.log」ファイルには、すべてのファイルのリストが含まれることに注意してください。
デフォルトの検索パラメータ値、およびオーバーライドされるすべてのパラメータの値。
各試行後に、非常に短いレポート (わずか数文字) が提供されます。 新しいたびに
最良の分類では、より長いレポートが提供されますが、それ以上の頻度ではありません。 min_report_period
(デフォルトは 30 秒です)。
検索 バリエーション
AUTOCLASS -SEARCH はデフォルトで特定の標準検索方法または「try function」を使用します。
(try_fn_type = "converge_search_3")。 他の 4 つも利用できます:「converge_search_XNUMX」
そして「収束」)。 これらは、お客様の問題が利益につながる可能性がある場合に備えて提供されます。
彼らからは。 一般に、デフォルトの方法では、より適切な分類が見つかります。
検索時間が長くなるという犠牲が発生します。 デフォルトは堅牢になるように選択されています。
多くの問題にわたって均一なパフォーマンスを実現します。 デフォルトの代替案は、
いくつかの問題がありますが、他の問題では大幅に悪化する可能性があります。
「converge_search_3」は絶対停止基準を使用します(rel_delta_range、デフォルト値は
0.0025) これは、対数近似のデルタの各クラスの変動をテストします。
クラス仮説に関するクラス統計の周辺尤度
(class->log_a_w_s_h_j) を連続するクラス間のクラスの重み (class->w_j) で割った値
収束サイクル。 この値を増やすと収束が緩くなり、数値が減少します。
サイクルの。 この値を減らすと収束が厳しくなり、
サイクル。 n_平均 (デフォルト値 3) は、次のサイクルが何回連続する必要があるかを指定します。
トライアル終了前の停止基準。
「converge_search_4」は絶対停止基準を使用します(cs4_delta_range、デフォルト値は
0.0025) これは、対数の各クラスの傾きの各クラスの変動をテストします。
クラスに関するクラス統計の近似周辺尤度
仮説 (class->log_a_w_s_h_j) をクラスの重み (class->w_j) で割った値
sigma_beta_n_values (デフォルト値 6) 収束サイクル。 の価値を高める
cs4_delta_range 収束を緩め、サイクル数を減らします。 これを減らすと
値を指定すると収束が強化され、サイクル数が増加します。 計算上、これは
try 関数は「converge_search_3」よりも高価ですが、
計算上の「ノイズ」は、計算値の変動に比べて顕著です。
主要な計算は倍精度浮動小数点で行われ、最大のデータに対して行われます。
これまでにテストしたベース (5,420 属性の 93 件)、計算上のノイズは検出されませんでした。
の値は問題でしたが、 max_cycles 400まで増やす必要がありました。
「converge」は、変化をテストする XNUMX つの絶対停止基準の XNUMX つを使用します。
分類 (clsf) log_marginal (clsf->log_a_x_h) 連続する収束間のデルタ
サイクル。 最大のもの 停止範囲 (デフォルト値 0.5) および 停止要因 *
current_clsf_log_marginal) が使用されます (デフォルト値は 停止要因 は 0.0001)。 増加中
これらの値は収束を緩め、サイクル数を減らします。 これらを減らすことで
値を大きくすると収束が強化され、サイクル数が増加します。 n_平均 (デフォルト
3) の値は、トライアルの前に停止基準を満たさなければならないサイクル数を指定します。
終了します。 これは非常に大まかな停止基準ですが、ある程度の感覚は得られます。
期待される分類の種類について。 「探索的」検索に役立ちます
データベースの。
の目的 再収束タイプ = "chkpt" は、中断された分類を完了することです。
最後のチェックポイントから継続します。 の目的 再収束タイプ =「結果」とは、
の異なる値を使用して、最もよく完成した分類をさらに改良してみます。
try_fn_type (「converge_search_3」、「converge_search_4」、「converge」)。 もしも max_n_tries is
1 より大きい場合、それぞれの場合において、再収束が完了した後、 オートクラス 意志
<...>.s-params ファイル内のパラメータ値に基づいて、さらに検索試行を実行します。
を使用して 再収束タイプ (デフォルト値「」)、複数の試行を適用できます
分類に機能します。 次を使用していくつかの探索的トライアルを生成するとします。
try_fn_type = "converge" とし、.search ファイルと .results[-bin] ファイルを保存して検索を終了します。
次に、次のコマンドで別の検索を開始できます try_fn_type = "converge_search_3", 再収束タイプ
= 「結果」、および max_n_tries = 1。これにより、最適な値がさらに収束します。
で生成された分類 try_fn_type = 「収束」、 try_fn_type =
「converge_search_3」。 いつ オートクラス この検索試行を完了すると、
追加の洗練された分類。
代替手段のいずれかが有効であることを確認する良い方法 try_fun_type 井戸を生成している
統合分類が実行されます オートクラス に使用されたのと同じデータの予測モードで
分類を生成します。 次に、対応するケースまたはクラスを生成して比較します。
元の分類と予測のための相互参照ファイル。 小さい
これらのファイル間の違いは予期されるものですが、大きな違いがある場合は、
不完全な収束。 このようなファイル ペア間の差異は、平均してモジュロで次のようになります。
クラスの削除は、収束が進むにつれて単調に減少します。
試行を開始するためにランダムな分類を作成する標準的な方法は、デフォルトの
「ランダム」の値 start_fn_type。 現時点では代替手段はありません。 指定する
の「ブロック」 start_fn_type 反復可能な非ランダム検索を生成します。 このようにして、
autoclass-c/data/.. サブディレクトリ内の <..>.s-params ファイルが指定されています。 こうやって
開発テストが行われます。
max_cycles 任意のタイミングで実行される収束サイクルの最大数を制御します。
収束関数による 200 回の試行。 デフォルト値は XNUMX です。 画面出力
は、完了した各サイクルのピリオド (「.」) を示します。 検索トライアルを 200 サイクル実行すると、
その場合、データベースが非常に複雑である (値を増やす) か、 try_fn_type ではありません
状況に応じて適切です (利用可能な別のものを試して、次を使用してください) converge_print_p 取得するため
何が起こっているかについての詳細情報)。
指定 converge_print_p true の場合、サイクルごとに簡単なプリントアウトが生成されます。
これにより、デフォルト値を変更できるように情報が提供されます。
rel_delta_range & n_平均 「converge_search_3」の場合; cs4_delta_range & sigma_beta_n_values
「converge_search_4」の場合; と 停止範囲, 停止要因, n_平均 「収束」のために。 彼らの
デフォルト値は、autoclass-c/data/.. サブディレクトリの <..>.s-params ファイルに指定されています。
ディレクトリ。
HOW MANY クラス?
新しい試行はそれぞれ、特定の数のクラスで始まり、最終的にはより少ない数になる可能性があります。
一部のクラスが収束から外れる可能性があるためです。 一般に、試してみたいと思うのは、
以前の試行で有望であることが示されたいくつかのクラスについては、
以前に何かを逃した場合に備えて、他の場所で釣りをしていることを確認したいと思います。
n_classes_fn_type = "random_ln_normal" がこの選択を行うデフォルトの方法です。 それは
ベスト 10 のクラス (通常、略して「j」と呼ばれます) の数に正規の対数を返します。
これまでに見つかった分類を選択し、その中からランダムに選択します。 現在はありません
選択肢。
ゲームを開始するには、デフォルトではダウンします。 start_j_list 最初の数回の試行では、
に切り替えます n_classes_fn_type。 おそらくクラスの数が次のように考えられる場合は、
データベースがたとえば 75 の場合、デフォルト値の代わりに start_j_list (2、3、
5、7、10、15、25)、50、60、70、80、90、100 のように指定します。
たとえば XNUMX つのクラスを常に探したい場合は、次のように使用できます。 固定_j をオーバーライドします
その上。 検索ステータス レポートには、j を選択するための現在の方法がどのようなものであるかが記載されます。
DO I HAVE 足りる MEMORY そして ディスク 空?
内部的には、現在のシステムのストレージ要件は n_classes_per_clsf のオーダーです。
* (n_data + n_stored_clsfs * n_attributes * n_attribute_values)。 これは、
ケースの数、属性の数、属性ごとの値 (実際の場合は 2 を使用)
値)、および他の分類が適切かどうかを確認するために保存された分類の数。
重複 -- によって制御されます max_n_store (デフォルト値 = 10)。 検索プロセスでは、
それ自体が大量のメモリを消費しますが、結果の保存でもメモリを消費する可能性があります。
オートクラス C 最大 999 個の属性を処理するように構成されています。 実行しようとすると
それを超えると、配列境界違反が発生します。 その場合はこちらを変更してください
prog/autoclass.h の構成パラメータを指定して再コンパイルする オートクラス C:
#定義 ALL_ATTRIBUTES 999
#定義VERY_LONG_STRING_LENGTH 20000
#定義VERY_LONG_TOKEN_LENGTH 500
たとえば、次の値は数千の属性を処理します。
#定義 ALL_ATTRIBUTES 9999
#定義VERY_LONG_STRING_LENGTH 50000
#定義VERY_LONG_TOKEN_LENGTH 50000
「ログ」ファイルが占めるディスク容量は、当然ながら検索時間によって異なります。
n_save (デフォルト値 = 2) 最適な分類をいくつ保存するかを決定します。
「.results[-bin]」ファイル。 保存_コンパクト_p 「結果」と「チェックポイント」をどちらにするかを制御します
ファイルはバイナリとして保存されます。 バイナリ ファイルは高速でコンパクトですが、そうではありません。
ポータブル。 のデフォルト値 保存_コンパクト_p が true の場合、バイナリ ファイルは次のようになります。
書かれた。
「結果」ファイルの保存にかかる時間が問題になる場合は、時間を増やすことを検討してください。
min_save_period (デフォルト値 = 1800 秒または 30 分)。 ファイルはディスクに保存されます
報告すべき何かがあった場合は、これが頻繁に行われます。
JUST HOW スロー IS それ?
計算時間は、 n_data * n_attributes * n_classes * n_tries * のオーダーになります。
converge_cycles_per_try。 この際の主な不確実性は、基本的なバックとバックの数です。
各試行で収束するまでの XNUMX 番目のサイクル、およびもちろん試行回数。 人数、個数、総数
トライアルあたりのサイクル数は通常 10 ~ 100 です。 try_fn_type 「収束」、および 10 ~ 200+
「converge_search_3」と「converge_search-4」。 最大数は次のように指定されます。
max_n_tries (デフォルト値 = 200)。 トライアルの数はあなたと利用可能なもの次第です
コンピューティングリソース。
非常に大規模なデータセットの実行時間は非常に不確実になります。 いくつかの
ベースラインを決定するために、システム上で小規模なテストを実行します。 特定 n_data 〜へ
読み取られるデータベクトルの数を制限します。 非常に大量のデータを考慮すると、 オートクラス かもしれません
XNUMX を超えるクラスで最も可能性の高い分類を見つけます。
ことを要求 start_j_list 適切に指定する必要があります (上記のセクションを参照) HOW MANY
クラス?)。 少数のクラスだけが必要であると確信している場合は、強制的に次のようにすることができます。
オートクラス で指定された固定数のクラスで検索します。 固定_j。 そうすれば、あなたはそうします
それぞれ異なる固定数のクラスで個別の検索を実行する必要があります。
変化 ファイル名 IN A 保存しました 分類 FILE
オートクラス 保存された分類内のデータ、ヘッダー、およびモデル ファイルのパス名をキャッシュします。
バイナリ (「.results-bin」) または ASCII (「.results」) の「results」ファイルの構造。 もし
「result」ファイルと「search」ファイルは別のディレクトリの場所に移動され、検索
絶対パス名を使用した場合、正常に再起動できません。 したがって、それは
呼び出しを実行すると有利 オートクラス データ、ヘッダー、モデルの親ディレクトリ内
ファイルを作成するため、相対パス名を使用できるようになります。 キャッシュされたパス名は次のようになります。
相対的な場合、ファイルを別のホストまたはファイル システムに移動して再起動できます --
同じ相対パス名階層が存在する場合。
ただし、「.results」ファイルは ASCII テキストであるため、これらのパス名は
テキストエディタ (保存_コンパクト_p false として指定する必要があります)。
検索 パラメーター
検索は「.s-params」ファイルによって制御されます。 このファイルでは、空行または行
「#」、「!」、「;」のいずれかの文字で始まるものはコメントとして扱われます。 の
パラメータ名とその値は、等号、スペース、またはタブで区切ることができます。
n_clsfs1
n_clsfs = 1
n_clsfs 1
「=」または「」の場合、スペースは無視されます。 " が区切り文字として使用されます。末尾に記号がないことに注意してください。
セミコロン。
検索パラメータとそのデフォルト値は次のとおりです。
rel_error = 0.01
clsf-DS-%= によって使用される相対的な差の尺度を指定します。
新しい clsf は古い clsf の複製です。
start_j_list = 2、3、5、7、10、15、25
検索を急に絞りすぎないように、最初はこれらの数のクラスを試してください。
このリストの状態は <..>.search ファイルに保存され、再起動時に使用されます。
オーバーライド指定がない限り、 start_j_list の .s-params ファイル内に作成されます。
再起動の実行。 このリストには、予想されるクラスの数が含まれている必要があります。
広いマージン! 「start_j_list = -999」は空のリストを指定します(
再起動します)
n_classes_fn_type = "ランダム_ln_ノーマル"
Once start_j_list 疲れきって、 オートクラス この関数を呼び出して方法を決定します
ベスト 10 の分類に基づいて、次回の試行時に開始できる多くのクラス
これまでに見つかった。 現在は「random_ln_normal」のみが利用可能です。
固定_j = 0
日時 固定_j > 0、オーバーライド start_j_list n_classes_fn_type、 オートクラス 意志
クラスの初期数には常にこの値を使用します。
min_report_period = 30
最後のレポートから詳細なレポートが行われるまで、少なくともこの時間 (秒単位) 待機します。
また。 をチェックするときは、予想される実行時間よりも長く設定する必要があります。
結果の再現性。 再現可能な結果については、以下も参照してください。 force_new_search_p、
start_fn_type ランダム化_ランダム_p. 注意: 「interactive_p」の少なくとも XNUMX つ、
「max_duration」および「max_n_tries」をアクティブにする必要があります。 さもないと オートクラス will run
無期限に。 下記参照。
インタラクティブ_p = 真
false の場合、停止されるまで実行を続行できます。 true の場合、標準
入力はサイクルごとに終了文字「q」を照会され、検出されると、
即時停止をトリガーします。
max_duration = 0
= 0 の場合、停止するまで実行を継続できます。 > 0 の場合、
実行する最大秒数。
max_n_tries = 0
= 0 の場合、停止するまで実行を継続できます。 > 0 の場合、
試行の最大回数。
n_save = 2
この数の clsf をディスクの .results[-bin] および .search ファイルに保存します。 0の場合はしない
何でも保存します (.search ファイルと .results[-bin] ファイルは保存しません)。
ログファイル_p = 真
false の場合、ログ ファイルを書き込みません。
検索ファイル_p = 真
false の場合、検索ファイルを書き込みません。
結果ファイル_p = 真
false の場合、結果ファイルを書き込みません。
min_save_period = 1800
CPU クラッシュ保護。 これは、最大時間を秒単位で指定します。 オートクラス
現在の結果をディスクに保存する前に実行されます。 デフォルトの時間は 30 です
分。
max_n_store = 10
内部的に保存される分類の最大数を指定します。
n_final_summary = 10
検索終了後に出力する試行回数を指定します。
start_fn_type =「ランダム」
{「ランダム」、「ブロック」} のいずれか。 これはクラスの初期化のタイプを指定します。 ために
通常の検索では、初期クラスとなるインスタンスをランダムに選択する「ランダム」を使用します。
を意味し、適切な分散を追加します。 反復可能な検索をテストするには、次を使用します。
「ブロック」。データベースをほぼ同じサイズの連続したブロックに分割します。
再現可能な結果については、以下も参照してください。 force_new_search_p, min_report_period,
ランダム化_ランダム_p.
try_fn_type = "収束_検索_3"
{"converge_search_3"、"converge_search_4"、"converge"} のいずれか。 これらは指定します
代替の検索停止基準。 「converge」は単に変化率をテストするだけです
log_marginal 分類確率 (clsf->log_a_x_h)、チェックなし
個々のクラスの変化率(参照 停止範囲 停止要因).
「converge_search_3」と「converge_search_4」はそれぞれ比率を監視します
すべてのクラスに対して class->log_a_w_s_h_j/class->w_j を実行し、すべてのクラスが終了するまで収束を続けます。
~の静止基準に合格する n_平均 サイクル。 「converge_search_3」テスト
連続する収束サイクル間の違い (「 rel_delta_range)。 この
合理的な汎用の停止基準を提供します。 「converge_search_4」
「sigma_beta_n_values」サイクルにわたる比率を平均します(「sigma_beta_n_values」を参照) cs4_delta_range)。 この
converge_search_3 が類似したクラスを多数生成する場合は、この方法が推奨されます。
初期サイクル_p = 真
trueの場合、initialize_parametersでbase_cycleを実行します。 false は次の目的でのみ使用されます。
テスト。
保存_コンパクト_p = 真
true は、分類をマシン依存のバイナリ (.results-bin および .chkpt-bin) として保存します。
false は ASCII テキスト (.results および .chkpt) として保存します。
read_compact_p = 真
true は、分類をマシン依存のバイナリ (.results-bin および .chkpt-bin) として読み取ります。
false は、ASCII テキスト (.results & .chkpt) として読み取ります。
ランダム化_ランダム_p = 真
false シード lrand48、再現可能性を与える 1 の疑似乱数関数
テストケース。 true はユニバーサルタイムクロックをシードとして使用し、半ランダムを与えます。
検索します。 再現可能な結果については、以下も参照してください。 force_new_search_p, min_report_period
start_fn_type.
n_data = 0
n_data = 0 の場合、データベース全体が .db2 から読み取られます。 n_data > 0 の場合、これのみ
読み取られるデータ数。
停止範囲 = 0.5
try_fn_type "converge" に渡されます。 「converge」try_fn_type を使用すると、収束は次のようになります。
halt_range と (halt_factor * current_log_marginal) の大きい方のときに停止します。
分類の連続するサイクル値の差を超えています
log_marginal (clsf->log_a_x_h)。 この値を減らすと収束が厳しくなる可能性があります
そしてサイクル数を増やします。
停止要因 = 0.0001
try_fn_type "converge" に渡されます。 「converge」try_fn_type を使用すると、収束は次のようになります。
halt_range と (halt_factor * current_log_marginal) の大きい方のときに停止します。
分類の連続するサイクル値の差を超えています
log_marginal (clsf->log_a_x_h)。 この値を減らすと収束が厳しくなる可能性があります
そしてサイクル数を増やします。
rel_delta_range = 0.0025
関数「converge_search_3」を試すために渡されます。この関数は、ログの約
クラス仮説に関するクラス統計の周辺尤度
各クラスの (class->log_a_w_s_h_j) をクラスの重み (class->w_j) で割った値。
「converge_search_3」は、このサイクル間の差が大きくなったときに収束を停止します。
すべてのクラスの比率が、「n_average」の「rel_delta_range」を超えています
サイクル。 「rel_delta_range」を減らすと収束が厳しくなり、
サイクル数。
cs4_delta_range = 0.0025
関数「converge_search_4」を試すために渡されます。
(class->log_a_w_s_h_j)/(class->w_j)、各クラスの平均値
「sigma_beta_n_values」収束サイクル。 「converge_search_4」は収束を停止します
この比率の平均値の最大差が以下になるとき
「cs4_delta_range」。 「cs4_delta_range」を減らすと収束が厳しくなり、
サイクル数が増えます。
n_平均 = 3
関数「converge_search_3」と「converge」を試すために渡されます。 サイクル数
トライアルを終了するには収束基準を満たさなければなりません。
sigma_beta_n_values = 6
try_fn_type「converge_search_4」に渡されます。 使用する過去の値の数
sigma^2 (ノイズ) と beta^2 (信号) を計算します。
max_cycles = 200
これは、任意の XNUMX つの収束に対して許可される最大サイクル数です。
他の停止基準に関係なく、分類されます。 これは非常に依存度が高いです
データベースとモデルと収束パラメーターの選択に応じて異なりますが、次のようにする必要があります。
画面ダンプと .log ファイルで報告される平均サイクル数の約 XNUMX 倍
converge_print_p = 偽
true の場合、選択した try 関数は、次の場合に役立つ値を画面に出力します。
デフォルト以外の値を指定する 停止範囲, 停止要因, rel_delta_range,
n_平均, sigma_beta_n_values, 範囲係数.
force_new_search_p = 真
true の場合、以前の検索結果はすべて無視され、既存の .search が破棄されます。
ユーザーによる確認後の .results[-bin] ファイル。 falseの場合は続行します
既存の .search および .results[-bin] ファイルを使用した検索。 再現性を高めるために
結果、こちらも参照 min_report_period, start_fn_type ランダム化_ランダム_p.
チェックポイント_p = 偽
true の場合、現在の分類のチェックポイントは次の間隔で書き込まれます。
「min_checkpoint_period」秒、ファイル拡張子は .chkpt[-bin]。 これだけです
非常に大規模な分類に役立ちます
min_checkpoint_period = 10800
Checkpoint_p = true の場合、チェックポイントが設定された分類はこの頻度で書き込まれます
- 秒単位 (デフォルト = 3 時間)
再収束タイプ = "
「chkpt」または「result」のいずれかを指定できます。 「checkpoint_p」= true かつ「reconverge_type」の場合
= "chkpt"、次に含まれる分類の収束を続行します。
<...>.chkpt[-bin]。 「checkpoint_p」= false かつ「reconverge_type」=「results」の場合、
<...>.results[-bin] に含まれる最良の分類の収束を継続します。
スクリーン出力_p = 真
false の場合、出力は画面に送信されません。 log_file_p = true と仮定すると、出力
ログ ファイルのみに送信されます。
Break_on_warnings_p = 真
デフォルト値は、データ定義時に続行するかどうかをユーザーに尋ねます。
警告が見つかりました。 false として指定した場合、 オートクラス にも関わらず継続します
警告 -- 警告は端末とログに出力され続けます。
ファイルにソフトウェアを指定する必要があります。
free_storage_p = 真
デフォルト値は次のことを示します オートクラス 割り当てられたストレージの大部分を解放します。
これは必須ではありません。DEC Alpha の場合、コア ダンプが発生します [これは
まだ本当ですか?]。 false として指定した場合、 オートクラス ストレージを解放しようとしません。
HOW に GET オートクラス C に プロデュース 反復可能 結果
状況によっては、反復可能な分類が必要になります。基本的な分類の比較 オートクラス C
さまざまなプラットフォームでの整合性、移植 オートクラス C 新しいプラットフォームなどへの移行
これを達成するには、次の 1 つのことが必要です: XNUMX) 同じ乱数ジェネレーターが必要です。
2) 検索パラメータを適切に指定する必要があります。
乱数ジェネレーター。 この実装は、 オートクラス C Unix srand48/lrand48 を使用します
よく知られた線形法を使用して擬似乱数を生成する乱数発生器
合同アルゴリズムと 48 ビット整数演算。 lrand48() は負でない値を返します
[0, 2**31] の範囲に均一に分布する長整数。
検索パラメータ。 次の .s-params ファイル パラメータを指定する必要があります。
Force_new_search_p = true
start_fn_type "ブロック"
ランダム化_ランダム_p = false
;; 実行するトライアルの数を指定します
最大試行回数 = 50
;; 実行時間よりも長い時間を指定してください
min_report_period = 30000
現在の最良の分類レポートは作成されないことに注意してください。 決勝だけ
分類サマリーが出力されます。
チェックポイント
非常に大規模なデータベースでは、何らかの処理中にシステムがクラッシュする可能性が非常に高くなります。
分類してみてください。 このような状況では、時間をかけて行うことをお勧めします
再起動の可能性について計算をチェックポイントします。
チェックポイントは、「」を指定することで開始されます。チェックポイント_p 「.s-params」ファイル内の = true」。
これにより、内部収束ステップが発生し、分類のコピーが
分類が更新されるたびにチェックポイント ファイルを作成し、一定期間の
時間が経過しました。 ファイルの拡張子は「.chkpt[-bin]」です。
AutoClass がサイクルを完了するたびに、「.」が表示されます。 が画面に出力されて提供されます。
の設定に使用される情報 min_checkpoint_period 値 (デフォルトは 10800 秒)
または3時間)。 チェックポイントの頻度と
チェックポイントの書き込みが繰り返されるため、マシンがクラッシュする可能性があります。
ファイルが原因で検索プロセスが遅くなります。
AutoClass 検索の再起動:
分類を回復し、再起動および再ロード後に検索を続行するには
オートクラス、指定します 再収束タイプ = 「.s-params」ファイル内の「chkpt」(指定
force_new_search_p 偽として)。
AutoClass は、適切なデータベースとモデルを再ロードします。
チェックポイントが設定されたファイルがロードされた時点以降のファイル名の変更
分類の実行。 「.s-params」ファイルには、デフォルト以外の引数が含まれています。
元の通話に提供されます。
検索の開始前、 start_j_list 空になっているので必要になります
元のリストを、クラッシュした検索に残るものにトリミングします。 これは可能です
「.log」ファイルを調べて、どの値がすでに使用されているかを確認することによって決定されます。 もしも
start_j_list が空になり、その後空になりました start_j_list で指定する必要があります
「.s-params」ファイル。 これは次のいずれかによって行われます
start_j_list =
or
start_j_list = -9999
以下は、チェックポイントを説明するための一連のスクリプトです。
オートクラス検索データ/glass/glassc.db2データ/glass/glass-3c.hd2\
データ/glass/glass-mnc.model データ/glass/glassc-chkpt.s-params
実行1)
## glassc-chkpt.s-params
最大試行回数 = 2
Force_new_search_p = true
## --------------------
;; 完了まで実行する
実行2)
## glassc-chkpt.s-params
Force_new_search_p = false
最大試行回数 = 10
チェックポイント_p = true
min_checkpoint_period = 2
## --------------------
;; 1 つのチェックポイントの後、Ctrl-C を押して CPU クラッシュをシミュレートします
実行3)
## glassc-chkpt.s-params
Force_new_search_p = false
最大試行回数 = 1
チェックポイント_p = true
min_checkpoint_period = 1
reconverge_type = "chkpt"
## --------------------
;; チェックポイント付きトライアルは終了するはずです
出力 ファイル
標準レポートは次のとおりです。
1) 属性影響値: 属性の相対的な影響または重要性を示します。
グローバル (すべてのクラスの平均) とローカルの両方のデータの属性
(特にクラスごとに)。 相対的なクラスの強さのヒューリスティックも
リストされている;
2) ケース (データ) 番号による相互参照: の主クラス確率をリストします。
各データをケース番号順に並べます。 report_mode = "data" の場合、さらに小さい
クラス確率 (0.001 以上) がデータごとにリストされます。
3) クラス番号による相互参照: 各クラスの主クラス確率と
より小さいクラスの確率 (0.001 以上) がそれぞれにリストされます。
クラス内のデータをケース番号順に並べます。 ごとに一覧表示することも可能です
データ、選択した属性の値。
属性影響値レポートは、
分類によって見つかったクラスに対するデータ属性の「影響」。 の
正規化されたクラスの強さ、すべてを合計した正規化された属性影響値
クラスと個々の影響値 (I[jkl]) はすべて相対的な尺度にすぎず、
ランク順よりももっと意味のあるものとして解釈されるべきですが、他のものとは違います
絶対値に近づきます。
レポートは、名前とパス名が「.r-params」から取得されたファイルに出力されます。
ファイルのパス名。 レポート ファイルの種類 (拡張子) は次のとおりです。
影響 値 レポート
「影響を受けたテキスト-n" または "インフルエンザ-テキストなし-n"
クロスリファレンス by 場合
「事件の本文-n"
クロスリファレンス by class
「クラス-テキスト-n"
または、report_mode が「data」にオーバーライドされる場合:
影響 値 レポート
「インフルエンザデーター」n"または"インフルエンザ-データなし-n"
クロスリファレンス by 場合
「事件データー」n"
クロスリファレンス by class
「クラス-データ-n"
コラボレー n 「結果」ファイルの分類番号です。 最初または最高のもの
分類には 1、次善の 2 などの番号が付けられます。デフォルトではレポートが生成されます。
「結果」ファイル内の最良の分類のみ。 他のレポートも作成できます
レポート パラメータ キーワードを使用して保存された分類 n_clsfs clsf_n_listを選択します。
「影響を受けたテキスト-n" ファイルタイプはデフォルトです (order_attributes_by_influence_p = true)、そして
は、各クラスの属性を属性影響値の降順にリストします。 もし
の値 order_attributes_by_influence_p <...>.r-params で false にオーバーライドされます。
ファイルに保存すると、各クラスの属性が属性番号の昇順でリストされます。
生成されるファイルの拡張子は「influ-no-text-」になります。nこの出品方法は
クラス間の属性値の視覚的な比較が容易になります。
たとえば、次のコマンドは次のとおりです。
autoclass -reports サンプル/imports-85c.results-bin
サンプル/imports-85c.search サンプル/imports-85c.r-params
「.r-params」ファイルに次の行を追加します。
xref_class_report_att_list = 2、5、6
これらの出力ファイルが生成されます。
imports-85.influ-o-text-1
imports-85.case-text-1
インポート-85.クラステキスト-1
当学校区の オートクラス C レポートは、シグマクラス等高線値を計算する機能を提供します。
影響値レポートの生成時に、実際の値の属性の指定されたペア
データ オプション (report_mode = "data") を使用します。 シグマクラスの等高線はそうではないことに注意してください。
離散型属性から生成されます。
シグマ等高線は、n シグマ誤差バーを XNUMX つにまとめた XNUMX 次元の等価物です。
寸法。 具体的には、XNUMX つの独立した属性について、n シグマ輪郭は次のように定義されます。
楕円がどこにあるのか
((x - x平均) / xシグマ)^2 + ((y - y平均) / yシグマ)^2 == n
共変属性を使用すると、n シグマ等高線は、回転された状態で同一に定義されます。
分布の主軸の座標系。 したがって、独立した属性は次のようになります。
楕円は属性軸と平行に配向され、シグマの軸は次の輪郭を描きます。
共変属性は、平均によって決定された中心を中心に回転されます。 どちらの場合にも
シグマ等高線は、クラス確率が関係なく一定である直線を表します。
他のクラスの確率。
XNUMX つ以上の属性を使用すると、n シグマの等高線は k 次元の楕円体になります。
表面。 このコードは、n-
次元楕円体は、任意の 2 次元平面上で、楕円によって境界されます。 これを簡略化すると、
シングルシグマ楕円体を座標平面に投影する場合も同様です
この楕円の 2 次元共分散は、
n 次元楕円体の共分散。 2 次元共分散の固有システムは次のようになります。
日食の主成分とそれを揃える回転に関する分散
データと一緒に。 これは、限界での分布を表示する最良の方法を表します。
飛行機。
等高線値を取得するには、キーワードを設定します sigma_contours_att_list 実際の値のリストへ
属性インデックス (.hd2 ファイルから)、およびデータを含む影響値レポートをリクエストします。
オプション。 例えば、
レポートモード = "データ"
sigma_contours_att_list = 3、4、5、8、15
出力 レポート パラメーター
出力レポートの内容は、「.r-params」ファイルによって制御されます。 このファイルでは、
空の行、または次の文字のいずれかで始まる行はコメントとして扱われます。
"#"、 "!"、 また ";"。 パラメータ名とその値は等号で区切ることができます。
スペースまたはタブ:
n_clsfs1
n_clsfs = 1
n_clsfs 1
「=」または「」の場合、スペースは無視されます。 " が区切り文字として使用されます。末尾に記号がないことに注意してください。
セミコロン。
許可されるパラメータとそのデフォルト値は次のとおりです。
n_clsfs = 1
レポートを生成する .results ファイル内の clsfs の数 (次から始まる)
最初または「最高」。
clsf_n_list =
指定した場合、これは読み取られた clsf シーケンス内の clsfs の XNUMX から始まるインデックス リストです。
.results ファイルから。 「n_clsfs」をオーバーライドします。 例えば:
clsf_n_list = 1、2
と同じ出力を生成します
n_clsfs = 2
焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
clsf_n_list = 2
「XNUMX 番目に良い」分類レポートのみを出力します。
レポートの種類 =
生成するレポートのタイプ: 「all」、「influence_values」、「xref_case」、または
「xref_class」。
レポートモード =
生成するレポートのモード。 「text」は書式設定されたテキストレイアウトです。 「データ」とは数値のこと
-- さらなる処理に適しています。
comment_data_headers_p = 偽
デフォルト値では、ほとんどの report_mode = "data" ヘッダーの列 1 に # は挿入されません。
線。 true に指定すると、ほとんどのヘッダーにコメント文字が挿入されます。
ライン。
num_atts_to_list =
指定した場合、影響値レポートにリストする属性の数。 そうでない場合
指定、 を 属性がリストされます。 (例: "num_atts_to_list = 5")
xref_class_report_att_list =
指定した場合、値が出力される属性番号のリスト (ゼロベース)
「xref_class」レポートにケースの確率とともに表示されます。 指定されていない場合は、いいえ
属性値が出力されます。 (例: "xref_class_report_att_list = 1、2、3")
order_attributes_by_influence_p = 真
デフォルト値では、各クラスの属性が属性の降順でリストされます。
影響値を指定し、影響値レポート ファイルとして「.influ-o-text-n」を使用します
タイプ。 false として指定すると、各クラスの属性がリストされます。
属性番号による昇順。 生成されるファイルの拡張子は、
「インフルエンザのテキストなし」。
Break_on_warnings_p = 真
デフォルト値は、データ定義時に続行するかどうかをユーザーに尋ねます。
警告が見つかりました。 false として指定した場合、 オートクラス にも関わらず継続します
警告 -- 警告は引き続き端末に出力されます。
free_storage_p = 真
デフォルト値は次のことを示します オートクラス 割り当てられたストレージの大部分を解放します。
これは必須ではありません。DEC Alpha の場合、コア ダンプが発生します [これは
まだ本当ですか?]。 false として指定した場合、 オートクラス ストレージを解放しようとしません。
max_num_xref_class_probs = 5
ケースに対して印刷される貸手クラスの確率の数を決定します。
クラス相互参照レポート。 デフォルトでは、最も可能性の高いクラスを出力します。
確率値と最大 4 つの貸手クラスの確率。 これは次の場合に当てはまります。
「テキスト」クラスと「データ」クラスの相互参照レポートの両方に当てはまりますが、
「データ」ケースの相互参照レポート。 「テキスト」ケースの相互参照レポートのみ
は最も可能性の高いクラス確率を持ちます。
sigma_contours_att_list =
指定した場合、実際の値の属性インデックスのリスト (.hd2 ファイルから) が次のようになります。
影響値レポートを生成するときに、シグマ クラスのコンター値を計算します。
データ オプション (report_mode = "data")。 指定しない場合、シグマはありません。
クラスコンター出力。 (例: "sigma_contours_att_list = 3、4、5、8、15")
解釈 OF オートクラス 結果
WHAT HAVE 皆様のおかげで わかった?
今、あなたは走りました オートクラス データセットについて -- 何が得られますか? 通常、
オートクラス 検索手順では多くの分類が見つかりますが、保存されるのは少数の最良のものだけです。 これらは
検査と解釈が可能になりました。 最も重要な指標は、
これらの代替分類の相対的な利点は、対数合計事後確率です。
価値。 確率は 1 と 0 の間にあるため、対応する Log
確率は負の値で、範囲は 0 から負の無限大です。 の違い
これらの対数確率値を e 乗すると、次の相対確率が得られます。
代替品の分類。 したがって、たとえば 100 の差は、XNUMX つの分類が次のとおりであることを意味します。
e^100 ~= 10^43 の可能性が他よりも高くなります。 ただし、これらの数字は非常に誤解を招く可能性があり、
なぜなら、これらは、次の条件に基づく代替分類の相対確率を与えるからです。
オートクラス 前提条件.
前提条件
具体的には、最も重要なことは、 オートクラス 仮定は、次の場合に正規モデルを使用することです。
実変数、およびクラス内の属性の独立性の仮定。 以来
これらの仮定は実際には違反されることが多く、事後確率の差
代替分類の割合は、XNUMX つの分類がより近いものであることが部分的に原因である可能性があります。
実際の違いではなく、別の仮定を満足させること
分類の品質。 Log の有用性に関するもう XNUMX つの不確実性の原因
確率値は、特定の事前知識を考慮していないということです。
ユーザーはドメインについて考えているかもしれません。 これは、多くの場合、代替案を検討する価値があることを意味します
分類を理解できるかどうかを確認しますが、最も重要な分類から始める価値があります。
おそらく最初に。 対数確率値が、
あるクラスの事件については、圧倒的な証拠があると言っている。 一部 の構造
データであり、この構造の一部は、 オートクラス 分類。
INFLUENCE レポート
これで、対数確率に基づいて、調べたい分類を選択できました。
価値; どうやって調べますか? 最初に行うことは、「影響」レポートを生成することです
に文書化されたレポート生成機能を使用した分類について
/usr/share/doc/autoclass/reports-c.text。 影響レポートは、次のことを要約するように設計されています。
重要な情報が埋もれている オートクラス データ構造。
このレポートの最初の部分では、ヒューリスティック クラスの「長所」を示します。 クラスの「強さ」は
ここでは、インスタンスがクラスに「属する」確率の幾何平均として定義されます。
クラス確率モデルから生成されたものとなります。 したがって、ヒューリスティックを提供します
各クラスが「その」インスタンスをどの程度強く予測するかの尺度。
XNUMX 番目の部分は、で使用される各属性の全体的な「影響」のリストです。
分類。 これらは、相対的な重要性の大まかなヒューリスティックな尺度を提供します。
分類の各属性。 属性「影響値」はクラスです
クラス内の各属性の「影響」の確率加重平均。次のようになります。
以下で説明します。
レポートの次の部分は、各クラスの概要説明です。 クラス
クラスの重みの降順で、0 から n までの任意の番号が付けられます。 クラス
たとえば 34.1 の重みは、クラスのメンバーシップ確率の加重合計が次のようになることを意味します。
34.1。 クラス重み 34 は、必ずしも 34 のケースが属することを意味するわけではないことに注意してください。
多くの場合、そのクラスの部分的なメンバーシップしか持たない可能性があるためです。 それぞれの中で
クラス、属性、または属性セットは、モデル用語の「影響」によって順序付けされます。
CROSS エントロピ
XNUMX つの確率分布間の乖離を表す一般的に使用される尺度は次のとおりです。
クロスエントロピー: P(x|c...)*log[P(x|c...)/P(x|g...)] のすべての可能な値 x の合計
ここで、c... と g... は分布を定義します。 同一の場合はゼロからの範囲です
の異なる値に対して確率 1 を配置する分布の場合は無限まで
属性。 確率分布に条件付きで独立した項がある場合、
相互エントロピーは、これらの項の合計に因数分解できます。 これらの要因は尺度を提供します
XNUMX つの属性を区別する際の、対応するモデル化された属性の影響
分布
モデル化された項のクラスに対する「影響」を、クラスのクロスエントロピー項として定義します。
単一クラスのグローバル クラス分布に関するクラス分布
分類。 したがって、「影響力」は、モデル項がどの程度強力に役立つかを示す尺度です。
クラスをデータセット全体から区別します。 独立してモデル化された属性を使用すると、
影響は正当に属性自体に帰することができます。 相関または
共変属性セット、クロスエントロピー係数はセット全体の関数であり、
影響値をモデル化された属性全体に均等に分配します。
属性 INFLUENCE VALUES
各クラスの「影響」レポートには、そのクラスの属性パラメータが示されています。
モデル用語属性セットの影響値が最も高い順に並べられます。 最初の数個だけ
通常、属性セットには重要な影響値が含まれます。 影響力値が下がった場合
最高値の約 20% を下回る場合、おそらく重要ではありませんが、すべて
属性セットは完全を期すためにリストされています。 それぞれの影響力値に加えて、
属性セットの場合、そのクラスの属性セット パラメータの値は、
対応する「グローバル」値を使用します。 グローバル値は、
分類に依存しないデータ。 たとえば、属性のクラス平均が
「温度」は 90 で標準偏差は 2.5 ですが、世界平均は 68 で、標準偏差は XNUMX です。
標準偏差が 16.3 である場合、このクラスは、標準偏差よりもはるかに高いケースを選択します。
平均気温であり、この高い範囲ではかなり小さな広がりがあります。 同様に、
離散属性セットでは、そのクラスの各結果の確率が与えられます。
対応するグローバル確率を使用して -- その重要度順に並べたもの: 絶対
(log {の値/ })。 重要性の兆候
値はグローバル クラスからの変更の方向を示します。 この情報により、
各クラスがすべてのデータの平均とどのように異なるかの概要を、最も大きい順に示します。
大きな違い。
CLASS そして HOUSES レポート
「影響」レポートからクラスの説明を取得したら、次のことを行うとよいでしょう。
フォローアップして、お気に入りのケースがどのクラスに分類されたかを確認してください。逆に、
どのケースが特定のクラスに属しているかを確認します。 この種の相互参照については、
情報 XNUMX つの補完的なレポートを生成できます。 これらはより完全に文書化されています
in /usr/share/doc/autoclass/reports-c.text。 「クラス」レポートには、以下のすべてのケースがリストされます。
各クラスに重要なメンバーが含まれており、そのような各ケースがどの程度に属するか
そのクラスに。 現在のクラスのクラスメンバーシップが 90% 未満であるケースには、
他のクラスのメンバーシップも同様にリストされます。 クラス内のケースは次の順序で並べられます。
症例数が増加中。 代替の「ケース」レポートには、どのクラスが該当するかが記載されています。
ケースが属する、および最も可能性の高いクラスのメンバーシップ確率。 この二つ
レポートを使用すると、どのケースがどのクラスに属するか、またはその逆を見つけることができます。 もしも
ほぼすべてのケースが 99% 近くのメンバーシップを単一クラスに持つということは、
クラスは十分に分離されていますが、高度なメンバーシップの相互関係は、
クラスがかなり重複しています。 高度に重複したクラスは、そのアイデアが
分類が崩壊し、相互に高度に重複したクラスのグループが発生し、
一種のメタクラスを使用することは、おそらくデータを理解するためのより良い方法です。
比較する CLASS WEIGHTS そして クラス/ケース レポート 割り当て
クラス確率パラメータとして指定されるクラスの重みは、基本的にすべてのクラスの合計です。
データ インスタンス。インスタンスがクラスのメンバーである正規化された確率。
おそらく、この数値を整数としてフォーマットしたのは、私たちの側の間違いです。
その本質を強調するのではなく、報告する。 実際の本当の価値がわかります
.results[-bin] ファイルの class_DS 構造に w_j パラメータとして記録されます。
.case レポートと .class レポートは、ケースがクラスのメンバーである確率を示します。 どれでも
ケースをクラスに割り当てるには、何らかの決定ルールが必要です。 最大確率
多くの場合、割り当てルールは暗黙的に想定されますが、結果として次のような結果が得られることは期待できません。
ほぼすべてのクラス メンバーシップが存在しない限り、パーティション サイズはクラスの重みと等しくなります。
確率は実質的に 1 か 0 です。 非 XNUMX/XNUMX のメンバーシップ確率では、
クラスの重みを一致させるには、確率を合計する必要があります。
さらに、EMの完全性(期待の最大化)の問題もあります。
収束。 EMは、クラスパラメータの推定とクラスの推定を交互に行います。
メンバーシップの確率。 これらの推定値は互いに収束しますが、実際には収束しません
会いましょう オートクラス 交互に停止する複数の収束アルゴリズムを実装します
.s-params ファイル内の適切なパラメータを使用して基準を設定します。 これらを適切に設定すると、
パラメータを適切に完全かつ効率的に収束するには、必要な場合があります
実験。
代替 分類
要約すると、生成できるさまざまなレポートにより、
現在の分類。 通常は、別の分類を検討することをお勧めします。
たとえそれらが最小対数確率値を持っていなくても。 これらの他の
通常、分類には、他のクラスの強力なクラスに密接に対応するクラスがあります。
分類は異なりますが、弱いクラスでは異なる場合があります。 クラス内のクラスの「強さ」
分類は通常、最も高い影響値がどの程度劇的であるかによって判断できます。
クラス内の属性は、対応するグローバル属性とは異なります。 どれも当てはまらない場合は、
分類は非常に満足のいくものであるように見えますが、いつでも実行できます オートクラス 再び
新しい分類を生成します。
WHAT 次?
最後に、洞察力に富んだ分類を見つけた後に何をすべきかという問題です。
が生じます。 通常、分類はセットを調べるための予備的なデータ分析ステップです。
ケース (物事、例など) をグループ化して、メンバーをグループ化できるかどうかを確認します。
グループは互いに「似ている」。 オートクラス ユーザーなしでそのようなグループ化を行います
類似性の尺度を定義する必要があります。 組み込みの「類似性」尺度は、相互
症例の予測性。 次のステップは、一部のオブジェクトがなぜそうなるのかを「説明」することです。
別のグループの人々よりも他の人々に似ています。 通常、ドメインの知識は次のことを示唆しています。
答え。 たとえば、収入、購買習慣、場所、
年齢などによって、以前は明らかではなかった特定の社会階級が明らかになる可能性があります。
分類分析。 このようなクラスに関する詳細情報を取得するには、さらに
車の台数、見ているテレビ番組などの情報によって、
詳しくは。 縦断的研究により、社会階級がどのように変化するかについての情報が得られるでしょう。
何が起こり、彼らの態度に影響を与えるのか、そのすべてが当初の考えをはるかに超えています。
分類。
予測
分類を使用して、新しい症例のクラスメンバーシップを予測できます。 それで、それに加えて
データの背後にある構造についての洞察が得られる可能性があります。これで、次を使用できるようになります。
オートクラス 直接予測を行って比較する オートクラス 他の学習システムへ。
クラス確率を予測するこの手法は、すべての属性に適用できます。
データ型/サブタイプまたは尤度モデル項の型に関係なく。
データ ケースのクラス メンバーシップが次のいずれかについて 0.0099999 を超えない場合、
「トレーニング」クラスでは、各クラスの画面出力に次のメッセージが表示されます。
場合:
xref_get_data: case_num xxx => クラス 9999
クラス 9999 のメンバーは、「ケース」および「クラス」の相互参照レポートに表示されます。
クラス メンバーシップは 1.0。
注意点:
通常の使用方法 オートクラス すべてのデータをdata_fileに入れることです。それを説明してください
モデルとヘッダー ファイルを使用してデータを検索し、「autoclass -search」を実行します。 今、XNUMXつの代わりに
data_file には、training_data_file と test_data_file の XNUMX つがあります。
両方のデータベースが同じであることが最も重要です オートクラス 内部表現。
これが真実ではない場合、 オートクラス 終了するか、状況によってはクラッシュする可能性があります。
予測モードは、うまくいけばユーザーがこれに準拠するように誘導するように設計されています
要件。
準備:
予測には、トレーニング分類とテスト データベースが必要です。 トレーニング
分類は、トレーニングで「autoclass -search」を実行することによって生成されます
data_file ("data/soybean/soyc.db2")、例:
autoclass -search データ/soybean/soyc.db2 データ/soybean/soyc.hd2
データ/大豆/soyc.model データ/大豆/soyc.s-params
これにより、「soyc.results-bin」と「soyc.search」が生成されます。 次に、「レポート」パラメータを作成します
「soyc.r-params」などのファイル (を参照) /usr/share/doc/autoclass/reports-c.text)、実行します
オートクラス 次のような「レポート」モードで:
autoclass -reports data/soybean/soyc.results-bin
データ/大豆/soyc.search データ/大豆/soyc.r-params
これにより、クラスとケースの相互参照ファイル、および影響値ファイルが生成されます。
ファイル名は「.r-params」ファイル名に基づいています。
データ/大豆/soyc.class-text-1
データ/大豆/soyc.case-text-1
データ/大豆/soyc.influ-text-1
これらは、training_data_file にあるクラスを記述します。 さてこの分類
test_data_file ケースの確率的クラス メンバーシップを予測するために使用できます
(「data/soybean/soyc-predict.db2」) training_data_file クラス内。
autoclass -predict data/soybean/soyc-predict.db2
データ/大豆/soyc.results-bin データ/大豆/soyc.search
データ/大豆/soyc.r-params
これにより、test_data_file ケースのクラスとケースの相互参照ファイルが生成されます。
training_data_file クラスの確率的クラス メンバーシップを予測します。 の
ファイル名は「.db2」ファイル名に基づいています。
データ/大豆/soyc-predict.class-text-1
データ/大豆/soyc-predict.case-text-1
onworks.net サービスを使用してオンラインでオートクラスを使用する
