聚類分析是根據事物自身的特性對被聚類對象進行類別劃分的統計分析方法,它的目的是根據某種相似度度量對數據集進行劃分。
目標數據文件:
目的:根據該數據中的變量特征進行聚類。
方法一:基于python在spyder中實現。
代碼如下:
代碼寫到這,進行了導入數據、查看數據、清洗數據(數據類型變更、去缺失值)。
清洗完數據之后,篩選出不同年份的數據放入新的數據框,并對這些數據進行相關分析corr()
相關分析之后發(fā)現,這兩個數值型變量“成年人吸煙占比”和“人均GDP (單位:國際元)”呈低度相關,決定根據這兩個變量的變量特征進行聚類。
提取最近年份2016年的數據中的“成年人吸煙占比”和“人均GDP (單位:國際元)”放入nin數據框中,但是nin數據框中 “成年人吸煙占比”和“人均GDP (單位:國際元)”的數據差距太大,不在一個量綱,所以要進行數據標準化。
數據標準化之后,導入KMeans模塊進行分類,分成了三類,并把分類標簽添加進nin數據框中,再做散點圖。

分類后導入輪廓系數評分模塊metrics查看評分:0.4466479445680197。
評分越接近1,效果越好!
懷疑是不是分類出問題,肘部法則看一下。

坡度趨于平緩的位置就是分類的數量,上圖中肘部法則建議分三類。
導出中心距離數據:
第一類:吸煙占比和其他兩類有明顯差異,比較高;
第二類:人均GDP和其他兩類有明顯差異,特別高;
第三類:吸煙占比、人均GDP和其他兩類有明顯差異,比較低。
聚類完成后,分析各分類對象的特征:
查看三個類別的數量
從代碼中可以nine數據框中的數據是2016年的原始數據,此次聚類的數據就是2016的數據,所以在nine數據框中添加分類標簽并導出為sk.csv.
在excel中對sk.csv中各類別數據進行描述性統計:
第一類,有61個國家,平均成年人吸煙占比接近30,人均GDP為中等水平。
第二類,有29個國家,平均成年人吸煙占比為21.5,在這三類國家里為中等,但是這一類國家的人均GDP較高。
第三類,有52個國家,平均成年人吸煙占比為12.3較低,人均GDP較低。
我覺得這個分類不夠細,決定用第二種方法進行聚類
方法二:基于spss進行聚類分析。
一、k-means均值聚類(省略了步驟,只呈現結果)
發(fā)現spss均值聚類結果和python聚類分析結果幾乎一樣。
二、系統聚類(省略了步驟,只呈現結果)
系統聚類最大分四類,最少分三類
驚訝的發(fā)現系統聚類分三類變得更模糊了。
驚喜的系統聚類分四類:
第一類:只有2個國家,根據吸煙占比和人均GDP,發(fā)現這是兩個富有的國家;
第二類:有81個國家,根據根據吸煙占比和人均GDP,發(fā)現包含了發(fā)達國家和發(fā)展中國家;
第三類:有42個國家,根據根據吸煙占比和人均GDP,發(fā)現包含了欠發(fā)展的國家;
第四類:有17個國家,根據根據吸煙占比和人均GDP,發(fā)現包含了較發(fā)達的國家。
在日常工作中,選擇哪一個聚類結果要結合我們的業(yè)務場景,這就是我常用的聚類分析方法,OVER!
看過的點個贊鴨!
