日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R语言聚类算法的应用实例

發(fā)布時(shí)間:2025/3/18 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言聚类算法的应用实例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一家批發(fā)經(jīng)銷商想將發(fā)貨方式從每周五次減少到每周三次,簡(jiǎn)稱成本,但是造成一些客戶的不滿意,取消了提貨,帶來更大虧損,項(xiàng)目要求是通過分析客戶類別,選擇合適的發(fā)貨方式,達(dá)到技能降低成本又能降低客戶不滿意度的目的。

什么是聚類

聚類將相似的對(duì)象歸到同一個(gè)簇中,幾乎可以應(yīng)用于所有對(duì)象,聚類的對(duì)象越相似,聚類效果越好。聚類與分類的不同之處在于分類預(yù)先知道所分的類到底是什么,而聚類則預(yù)先不知道目標(biāo),但是可以通過簇識(shí)別(cluster identification)告訴我們這些簇到底都是什么。

K-means

聚類的一種,之所以叫k-均值是因?yàn)樗梢园l(fā)現(xiàn)k個(gè)不同的簇,且每個(gè)簇的中心采用簇中所含值的均值計(jì)算而成。簇個(gè)數(shù)k是用戶給定的,每一個(gè)簇通過質(zhì)心來描述。

k-means的工作流程是:

  • 隨機(jī)確定k個(gè)初始點(diǎn)做為質(zhì)心
  • 給數(shù)據(jù)集中的每個(gè)點(diǎn)找距其最近的質(zhì)心,并分配到該簇
  • 將每個(gè)簇的質(zhì)心更新為該簇所有點(diǎn)的平均值
  • 循環(huán)上兩部,直到每個(gè)點(diǎn)的簇分配結(jié)果不在改變?yōu)橹?/li>

項(xiàng)目流程 載入數(shù)據(jù)集 import pandas as pd data = pd.read_csv("customers.csv"); 分析數(shù)據(jù)

顯示數(shù)據(jù)的一個(gè)描述

from IPython.display import display display(data.discrie());

分析數(shù)據(jù)是一門學(xué)問,感覺自己在這方面還需要多加練習(xí),數(shù)據(jù)描述包含數(shù)據(jù)總數(shù),特征,每個(gè)特征的均值,標(biāo)準(zhǔn)差,還有最小值、25%、50%、75%、最大值處的值,這些都可以很容易列出來,但是透過這些數(shù)據(jù)需要看到什么信息,如何與需求目的結(jié)合,最開始還是比較吃力的。可以先選擇幾個(gè)數(shù)值差異較大的樣本,然后結(jié)合數(shù)據(jù)描述和需求,對(duì)數(shù)據(jù)整體有一個(gè)把控。比如在Udacity的第三個(gè)項(xiàng)目中,給出客戶針對(duì)不同類型產(chǎn)品的年度采購額,分析猜測(cè)每個(gè)樣本客戶的類型。

  數(shù)據(jù)描述

  三個(gè)樣本客戶

  樣本客戶

每個(gè)客戶究竟是什么類型,這個(gè)問題困擾我好久,第一次回答我只是看那個(gè)方面采購額最大,就給它一個(gè)最近的類型,提交項(xiàng)目后Reviewer這樣建議:

恍然大悟,這才知道了該如何分析一份數(shù)據(jù)集,于是有了下面的回答

  回答

所以分析數(shù)據(jù)一定要結(jié)合統(tǒng)計(jì)數(shù)據(jù),四分位數(shù)和均值可以看做數(shù)據(jù)的骨架,能夠一定程度勾勒出數(shù)據(jù)的分布,可以通過箱線圖來可視化四分位數(shù)。

分析特征相關(guān)性

特征之間通常都有相關(guān)性,可以通過用移除某個(gè)特征后的數(shù)據(jù)集構(gòu)建一個(gè)監(jiān)督學(xué)習(xí)模型,用其余特征預(yù)測(cè)移除的特征,對(duì)結(jié)果進(jìn)行評(píng)分的方法來判斷特征間的相關(guān)性。比如用決策樹回歸模型和R2分?jǐn)?shù)來判斷某個(gè)特征是否必要。

如果是負(fù)數(shù),說明該特征絕對(duì)不能少,因?yàn)槿鄙倭司蜔o法擬合數(shù)據(jù)。如果是1,表示少了也無所謂,有一個(gè)跟它相關(guān)聯(lián)的特征能代替它,如果是0到1間的其他數(shù),則可以少,只是有一定的影響,越靠近0,影響越大。

也可以通過散布矩陣(scatter matrix)來可視化特征分布,如果一個(gè)特征是必須的,則它和其他特征可能不會(huì)顯示任何關(guān)系,如果不是必須的,則可能和某個(gè)特征呈線性或其他關(guān)系。

  散布矩陣圖舉例

數(shù)據(jù)預(yù)處理

(一)特征縮放如果數(shù)據(jù)特征呈偏態(tài)分布,通常進(jìn)行非線性縮放。

可以發(fā)現(xiàn)散布矩陣變成了下圖

特征縮放后的散布矩陣

(二)異常值檢測(cè)通常用Tukey的定義異常值的方法檢測(cè)異常值。

移除異常值需要具體情況具體考慮,但是要謹(jǐn)慎,因?yàn)槲覀冃枰浞掷斫鈹?shù)據(jù),記錄號(hào)移除的點(diǎn)以及移除原因。可以用counter來輔助尋找出現(xiàn)次數(shù)大于1的離群點(diǎn)。

(三)特征轉(zhuǎn)換特征轉(zhuǎn)換主要用到主成分分析發(fā),請(qǐng)查看之前介紹。

聚類

有些問題的聚類數(shù)目可能是已知的,但是我們并不能保證某個(gè)聚類的數(shù)目對(duì)這個(gè)數(shù)據(jù)是最優(yōu)的,因?yàn)槲覀儗?duì)數(shù)據(jù)的結(jié)構(gòu)是不清楚的。但是我們可以通過計(jì)算每一個(gè)簇中點(diǎn)的輪廓系數(shù)來衡量聚類的質(zhì)量。數(shù)據(jù)點(diǎn)的輪廓系數(shù)衡量了分配給它的簇的相似度,范圍-1(不相似)到1(相似)。平均輪廓系數(shù)為我們提供了一種簡(jiǎn)單地度量聚類質(zhì)量的方法。下面代碼會(huì)顯示聚類數(shù)為2時(shí)的平均輪廓系數(shù),可以修改n_clusters來得到不同聚類數(shù)目下的平均輪廓系數(shù)。

?

▍需要幫助?聯(lián)系我們

?

轉(zhuǎn)載于:https://www.cnblogs.com/tecdat/p/9518514.html

總結(jié)

以上是生活随笔為你收集整理的R语言聚类算法的应用实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。