k-Means
概要
この演算子は、 k-meansアルゴリズムを使用してクラスタリングを実行します。
詳細
この演算子は、 k-meansアルゴリズムを使用してクラスタリングを実行します。相互に類似したグループの例を一緒にクラスタリングします。 ラベル属性は必要ないため、ラベル付けされていないデータに対してクラスタリングを使用でき、教師なし機械学習のアルゴリズムです。
k-meansアルゴリズムは、 kクラスターのセットを決定し、各例を正確に1つのクラスターに割り当てます。クラスタは同様の例で構成されています。例間の類似性は、例間の距離測定に基づいています。
k-meansアルゴリズムのクラスターは、ExampleSetのn個の属性のn次元空間の中心の位置によって決定されます。この位置は重心と呼ばれます。 ExampleSetの例の位置である必要はありますが、そうである必要はありません。
k-meansアルゴリズムは、 k 個の潜在的なクラスターの重心として扱われるk個のポイントから始まります。これらの開始点は、ランダムに描かれたk個の入力ExampleSetの例の位置、または適切な開始値の決定がtrueに設定されている場合はk-means ++ヒューリスティックによって決定されます。
すべての例は、最も近いクラスターに割り当てられます(最近接は、 測定タイプによって定義されます)。次に、1つのクラスターのすべての例を平均化することにより、クラスターの重心が再計算されます。重心が移動しなくなるか、 最大最適化ステップに達するまで、新しい重心に対して前のステップが繰り返されます 。メジャータイプがユークリッド距離の計算に基づいていない場合、k-meansアルゴリズムが収束することは保証されないことに注意してください(平均化による重心の再計算はユークリッド空間を想定しているため)。
手順は、開始点の異なるセットごとに最大実行時間で繰り返されます。すべての例の対応する重心までの距離の平方和の最小値を持つクラスターのセットが配信されます。
分化
k-メドイド
k-medoidsアルゴリズムの場合、クラスターの重心は常にクラスター内のポイントの1つになります。これは、k-meansアルゴリズムとk-medoidsアルゴリズムの主な違いです。
k-Means(カーネル)
カーネルk-meansは、カーネルを使用して、例とクラスター間の距離を推定します。カーネルの性質上、1つの距離を計算するには、クラスターのすべての例を合計する必要があります。したがって、このアルゴリズムは多くの例で2次関数であり、重心クラスターモデルを返しません(これに対して、K-Means演算子は重心クラスターモデルを返します)。
入力
- サンプル入力 (IOObject)この入力ポートには、ExampleSetが必要です。
出力
- クラスターモデル(セントロイドクラスターモデル)このポートはクラスターモデルを提供します。どのサンプルがどのクラスターの一部であるかという情報が含まれています。また、クラスターの重心の位置も保存します。これは、別のExampleSetで指定されたクラスタリングを実行するために、モデルの適用演算子によって使用できます。クラスターモデルは、グループモデルオペレーターによって他のクラスタリングモデル、前処理モデル、および学習モデルとグループ化することもできます。
- クラスター化セット(IOObject)例を区別するために、特殊なロール「Id」を持つ属性「id」が入力ExampleSetに追加されます。クラスターの追加属性とラベルパラメーターとしての追加に応じて、特別なロール「クラスター」または「ラベル」を持つ属性「クラスター」も追加されます。結果のExampleSetは、この出力ポートで配信されます。
パラメーター
- add_cluster_attribute trueの場合、各サンプルのcluster_idを持つ「cluster」という新しい属性が生成されます。デフォルトでは、 ラベルとして追加されるパラメーターがtrueである場合を除き、属性は特別なロール「クラスター」で作成されます。その場合、新しい属性は「ラベル」と呼ばれ、特別な役割「ラベル」を持ちます。属性は、モデルの適用演算子を使用して後で生成することもできます。範囲:
- add_as_label trueの場合、cluster_idを持つ新しい属性は「ラベル」と呼ばれ、特別な役割「ラベル」を持ちます。パラメーター追加クラスター属性がfalseの場合、新しい属性は作成されません。範囲:
- remove_unlabeledtrueに設定すると、クラスターに割り当てられないサンプルは、出力ExampleSetから削除されます。範囲:
- kこのパラメーターは、決定するクラスターの数を指定します。範囲:
- max_runsこのパラメーターは、実行される開始点のランダムな初期化を伴うk-Meansの最大実行回数を指定します。範囲:
- determine_good_start_values の場合、 k開始点は、k-means ++ヒューリスティックを使用して決定されます。これは、David ArthurおよびSergei Vassilvitskii 2007による「k-means ++:慎重なシードの利点」で説明されています。範囲:
- max_optimization_stepsこのパラメーターは、k-Meansの1回の実行に対して実行される反復の最大数を指定します。範囲:
- measure_typesこのパラメーターは、最近傍の検索に使用されるメジャーのタイプを選択するために使用されます。次のオプションが利用可能です。
- MixedMeasures:混合測定は、名目属性と数値属性の両方の場合に距離を計算するために使用されます。
- NominalMeasures:名目上の属性のみの場合、この名目上の属性の距離を計算するために異なる距離メトリックを使用できます。
- NumericalMeasures:数値属性のみの場合、異なる距離メトリックを使用して、この数値属性の距離を計算できます。
- BregmannDivergences:Bregmannの発散は、三角形の不等式または対称性を満たさない、より一般的な「近さ」のメジャータイプです。詳細については、パラメータの相違を参照してください。
範囲:
- mixed_measure混合測定に使用できる唯一のオプションは、「混合ユークリッド距離」です。数値の場合、ユークリッド距離が計算されます。ノミナル値の場合、両方の値が同じであれば距離0が取られ、そうでなければ距離1が取られます。このパラメーターは、 メジャータイプパラメーターが「混合メジャー」に設定されている場合に使用できます。範囲:
- nominal_measureこのパラメーターは、 メジャータイプがノミナルメジャーに設定されている場合に、入力ExampleSetのノミナルアトリビュートのみの距離を計算する方法を定義します。距離測定として類似性を使用する場合、実際の距離は負の類似性として計算されます。さまざまな類似点について、次の変数が定義されています。e:両方の例に等しい値とゼロ以外の値がある属性の数u:両方の例の値が等しくない属性の数z:両方の例の値がゼロである属性の数
- NominalDistance:2つの値の距離は、両方の値が同じ場合は0、そうでない場合は1です。
- DiceSimilarity:上記の定義では、DiceSimilarityは2 * e /(2 * e + u)です。
- JaccardSimilarity:上記の定義では、JaccardSimilarityは次のとおりです。e/(e + u)
- KulczynskiSimilarity:上記の定義では、KulczynskiSimilarityは次のとおりです。e/ u
- RogersTanimotoSimilarity:上記の定義では、RogersTanimotoSimilarityは次のとおりです:(e + z)/(e + 2 * u + z)
- RussellRaoSimilarity:上記の定義では、RussellRaoSimilarityは次のとおりです。e/(e + u + z)
- SimpleMatchingSimilarity:上記の定義では、SimpleMatchingSimilarityは次のとおりです。(e + z)/(e + u + z)
範囲:
- numerical_measureこのパラメーターは、 メジャータイプが数値メジャーに設定されている場合に、入力ExampleSetの数値属性のみの距離を計算する方法を定義します。さまざまな距離測定に対して、次の変数が定義されます。y(i、j):i番目の例のj番目の属性の値。したがって、y(1,3)-y(2,3)は、最初と2番目の例の3番目の属性の値の差です。距離測定として類似性を使用する場合、実際の距離は負の類似性として計算されます。
- EuclideanDistance:すべての属性の2次差分の合計の平方根。距離= Sqrt(Sum_(j = 1)[y(1、j)-y(2、j)] ^ 2)
- CanberraDistance:すべての属性の合計。被加数は、値の差の絶対値を絶対値の和で割ったものです。距離= Sum_(j = 1)| y(1、j)-y(2、j)| /(| y(1、j)| + | y(2、j)|)CanberraDistanceは、ランク付けされたリストを比較したり、コンピューターセキュリティの侵入検知によく使用されます。
- ChebychevDistance:すべての属性のすべての差の最大。距離= max_(j = 1)(| y(1、j)-y(2、j)|)
- CorrelationSimilarity:類似性は、2つの例の属性ベクトル間の相関として計算されます。
- CosineSimilarity:2つの例の属性ベクトル間の角度のコサインを測定する類似性測定。
- DiceSimilarity:数値属性のDiceSimilarityは、2 * Y1Y2 /(Y1 + Y2)として計算されます。 Y1Y2 =値の積の合計= Sum_(j = 1)y(1、j)* y(2、j)。 Y1 =最初の値の合計例= Sum_(j = 1)y(1、j)Y2 = 2番目の値の合計例= Sum_(j = 1)y(2、j)
- DynamicTimeWarpingDistance:ダイナミックタイムワーピングは、2つの時系列間の距離を測定するための時系列分析でよく使用されます。ここで、最初の例の属性ベクトルから2番目の例までの最適な「ワーピング」パス上の距離が計算されます。
- InnerProductSimilarity:類似性は、2つの例の属性ベクトルの積の合計として計算されます。距離=-類似度= -Sum_(j = 1)y(1、j)* y(2、j)
- JaccardSimilarity:JaccardSimilarityはY1Y2 /(Y1 + Y2-Y1Y2)として計算されます。 Y1Y2、Y1、Y2の定義については、DiceSimilarityを参照してください。
- KernelEuclideanDistance:距離は、変換された空間での2つの例のユークリッド距離によって計算されます。変換は選択されたカーネルによって定義され、パラメーターカーネルタイプ、ガンマ、シグマ1、シグマ2、シグマ3、シフト、次数、a、bによって構成されます。
- ManhattanDistance:属性値の絶対距離の合計。距離= Sum_(j = 1)| y(1、j)-y(2、j)|
- MaxProductSimilarity:類似度は、すべての属性値のすべての製品の最大値です。最大値がゼロ以下の場合、類似性は定義されません。距離=-類似度= -max_(j = 1)(y(1、j)* y(2、j))
- OverlapSimilarity:類似性は、数値属性の単純なマッチングの変形であり、minY1Y2 / min(Y1、Y2)として計算されます。 Y1、Y2の定義については、DiceSimilarityを参照してください。 minY1Y2 =値の最小値の合計= Sum_(j = 1)min [y(1、j)、y(2、j)]
範囲:
- divergence このパラメーターは、 メジャータイプパラメーターが ‘bregman divergences’に設定されている場合に使用されるBregmanダイバージェンスのタイプを定義します。さまざまな距離測定に対して、次の変数が定義されます。y(i、j):i番目の例のj番目の属性の値。したがって、y(1,3)-y(2,3)は、最初と2番目の例の3番目の属性の値の差です。
- GeneralizedIDivergence:距離はSum1 Sum2として計算されます。属性値が0以下の場合は適用されません。Sum1 = Sum_(j = 1)y(1、j)* ln [y(1、j)/ y(2、j)] Sum2 = Sum_( j = 1)[y(1、j)-y(2、j)]
- ItakuraSaitoDistance:ItakuraSaitoDistanceは、属性が1で値が0より大きいExampleSetでのみ計算できます。Dist= y(1,1)/ y(2,1)-ln [y(1,1)/ y(2,1)] -1
- KLDivergence:Kullback-Leibler発散は、1つの確率分布が2番目の予想される確率分布からどのように発散するかの尺度です。距離= Sum_(j = 1)[y(1、j)* log_2(y(1、j)/ y(2、j))]
- LogarithmicLoss:LogarithmicLossは、属性が1で値が0より大きいExampleSetに対してのみ計算できます。Dist= y(1,1)* ln [y(1,1)/ y(2,1)]-(y(1,1 )-y(2,1))
- LogisticLoss:LogisticLossは、1個の属性と0より大きい値を持つExampleSetでのみ計算できます。Dist= y(1,1)* ln [y(1,1)/ y(2,1)] +(1-y(1 、1))* ln [(1-y(1,1))/(1-y(2,1))]
- MahalanobisDistance:マハラノビス距離は、同じ分布のランダムなベクトルであるという仮定の下で、2つの例間の距離を測定します。したがって、共分散行列SはExampleSet全体で計算され、距離は次のように計算されます。
- SquaredEuclideanDistance:すべての属性の2次差分の合計。距離= Sum_(j = 1)[y(1、j)-y(2、j)] ^ 2
- SquaredLoss:SquaredLossは、1つの属性を持つExampleSetに対してのみ計算できます。距離= [y(1,1)-y(2,1)] ^ 2
範囲:
- kernel_typeこのパラメーターは、 数値測定パラメーターが「カーネルユークリッド距離」に設定されている場合にのみ使用できます。カーネル関数のタイプは、このパラメーターを介して選択されます。次のカーネルタイプがサポートされています。
- dot:ドットカーネルは、k(x、y)= x * yで定義されます。つまり、xとyの内積です。
- radial:ラジアルカーネルは、k(x、y)= exp(-g * || xy || ^ 2)で定義されます。gはカーネルガンマパラメーターで指定されたガンマです。調整可能なパラメーターガンマは、カーネルのパフォーマンスに大きな役割を果たしており、目前の問題に注意深く調整する必要があります。
- polynomial:多項式カーネルはk(x、y)=(x * y + 1)^ dで定義されます。dは多項式の次数で、_kernel degree_パラメーターで指定されます。多項式カーネルは、すべてのトレーニングデータが正規化される問題に適しています。
- sigmoid:これは双曲線正接シグモイドカーネルです。距離はtanh [a * Y1Y2 + b]として計算されます。ここで、Y1Y2は2つの例の属性ベクトルの内積です。 aおよびbは、カーネルaおよびカーネルbパラメーターを使用して調整できます。 aの一般的な値は1 / Nです。Nはデータディメンションです。 aとbのすべての選択が有効なカーネル関数につながるわけではないことに注意してください。
- anova:anovaカーネルは、exp(-g(xy))の和の累乗dで定義されます。ここで、gはガンマ、dは次数です。 2つはそれぞれカーネルガンマとカーネル次数パラメーターによって調整されます。
- epachnenikov:Epanechnikovカーネルは、-1〜1のuに対してこの関数(3/4)(1-u2)であり、その範囲外のuに対してゼロです。カーネルsigma1とカーネル次数の2つの調整可能なパラメーターがあります。
- gaussian_combination:これはガウスの組み合わせカーネルです。調整可能なパラメーターkernel sigma1、kernel sigma2、およびkernel sigma3があります。
- multiquadric:multiquadricカーネルは、|| xy || ^ 2 + c ^ 2の平方根で定義されます。調整可能なパラメーターkernel sigma1とkernel sigma shiftがあります。
範囲:
- kernel_gammaこれは、SVMカーネルパラメーターガンマです。このパラメーターは、 数値測定パラメーターが「Kernel Euclidean Distance」に設定され、 カーネルタイプパラメーターがradialまたはanovaに設定されている場合にのみ使用できます。範囲:
- kernel_sigma1これは、SVMカーネルパラメーターsigma1です。 数値尺度パラメータを「カーネルユークリッド距離」に設定されており、 カーネル型のパラメータがepachnenikov、 ガウス組み合わせまたはmultiquadricに設定されている場合、このパラメータにのみ使用可能です。範囲:
- kernel_sigma2これは、SVMカーネルパラメーターsigma2です。このパラメーターは、 数値測定パラメーターが「カーネルユークリッド距離」に設定され、 カーネルタイプパラメーターがガウスの組み合わせに設定されている場合にのみ使用できます。範囲:
- kernel_sigma3これは、SVMカーネルパラメーターsigma3です。このパラメーターは、 数値測定パラメーターが「カーネルユークリッド距離」に設定され、 カーネルタイプパラメーターがガウスの組み合わせに設定されている場合にのみ使用できます。範囲:
- kernel_shiftこれは、SVMカーネルパラメーターシフトです。このパラメーターは、 数値測定パラメーターが ‘Kernel Euclidean Distance’に設定され、 カーネルタイプパラメーターがmultiquadricに設定されている場合にのみ使用できます。範囲:
- kernel_degreeこれは、SVMカーネルパラメーターの次数です。このパラメーターは、 数値測定パラメーターが ‘Kernel Euclidean Distance’に設定され、 カーネルタイプパラメーターがPolynomial 、 anovaまたはepachnenikovに設定されている場合にのみ使用できます。範囲:
- kernel_aこれは、SVMカーネルパラメーターです。このパラメーターは、 数値測定パラメーターが「カーネルユークリッド距離」に設定され、 カーネルタイプパラメーターがニューラルに設定されている場合にのみ使用できます。範囲:
- kernel_bこれは、SVMカーネルパラメーターbです。 数値尺度パラメータを「カーネルユークリッド距離」に設定されており、 カーネル型パラメータが神経に設定されている場合、このパラメータにのみ使用可能です。範囲:
- use_local_random_seedこのパラメーターは、アルゴリズムのk個の異なる開始点のランダム化にローカルランダムシードを使用する必要があるかどうかを示します。範囲:
- local_random_seed[ ローカルランダムシードの使用]パラメーターがオンの場合、このパラメーターはローカルランダムシードを決定します。範囲:
チュートリアルプロセス
アイリスデータセットのクラスタリング
このチュートリアルプロセスでは、k-means演算子を使用してIrisデータセットがクラスター化されます。 Irisデータセットは、Samplesフォルダーから取得されます。また、ラベル属性も取得されますが、これはクラスターの割り当てと例のクラスとの比較のみを目的としています。ラベル属性はクラスタリングでは使用されません。詳細については、プロセスのコメントを参照してください。