顧客セグメンテーションクラスタリングクラスタのK-medoidsの最適クラスタ番号を使用してR言語

オリジナルリンク:http://tecdat.cn/?p=9997


K-medoidsクラスタのプロフィール

K-medoids別のクラスタリングアルゴリズムは、データセット内のパケットの位置を特定するために使用することができます。クラスタリングK-medoidsとk平均クラスタリングは、いくつかの相違点を除いて、非常によく似ています。わずかに異なるのk-means法でクラスタリングアルゴリズムの最適化K-medoids。このセクションでは、K-medoidsクラスタリングを検討します。

クラスタリングアルゴリズムK-medoids

K-medoidsクラスタを行うことができるアルゴリズムの多くの異なる種類がありますが、最も簡単で効果的な方法はPAMです。PAMでは、我々は、クラスタ中心を見つけるには、次の手順を実行します。

  1. スキャッタグラムのクラスタ中心から開始点として選択されたK個のデータポイント。

  2. 散布図内のすべてのポイントの彼らの距離が計算されます。

  3. 最寄りのクラスタ中心に各分類のポイント。

  4. 各クラスタ内の新しいポイントを選択し、そのようなクラスタへの最小距離の和がすべてのポイントこと。

  5. 繰り返し  ステップ2  の中心までは変化して停止します。

それに加えて、見ることができ、ステップ1  及び  ステップ4アルゴリズムアルゴリズムをクラスタリング外部PAM同じK-手段。最も実用的な目的のために、クラスター分析、K-medoidsの結果は、ほぼ同一のk平均クラスタリング。それは外れ値よりも堅牢であるため、しかし、いくつかの特別なケースでは、我々は、データセット内の外れ値、したがって好適K-medoidsクラスタリングを持っています。

クラスタコードK-medoids

このセクションでは、我々は、同じ虹彩データは、2つの前の段落で使用し、その結果が前回得られた結果と有意に異なるかどうかを確認するために比較に使用します。

Kは-メドイドクラスタリングを実現します

この演習では、我々はR kの-medoidsを実行するために事前に構築されたライブラリを使用します。

  1. データセットの最初の2つの列が格納されて  iris_data  変数を:

     

    iris_data<-iris[,1:2]
  2. パッケージをインストールします。

     

    install.packages("cluster")
  3. インポートパッケージ:

     

    library("cluster")
  4. PAMクラスタリング結果がに保存されている  km.resの  変数:

     

    km<-pam(iris_data,3)
  5. インポートライブラリ:

     

    library("factoextra")
  6. 図面にプロットされたPAMのクラスタリング結果:

     

    fviz_cluster(km, data = iris_data,palette = "jco",ggtheme = theme_minimal())

    次のように出力されます。

    図:クラスタリングがk-medoids結果

その結果、K-medoidsクラスタリングは、前のセクションで作られたクラスタリング当社のk-means法の結果と大きな違いはありません。

したがって、私たちは似たk-meansクラスタリングによって3を持っているクラスタとクラスタ3つのクラスター、に私たちのデータセットアルゴリズムPAMの前を見ることができます。

 

図:結果のk-medoidsは、クラスタリングとk-meansクラスタリング

前の図に、k-平均クラスタリングが観察されたどのように近い中心にk-meansクラスタリングが、既存のデータポイントオーバーラップ直接k-meansクラスタリングの中心ではなく、k-meansクラスタリングの中心。

クラスタリングとK-medoidsをクラスタリングK-手段

今、私たちは、k-meansクラスタリングを研究し、K-medoidsている、彼らはほとんど同じであることを、我々は彼らとするとき、クラスタのどのタイプを使用するとの違いを検討します。

  • 計算の複雑さ:両方の方法において、K-medoidsクラスタリングは、より計算的に複雑です。我々のデータセットは、(> 10,000)、我々はクラスタリングK-medoidsに関して、計算時間を節約したいとき、我々はクラスタリング手段をkに好む大きすぎる場合。

    データセットが大きいかどうかは、利用可能なコンピューティングパワーに完全に依存します。

  • 以上の外れ値より外れ値に容易に影響を受けやすいk-meansクラスタリング:外れ値の存在。

  • クラスタ中心:アルゴリズムとKクラスタ中心をk-meansクラスタリングは、異なる方法で見出されます。

K-medoidsの顧客セグメンテーションを使用してクラスタリング

顧客データセットは、k-meansクラスタリング及びk-medoidsを使用して実行し、結果を比較します。

ステップ:

  1. 2つだけ、2次元可視化の便利なクラスタのための、すなわち食料品店や凍結を選択します。

  2. K-medoidsを使用してクラスタには、グラフを描く、データは4つのクラスタを示しています。

  3. 図にプロットされた4つのクラスタを用いてクラスタリングK-手段。

  4. 二つの図を比較すると、どのように異なるの二つの方法の結果を確認します。

結果は、図は以下のk-meansクラスタリングのようになります。

 

図:マップをクラスタリング期待k平均

クラスターの最適な数を決定します

これまでのところ、我々は、虹彩データセットを研究している、データは、我々はこのような知見に基づいて、3つのクラスターに分かれているどのように多くの花、およびデータセットを選択する知っている設定しました。しかし、教師なし学習は、私たちの主なタスクは、このような自然なクラスタやカテゴリの数を設定するデータとして、データのない情報を扱うことです。同様に、クラスタはまた、探索データ解析の形態であってもよいです。

クラスター索引のタイプ

クラスターの最適数を決定するために、教師なし学習法は、複数のです。以下は、私たちは、この章で検討する内容です。

  • プロフィールスコア

  • 肘の法則/ WSS

  • 差距统计

轮廓分数

轮廓分数或平均轮廓分数计算用于量化通过聚类算法实现的聚类质量。

轮廓分数在1到-1之间。如果聚类的轮廓分数较低(介于0和-1之间),则表示该聚类散布开或该聚类的点之间的距离较高。如果聚类的轮廓分数很高(接近1),则表示聚类定义良好,并且聚类的点之间的距离较低,而与其他聚类的点之间的距离较高。因此,理想的轮廓分数接近1。

 

计算轮廓分数

我们学习如何计算具有固定数量簇的数据集的轮廓分数:

  1. 将iris数据集的前两列(隔片长度和隔宽度)放在  iris_data  变量中:

     

  2. 执行k-means集群:

     

  3. 将k均值集群存储在  km.res  变量中:

     

  4. 将所有数据点的成对距离矩阵存储在  pair_dis  变量中:

     

  5. 计算数据集中每个点的轮廓分数:

     

  6. 绘制轮廓分数图:

     

    输出如下:

  7. 图:每个群集中每个点的轮廓分数用单个条形表示

前面的图给出了数据集的平均轮廓分数为0.45。它还显示了聚类和点聚类的平均轮廓分数。

我们计算了三个聚类的轮廓分数。但是,要确定要拥有多少个群集,就必须计算数据集中多个群集的轮廓分数。

确定最佳群集数

针对k的各个值计算轮廓分数来确定最佳的簇数:

从前面的图中,选择得分最高的k值;即2。根据轮廓分数,聚类的最佳数量为2。

  1. 将数据集的前两列(长度和宽度)放在  iris_data  变量中:

  2. 导入  库

  3. 绘制轮廓分数与簇数(最多20个)的图形:

    注意

    在第二个参数中,可以将k-means更改为k-medoids或任何其他类型的聚类。

    输出如下:

    图:聚类数与平均轮廓分数

WSS /肘法

为了识别数据集中的聚类,我们尝试最小化聚类中各点之间的距离,并且平方和(WSS)方法可以测量该距离  。WSS分数是集群中所有点的距离的平方的总和。

使用WSS确定群集数

在本练习中,我们将看到如何使用WSS确定集群数。执行以下步骤。

  1. 将虹膜数据集的前两列(隔片长度和隔片宽度)放在  iris_data  变量中:

  2. 导入  库

  3. 绘制WSS与群集数量的图表

    输出如下:

  4. 图:WSS与群集数量

在前面的图形中,我们可以将图形的肘部选择为k = 3,因为在k = 3之后WSS的值开始下降得更慢。选择图表的肘部始终是一个主观选择,有时可能会选择k = 4或k = 2而不是k = 3,但是对于这张图表,很明显k> 5是不适合k的值,因为它们不是图形的肘部,而是图形的斜率急剧变化的地方。

差距统计

差距统计数据是在数据集中找到最佳聚类数的最有效方法之一。它适用于任何类型的聚类方法。通过比较我们观察到的数据集与没有明显聚类的参考数据集生成的聚类的WSS值,计算出Gap统计量。

因此,简而言之,Gap统计量用于测量观察到的数据集和随机数据集的WSS值,并找到观察到的数据集与随机数据集的偏差。为了找到理想的聚类数,我们选择k的值,该值使我们获得Gap统计量的最大值。

利用间隙统计量计算理想的簇数

在本练习中,我们将使用Gap统计信息计算理想的聚类数目:

  1. 将Iris数据集的前两列(隔片长度和隔片宽度)放在  iris_data  变量中

     

  2. 导入  factoextra  库

     

  3. 绘制差距统计与集群数量(最多20个)的图表:

     

    图1.35:差距统计与集群数量

如上图所示,Gap统计量的最大值是k = 3。因此,数据集中理想的聚类数目为3。

找到理想的细分市场数量

使用上述所有三种方法在客户数据集中找到最佳聚类数量:

将变量中的批发客户数据集的第5列到第6列加载。

  1. 用轮廓分数计算k均值聚类的最佳聚类数。

  2. 用WSS分数计算k均值聚类的最佳聚类数。

  3. 使用Gap统计量计算k均值聚类的最佳聚类数。

结果将是三个图表,分别代表轮廓得分,WSS得分和Gap统计量的最佳聚类数。

发布了445 篇原创文章 · 获赞 246 · 访问量 97万+

おすすめ

転載: blog.csdn.net/qq_19600291/article/details/103730713