那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何選擇適合的聚類算法?聚類分析時(shí)需要使用什么變量?

資治通信 ? 來(lái)源:lp ? 2019-04-01 17:19 ? 次閱讀

聚類分析(cluster analysis)是常見(jiàn)的數(shù)據(jù)挖掘手段,其主要假設(shè)是數(shù)據(jù)間存在相似性。而相似性是有價(jià)值的,因此可以被用于探索數(shù)據(jù)中的特性以產(chǎn)生價(jià)值。常見(jiàn)應(yīng)用包括:

用戶分割:將用戶劃分到不同的組別中,并根據(jù)簇的特性而推送不同的廣告欺詐檢測(cè):發(fā)現(xiàn)正常與異常的用戶數(shù)據(jù),識(shí)別其中的欺詐行為

如上圖,數(shù)據(jù)可以被分到紅藍(lán)綠三個(gè)不同的簇(cluster)中,每個(gè)簇應(yīng)有其特有的性質(zhì)。顯然,聚類分析是一種無(wú)監(jiān)督學(xué)習(xí),是在缺乏標(biāo)簽的前提下的一種分類模型。當(dāng)我們對(duì)數(shù)據(jù)進(jìn)行聚類后并得到簇后,一般會(huì)單獨(dú)對(duì)每個(gè)簇進(jìn)行深入分析,從而得到更加細(xì)致的結(jié)果。

常見(jiàn)的聚類方法有不少,比如K均值(K-Means),譜聚類(Spectral Clustering),層次聚類(Hierarchical Clustering),大部分機(jī)器學(xué)習(xí)參考書(shū)上都有介紹,此處不再贅述。今天主要探討實(shí)際聚類分析時(shí)的一些技巧。

01 如何選擇適合的聚類算法

聚類算法的運(yùn)算開(kāi)銷(xiāo)往往很高,所以最重要的選擇標(biāo)準(zhǔn)往往是數(shù)據(jù)量。

但數(shù)據(jù)量上升到一定程度時(shí),如大于10萬(wàn)條數(shù)據(jù),那么大部分聚類算法都不能使用。最近讀到的一篇對(duì)比不同算法性能隨數(shù)據(jù)量的變化[1]很有意思。在作者的數(shù)據(jù)集上,當(dāng)數(shù)據(jù)量超過(guò)一定程度時(shí)僅K均值和HDBSCAN可用。

我的經(jīng)驗(yàn)也是,當(dāng)數(shù)據(jù)量超過(guò)5萬(wàn)條數(shù)據(jù)以后,K均值可能是比較實(shí)際的算法。但值得注意的是,K均值的效果往往不是非常好,我曾在如何正確使用「K均值聚類」?中對(duì)K均值進(jìn)行過(guò)總結(jié):

因此不難看出,K均值算法最大的優(yōu)點(diǎn)就是運(yùn)行速度快,能夠處理的數(shù)據(jù)量大,且易于理解。但缺點(diǎn)也很明顯,就是算法性能有限,在高維上可能不是最佳選項(xiàng)。

一個(gè)比較粗淺的結(jié)論是,在數(shù)據(jù)量不大時(shí),可以優(yōu)先嘗試其他算法。當(dāng)數(shù)據(jù)量過(guò)大時(shí),可以試試HDBSCAN。僅當(dāng)數(shù)據(jù)量巨大,且無(wú)法降維或者降低數(shù)量時(shí),再嘗試使用K均值。

一個(gè)顯著的問(wèn)題信號(hào)是,如果多次運(yùn)行K均值的結(jié)果都有很大差異,那么有很高的概率K均值不適合當(dāng)前數(shù)據(jù),要對(duì)結(jié)果謹(jǐn)慎的分析。

另一種替代方法是對(duì)原始數(shù)據(jù)進(jìn)行多次隨機(jī)采樣得到多個(gè)小樣本,并在小樣本上聚類,并融合結(jié)果。比如原始數(shù)據(jù)是100萬(wàn),那么從中隨機(jī)采樣出100個(gè)數(shù)據(jù)量等于1萬(wàn)的樣本,并在100個(gè)小數(shù)據(jù)集上用更為復(fù)雜的算法進(jìn)行聚類,并最終融合結(jié)果。

此處需要注意幾點(diǎn)問(wèn)題:

隨機(jī)采樣的樣本大小很重要,也不能過(guò)小。需要足夠有代表性,即小樣本依然可以代表總體的數(shù)據(jù)分布。如果最終需要?jiǎng)澐趾芏鄠€(gè)簇,那么要非常小心,因?yàn)樾颖究赡軣o(wú)法體現(xiàn)體量很小的簇。

在融合過(guò)程中要關(guān)注樣本上的聚類結(jié)果是否穩(wěn)定,隨機(jī)性是否過(guò)大。要特別注意不同樣本上的簇標(biāo)號(hào)是否統(tǒng)一,如何證明不同樣本上的簇結(jié)果是一致的。

因此我的經(jīng)驗(yàn)是,當(dāng)數(shù)據(jù)量非常大時(shí),可以優(yōu)先試試K均值聚類,得到初步的結(jié)果。如果效果不好,再通過(guò)隨機(jī)采樣的方法構(gòu)建更多小樣本,手動(dòng)融合模型提升聚類結(jié)果,進(jìn)一步優(yōu)化模型。

02 聚類分析時(shí)需要使用什么變量?

這個(gè)是一個(gè)非常難回答的問(wèn)題,而且充滿了迷惑性,不少人都做錯(cuò)了。舉個(gè)簡(jiǎn)單的例子,我們現(xiàn)在有很多客戶的商品購(gòu)買(mǎi)信息,以及他們的個(gè)人信息,是否該用購(gòu)買(mǎi)信息+個(gè)人信息來(lái)進(jìn)行聚類呢?

未必,我們需要首先回答最重要的一個(gè)問(wèn)題:我們要解決什么問(wèn)題?

如果我們用個(gè)人信息,如性別、年齡進(jìn)行聚類,那么結(jié)果會(huì)被這些變量所影響,而變成了對(duì)性別和年齡的聚類。所以我們應(yīng)該先問(wèn)自己,“客戶購(gòu)物習(xí)慣”更重要還是“客戶的個(gè)人信息”更重要?

如果我們最在意的是客戶怎么花錢(qián),以及購(gòu)物特征,那就應(yīng)該完全排除客戶的個(gè)人信息(如年齡性別家庭住址),僅使用購(gòu)買(mǎi)相關(guān)的數(shù)據(jù)進(jìn)行聚類。這樣的聚類結(jié)果才是完全由購(gòu)買(mǎi)情況所驅(qū)動(dòng)的,而不會(huì)受到用戶個(gè)人信息的影響。

那該如何更好的利用客戶的個(gè)人信息呢?這個(gè)應(yīng)該被用在聚類之后。當(dāng)我們得到聚類結(jié)果后,可以對(duì)每個(gè)簇進(jìn)行分析,分析簇中用戶的個(gè)人情況,比如高凈值客戶的平均年齡、居住區(qū)域、開(kāi)什么車(chē)。無(wú)關(guān)變量不應(yīng)該作為輸入,而應(yīng)該得到聚類結(jié)果后作為分析變量。

一般情況下,我們先要問(wèn)自己,這個(gè)項(xiàng)目在意的是什么?很多時(shí)候個(gè)人信息被錯(cuò)誤的使用在了聚類當(dāng)中,聚類結(jié)果完全由個(gè)人信息所決定(比如男性和女性被分到了兩個(gè)簇中),對(duì)于商業(yè)決策的意義就不大了。一般來(lái)說(shuō),應(yīng)該由商業(yè)數(shù)據(jù)驅(qū)動(dòng),得到聚類結(jié)果后再對(duì)每個(gè)簇中的用戶個(gè)人信息進(jìn)行整合分析。

但值得注意的是,這個(gè)方法不是絕對(duì)的。在聚類中有時(shí)候也會(huì)適當(dāng)引入個(gè)人信息,也可以通過(guò)調(diào)整不同變量的權(quán)重來(lái)調(diào)整每個(gè)變量的影響。

03 如何分析變量的重要性?

首先變量選擇是主觀的,完全依賴于建模者對(duì)于問(wèn)題的理解,而且往往都是想到什么用什么。因?yàn)榫垲愂菬o(wú)監(jiān)督學(xué)習(xí),因此很難評(píng)估變量的重要性。介紹兩種思考方法:

考慮變量的內(nèi)在變化度與變量間的關(guān)聯(lián)性:一個(gè)變量本身方差很小,那么不易對(duì)聚類起到很大的影響。如果變量間的相關(guān)性很高,那么高相關(guān)性間的變量應(yīng)該被合并處理。直接采用算法來(lái)對(duì)變量重要性進(jìn)行排序:比如 Principal Feature Analysis [2],網(wǎng)上有現(xiàn)成的代碼 [3]。

另一個(gè)雞生蛋蛋生雞的問(wèn)題是,如果我用算法找到了重要特征,那么僅用重要特征建模可以嗎?這個(gè)依然不好說(shuō),我覺(jué)得最需要去除的是高相關(guān)性的變量,因?yàn)楹芏嗑垲愃惴o(wú)法識(shí)別高相關(guān)性,會(huì)重復(fù)計(jì)算高相關(guān)性特征,并夸大了其影響,比如K均值。

04 如何證明聚類的結(jié)果有意義?如何決定簇的數(shù)量?

聚類分析是無(wú)監(jiān)督學(xué)習(xí),因此沒(méi)有具體的標(biāo)準(zhǔn)來(lái)證明結(jié)果是對(duì)的或者錯(cuò)的。一般的判斷方法無(wú)外乎三種:

人為驗(yàn)證聚類結(jié)果符合商業(yè)邏輯。比如我們對(duì)彩票客戶進(jìn)行聚類,最終得到4個(gè)簇,其中分為:

“高購(gòu)買(mǎi)力忠實(shí)客戶”:花了很多錢(qián)的忠實(shí)客戶,他們可能常年購(gòu)買(mǎi)且花費(fèi)不菲

“普通忠實(shí)客戶”:常年購(gòu)買(mǎi),但每次的購(gòu)買(mǎi)額度都不大

“刺激性消費(fèi)單次購(gòu)買(mǎi)者”:只購(gòu)買(mǎi)了幾次,但是一擲千金

“謹(jǐn)慎的單次購(gòu)買(mǎi)者”:只購(gòu)買(mǎi)了幾次,每次買(mǎi)的都很謹(jǐn)慎

我們可以用通過(guò)商業(yè)邏輯來(lái)解釋聚類結(jié)果,結(jié)果應(yīng)該大致符合行業(yè)專家的看法。最終你的聚類結(jié)果需要回歸到現(xiàn)實(shí)的商業(yè)邏輯上去,這樣才有意義。

預(yù)先設(shè)定一些評(píng)估標(biāo)準(zhǔn),比如簇內(nèi)的緊湊度和簇間的疏離度,或者定義好的函數(shù)如Silhouette Coefficient。一般來(lái)說(shuō)設(shè)定一個(gè)好的評(píng)估標(biāo)準(zhǔn)并不容易,所以不能死板的單純依賴評(píng)估函數(shù)。

通過(guò)可視化來(lái)證明不同簇之間的差異性。因?yàn)槲覀円话阌谐^(guò)兩個(gè)變量,所以會(huì)需要先對(duì)數(shù)據(jù)進(jìn)行壓縮,比如很多流形學(xué)習(xí)的方法多維縮放(multi-dimensional scaling)。

以下圖為例,我把數(shù)據(jù)分成了四個(gè)簇,并用T-SNE壓縮到二維并繪制出來(lái)。從直觀上看,不同簇間有了一定區(qū)別。類似的可視化也可以在變量間兩兩繪制,或者直接畫(huà)pairplot。

所以如何定義一個(gè)好的聚類結(jié)果?我認(rèn)為應(yīng)該符合幾個(gè)基本標(biāo)準(zhǔn):

符合商業(yè)常識(shí),大致方向上可以被領(lǐng)域?qū)<宜?yàn)證可視化后有一定的區(qū)別,而并非完全隨機(jī)且交織在一起如果有預(yù)先設(shè)定的評(píng)估函數(shù),評(píng)估結(jié)果較為優(yōu)秀

因此決定簇的數(shù)量也應(yīng)該遵循這個(gè)邏輯,適當(dāng)?shù)臄?shù)量應(yīng)該滿足以上三點(diǎn)條件。如果某個(gè)簇的數(shù)量過(guò)大或者過(guò)小,那可以考慮分裂或者合并簇。

當(dāng)然,聚類作為無(wú)監(jiān)督學(xué)習(xí),有很多模棱兩可的地方。但應(yīng)時(shí)時(shí)牢記的是,機(jī)器學(xué)習(xí)模型應(yīng)服務(wù)商業(yè)決策,脫離問(wèn)題空談模型是沒(méi)有意義的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)挖掘
    +關(guān)注

    關(guān)注

    1

    文章

    406

    瀏覽量

    24322
  • 聚類算法
    +關(guān)注

    關(guān)注

    2

    文章

    118

    瀏覽量

    12158
  • 聚類分析
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    7427

原文標(biāo)題:【集客經(jīng)營(yíng)】干貨:如何對(duì)用戶進(jìn)行「聚類分析」?

文章出處:【微信號(hào):xiacoinfo,微信公眾號(hào):資治通信】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一種基于GiST的層次算法

    層次方法是聚類分析的一個(gè)重要方法。該文利用通用搜索樹(shù)實(shí)現(xiàn)了一種新的層次算法,可以把整個(gè)
    發(fā)表于 04-23 10:10 ?24次下載

    算法研究

    算法研究:對(duì)近年來(lái)算法的研究現(xiàn)狀與新進(jìn)展進(jìn)行歸納總結(jié).一方面對(duì)近年來(lái)提出的較有代表性的
    發(fā)表于 10-31 08:57 ?18次下載

    基于PLSA模型的用戶興趣算法研究

    對(duì)用戶訪問(wèn)日志數(shù)據(jù)進(jìn)行分析,構(gòu)造會(huì)話-類型矩陣,利用概率潛在語(yǔ)義分析模型建立合適的用戶興趣聚類分析算法,提高用戶興趣
    發(fā)表于 01-27 15:39 ?19次下載

    算法融合算法研究

    算法融合算法研究首先對(duì)
    發(fā)表于 08-10 15:08 ?33次下載
    <b class='flag-5'>聚</b><b class='flag-5'>類</b><b class='flag-5'>算法</b>及<b class='flag-5'>聚</b><b class='flag-5'>類</b>融合<b class='flag-5'>算法</b>研究

    一種擬人算法在PHM聚類分析中的應(yīng)用

    一種擬人算法在PHM聚類分析中的應(yīng)用_賀呈磊
    發(fā)表于 01-07 21:39 ?0次下載

    基于C均值的定位算法

    為了提高WSN節(jié)點(diǎn)定位精度,針對(duì)測(cè)距誤差對(duì)定位結(jié)果的影響,提出基于模糊C均值的定位算法算法首先利用多邊定位算法得到若干個(gè)定位結(jié)果,利用
    發(fā)表于 11-09 17:47 ?10次下載

    聚類分析的簡(jiǎn)單案例

    聚類分析經(jīng)常和有監(jiān)督分類相混淆,有監(jiān)督分類是為定義的分類響應(yīng)變量預(yù)測(cè)分組或者類別關(guān)系。而聚類分析,從另一方面考慮,它是一種無(wú)監(jiān)督分類技術(shù)。它能夠在所有輸入變量的基礎(chǔ)上識(shí)別出數(shù)據(jù)集中的分
    的頭像 發(fā)表于 02-23 10:00 ?7.6w次閱讀
    <b class='flag-5'>聚類分析</b>的簡(jiǎn)單案例

    淺談Matlab中的聚類分析 Matlab程序的設(shè)計(jì)

    Matlab 提供系列函數(shù)用于聚類分析,歸納起來(lái)具體方法有如下: 方法一:直接,利用 clusterdata 函數(shù)對(duì)樣本數(shù)據(jù)進(jìn)行一次
    發(fā)表于 05-18 15:04 ?7401次閱讀

    如何使用K-Means算法改進(jìn)的特征加權(quán)算法詳細(xì)資料概述

    聚類分析是將研究對(duì)象分為相對(duì)同質(zhì)的群組的統(tǒng)計(jì)分析技術(shù),聚類分析的核心就是發(fā)現(xiàn)有用的對(duì)象簇。K-means
    發(fā)表于 12-20 10:28 ?10次下載

    正確選擇算法的建議

    算法十分容易上手,但是選擇恰當(dāng)?shù)?b class='flag-5'>聚算法并不是一
    的頭像 發(fā)表于 03-15 17:10 ?2174次閱讀

    如何在python中安裝和使用頂級(jí)算法?

    聚類分析是無(wú)監(jiān)督學(xué)習(xí)問(wèn)題。它通常被用作數(shù)據(jù)分析技術(shù),用于發(fā)現(xiàn)數(shù)據(jù)中的有趣模式,例如基于其行為的客戶群。有許多
    的頭像 發(fā)表于 03-12 18:23 ?2272次閱讀

    10種算法和Python代碼1

    分享一篇關(guān)于的文章: **10種算法和Python代碼** 。文末提供`jupyter notebook`
    的頭像 發(fā)表于 02-20 13:57 ?891次閱讀
    10種<b class='flag-5'>聚</b><b class='flag-5'>類</b><b class='flag-5'>算法</b>和Python代碼1

    10種算法和Python代碼2

    分享一篇關(guān)于的文章: **10種算法和Python代碼** 。文末提供`jupyter notebook`
    的頭像 發(fā)表于 02-20 13:57 ?1043次閱讀
    10種<b class='flag-5'>聚</b><b class='flag-5'>類</b><b class='flag-5'>算法</b>和Python代碼2

    10種算法和Python代碼3

    分享一篇關(guān)于的文章: **10種算法和Python代碼** 。文末提供`jupyter notebook`
    的頭像 發(fā)表于 02-20 13:57 ?1186次閱讀
    10種<b class='flag-5'>聚</b><b class='flag-5'>類</b><b class='flag-5'>算法</b>和Python代碼3

    10種算法和Python代碼4

    分享一篇關(guān)于的文章: **10種算法和Python代碼** 。文末提供`jupyter notebook`
    的頭像 發(fā)表于 02-20 13:57 ?1343次閱讀
    10種<b class='flag-5'>聚</b><b class='flag-5'>類</b><b class='flag-5'>算法</b>和Python代碼4
    虎在什么方位做生意好| 威尼斯人娱乐场 澳门| 乐九百家乐官网游戏| 百家乐真人视屏游戏| 澳门美高梅线上娱乐| 24山方位| 万利娱乐城开户| 大家旺百家乐官网的玩法技巧和规则 | 诺贝尔百家乐官网的玩法技巧和规则 | 百家乐官网唯一能长期赢钱的方法 | 日博网| 风水24山走水| 太阳城77scs| 真人百家乐现金游戏| 真人百家乐官网宣传| 百家乐六合彩| 赌百家乐官网的体会| 真人百家乐赌场娱乐网规则| 澳门百家乐官网威尼斯| 全讯网官网| 赌场百家乐官网图片| 财神娱乐城怎么样| 做生意需要找风水先生吗| 百家乐怎样赢| 百家乐连跳趋势| 百家乐官网2号说名书| 大发888 赌博网站大全| 百家乐官网官网网址| 金沙县| 单机百家乐小游戏| 新时代百家乐官网娱乐城| 二八杠技巧培训| 做生意的门的方向| 百家乐官网破解视频| 678百家乐博彩赌场娱乐网规则| 百家乐官网可以出千吗| 老虎机游戏| 百家乐一黑到底| 百家乐官网龙虎台布作弊技巧 | pc百家乐官网模拟游戏| 克山县|