最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

使用自組織映射神經(jīng)網(wǎng)絡(luò)(SOM)進(jìn)行客戶細(xì)分|附代碼數(shù)據(jù)

2023-04-14 19:21 作者:拓端tecdat  | 我要投稿

全文下載鏈接:http://tecdat.cn/?p=18726

最近我們被客戶要求撰寫關(guān)于自組織映射神經(jīng)網(wǎng)絡(luò)(SOM)的研究報告,包括一些圖形和統(tǒng)計輸出。

自組織_映射神經(jīng)網(wǎng)絡(luò)(SOM)是一種無監(jiān)督的數(shù)據(jù)可視化技術(shù),可用于可視化低維(通常為2維)表示形式的高維數(shù)據(jù)集。在本文中,我們研究了如何使用R創(chuàng)建用于客戶細(xì)分的SOM

SOM由1982年在芬蘭的Teuvo Kohonen首次描述,而Kohonen在該領(lǐng)域的工作使他成為世界上被引用最多的芬蘭科學(xué)家。通常,SOM的可視化是六邊形節(jié)點的彩色2D圖。

SOM

SOM可視化由多個“節(jié)點”組成。每個節(jié)點向量具有:

  • 在SOM網(wǎng)格上的位置

  • 與輸入空間維度相同的權(quán)重向量。(例如,如果您的輸入數(shù)據(jù)代表人,則可能具有變量“年齡”,“性別”,“身高”和“體重”,網(wǎng)格上的每個節(jié)點也將具有這些變量的值)

  • 輸入數(shù)據(jù)中的關(guān)聯(lián)樣本。輸入空間中的每個樣本都“映射”或“鏈接”到網(wǎng)格上的節(jié)點。一個節(jié)點可以代表多個輸入樣本。

SOM的關(guān)鍵特征是原始輸入數(shù)據(jù)的拓?fù)涮卣鞅A粼趫D上。這意味著將相似的輸入樣本(其中相似性是根據(jù)輸入變量(年齡,性別,身高,體重)定義的)一起放置在SOM網(wǎng)格上。例如,所有高度大約為1.6m的55歲女性將被映射到網(wǎng)格同一區(qū)域中的節(jié)點??紤]到所有變量,身材矮小的人將被映射到其他地方。在身材上,高個的男性比小個的胖男性更接近高個頭的女性,因為他們“相似”得多。

SOM熱圖

典型的SOM可視化是“熱圖”。熱圖顯示了變量在SOM中的分布。理想情況下,相似年齡的人應(yīng)該聚集在同一地區(qū)。

下圖使用兩個熱圖說明平均教育水平和失業(yè)率之間的關(guān)系。

SOM算法

從樣本數(shù)據(jù)集生成SOM的算法可總結(jié)如下:

  • 選擇地圖的大小和類型。形狀可以是六邊形或正方形,具體取決于所需節(jié)點的形狀。通常,最好使用六邊形網(wǎng)格,因為每個節(jié)點都具有6個近鄰 。

  • 隨機初始化所有節(jié)點權(quán)重向量。

  • 從訓(xùn)練數(shù)據(jù)中選擇一個隨機數(shù)據(jù)點,并將其呈現(xiàn)給SOM。

  • 在地圖上找到“最佳匹配單位”(BMU)–最相似的節(jié)點。使用歐幾里德距離公式計算相似度。

  • 確定BMU“鄰居”內(nèi)的節(jié)點。
    –鄰域的大小隨每次迭代而減小。

  • 所選數(shù)據(jù)點調(diào)整BMU鄰域中節(jié)點的權(quán)重。
    –學(xué)習(xí)率隨著每次迭代而降低。
    –調(diào)整幅度與節(jié)點與BMU的接近程度成正比。

  • 重復(fù)步驟2-5,進(jìn)行N次迭代/收斂。

R中的SOM

訓(xùn)練

R可以創(chuàng)建SOM和可視化。

#?在R中創(chuàng)建自組織映射#?創(chuàng)建訓(xùn)練數(shù)據(jù)集(行是樣本,列是變量#?在這里,我選擇“數(shù)據(jù)”中可用的變量子集data_train?<-?data[,?c(3,4,5,8)]#將帶有訓(xùn)練數(shù)據(jù)的數(shù)據(jù)框更改為矩陣 #同時對所有變量進(jìn)行標(biāo)準(zhǔn)化? #SOM訓(xùn)練過程。 data_train_matrix?<-?as.matrix(scale(data_train)) #創(chuàng)建SOM網(wǎng)格? #在訓(xùn)練SOM之前先訓(xùn)練網(wǎng)格? ?grid(xdim?=?20,?ydim=20,?topo="hexagonal") #最后,訓(xùn)練SOM,迭代次數(shù)選項, #學(xué)習(xí)率 model?<-?som(data_train_matrix)

可視化

可視化可以檢察生成SOM的質(zhì)量,并探索數(shù)據(jù)集中變量之間的關(guān)系。

  • 訓(xùn)練過程:
    隨著SOM訓(xùn)練迭代的進(jìn)行,從每個節(jié)點的權(quán)重到該節(jié)點表示的樣本的距離將減小。理想情況下,該距離應(yīng)達(dá)到最小。此圖選項顯示了隨著時間的進(jìn)度。如果曲線不斷減小,則需要更多的迭代。

    #SOM的訓(xùn)練進(jìn)度plot(model,?type="changes")
  • 節(jié)點計數(shù)
    我們可以可視化映射到地圖上每個節(jié)點的樣本數(shù)。此度量可以用作圖質(zhì)量的度量-理想情況下,樣本分布相對均勻。選擇圖大小時,每個節(jié)點至少要有5-10個樣本。

    #節(jié)點數(shù)plot(model,?type="count")

點擊標(biāo)題查閱往期內(nèi)容

R語言鳶尾花iris數(shù)據(jù)集的層次聚類分析

左右滑動查看更多

01

02

03

04

  • 鄰居距離
    通常稱為“ U矩陣”,此可視化表示每個節(jié)點與其鄰居之間的距離。通常使用灰度查看,鄰居距離低的區(qū)域表示相似的節(jié)點組。距離較大的區(qū)域表示節(jié)點相異得多。U矩陣可用于識別SOM映射內(nèi)的類別。

    #?U-matrix?可視化
  • 代碼/權(quán)重向量
    節(jié)點權(quán)重向量由用于生成SOM的原始變量值。每個節(jié)點的權(quán)重向量代表/相似于映射到該節(jié)點的樣本。通過可視化整個地圖上的權(quán)重向量,我們可以看到樣本和變量分布中的模型。權(quán)重向量的默認(rèn)可視化是一個“扇形圖”,其中為每個節(jié)點顯示了權(quán)重向量中每個變量的大小的各個扇形表示。

    #?權(quán)重矢量視圖
  • 熱圖

    **熱**圖是也許是自組織圖中最重要的可能的可視化。通常,SOM過程創(chuàng)建多個熱圖,然后比較這些熱圖以識別圖上有趣的區(qū)域。 在這種情況下,我們將SOM的平均教育水平可視化。``` #?熱圖創(chuàng)建 ``` ?

應(yīng)該注意的是,該默認(rèn)可視化繪制了感興趣變量的標(biāo)準(zhǔn)化版本。 ```#?未標(biāo)準(zhǔn)化的熱圖#定義要繪制的變量?aggregate(as.numeric(data_train,?by=list(som_model$unit.classi?FUN=mean) ``` 值得注意的是,上面的熱圖顯示了失業(yè)率與教育水平之間的反比關(guān)系。并排顯示的其他熱圖可用于構(gòu)建不同區(qū)域及其特征的圖片。 ? **SOM網(wǎng)格中具有空節(jié)點的熱圖** ? 在某些情況下,您的SOM訓(xùn)練可能會導(dǎo)致SOM圖中的節(jié)點為空。通過幾行,我們可以找到som_model $ unit.classif中缺少的節(jié)點,并將其替換為NA值–此步驟將防止空節(jié)點扭曲您的熱圖。 ```#?當(dāng)SOM中有空節(jié)點時繪制未標(biāo)準(zhǔn)化的變量var_unscaled?<-?aggregate(as.numeric(data_train_raw),?by=list(som_model$unit.classif),?FUN=mean)#?為未分配的節(jié)點添加NA值missingNodes?<-?which(!(seq(1,nrow(som_model$codes)?%in%?varunscaled$Node))#?將它們添加到未標(biāo)準(zhǔn)化的數(shù)據(jù)框var_unscaled?<-?rbind(var_unscaled,?data.frame(Node=missingNodes,?Value=NA))#?結(jié)果數(shù)據(jù)框var_unscaled?#?現(xiàn)在僅使用正確的“值”創(chuàng)建熱圖。plot(som_model,?type?=d) ``` ?

自組織圖的聚類和分割

可以在SOM節(jié)點上執(zhí)行聚類,以發(fā)現(xiàn)具有相似度量的樣本組??梢允褂胟means算法并檢查“類內(nèi)平方和之內(nèi)”圖中的“肘點”來確定合適的聚類數(shù)估計。

#?查看WCSS的kmeansfor?(i?in?2:15)?{ wss[i]?<-?sum(kmeans(mydata,?centers=i)$withinss) }#?可視化聚類結(jié)果##使用分層聚類對向量進(jìn)行聚類cutree(hclust(dist(som_model$codes)),?6)#?繪制這些結(jié)果:plot(som_model,?t"mappinol?=ty_pal

理想情況下,發(fā)現(xiàn)的類別在圖表面上是連續(xù)的。為了獲得連續(xù)的聚類,可以使用僅在SOM網(wǎng)格上僅將相似AND的節(jié)點組合在一起的層次聚類算法。

將聚類映射回原始樣本

當(dāng)按照上面的代碼示例應(yīng)用聚類算法時,會將聚類分配給?SOM映射上的每個?節(jié)點,而不是?數(shù)據(jù)集中的原始?樣本。

#?為每個原始數(shù)據(jù)樣本獲取具有聚類值的向量som_clust[som_modl$unit.clasf]#?為每個原始數(shù)據(jù)樣本獲取具有聚類值的向量data$cluster?<-?cluster_assignment

使用每個聚類中訓(xùn)練變量的統(tǒng)計信息和分布來構(gòu)建聚類特征的有意義的圖片-這既是藝術(shù)又是科學(xué),聚類和可視化過程通常是一個迭代過程。

結(jié)論

自組織映射(SOM)是數(shù)據(jù)科學(xué)中的一個強大工具。優(yōu)勢包括:

  • 發(fā)現(xiàn)客戶細(xì)分資料的直觀方法。

  • 相對簡單的算法,易于向非數(shù)據(jù)科學(xué)家解釋結(jié)果

  • 可以將新的數(shù)據(jù)點映射到經(jīng)過訓(xùn)練的模型以進(jìn)行預(yù)測。

缺點包括:

  • 由于訓(xùn)練數(shù)據(jù)集是迭代的,因此對于非常大的數(shù)據(jù)集缺乏并行化功能

  • 很難在二維平面上表示很多變量

  • SOM訓(xùn)練需要清理后的,數(shù)值的數(shù)據(jù),這些數(shù)據(jù)很難獲得。

本文摘選?《?R語言使用自組織映射神經(jīng)網(wǎng)絡(luò)(SOM)進(jìn)行客戶細(xì)分?》?,點擊“閱讀原文”獲取全文完整資料。

點擊標(biāo)題查閱往期內(nèi)容

R語言中的SOM(自組織映射神經(jīng)網(wǎng)絡(luò))對NBA球員聚類分析
RNN循環(huán)神經(jīng)網(wǎng)絡(luò) 、LSTM長短期記憶網(wǎng)絡(luò)實現(xiàn)時間序列長期利率預(yù)測
結(jié)合新冠疫情COVID-19股票價格預(yù)測:ARIMA,KNN和神經(jīng)網(wǎng)絡(luò)時間序列分析
深度學(xué)習(xí):Keras使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡單文本分類分析新聞組數(shù)據(jù)
用PyTorch機器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測銀行客戶流失模型
PYTHON用LSTM長短期記憶神經(jīng)網(wǎng)絡(luò)的參數(shù)優(yōu)化方法預(yù)測時間序列洗發(fā)水銷售數(shù)據(jù)
Python用Keras神經(jīng)網(wǎng)絡(luò)序列模型回歸擬合預(yù)測、準(zhǔn)確度檢查和結(jié)果可視化
Python用LSTM長短期記憶神經(jīng)網(wǎng)絡(luò)對不穩(wěn)定降雨量時間序列進(jìn)行預(yù)測分析
R語言中的神經(jīng)網(wǎng)絡(luò)預(yù)測時間序列:多層感知器(MLP)和極限學(xué)習(xí)機(ELM)數(shù)據(jù)分析報告
R語言深度學(xué)習(xí):用keras神經(jīng)網(wǎng)絡(luò)回歸模型預(yù)測時間序列數(shù)據(jù)
Matlab用深度學(xué)習(xí)長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對文本數(shù)據(jù)進(jìn)行分類
R語言KERAS深度學(xué)習(xí)CNN卷積神經(jīng)網(wǎng)絡(luò)分類識別手寫數(shù)字圖像數(shù)據(jù)(MNIST)
MATLAB中用BP神經(jīng)網(wǎng)絡(luò)預(yù)測人體脂肪百分比數(shù)據(jù)
Python中用PyTorch機器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測銀行客戶流失模型
R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
SAS使用鳶尾花(iris)數(shù)據(jù)集訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)(ANN)模型
【視頻】R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
Python使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡單文本分類
R語言用神經(jīng)網(wǎng)絡(luò)改進(jìn)Nelson-Siegel模型擬合收益率曲線分析
R語言基于遞歸神經(jīng)網(wǎng)絡(luò)RNN的溫度時間序列預(yù)測
R語言神經(jīng)網(wǎng)絡(luò)模型預(yù)測車輛數(shù)量時間序列
R語言中的BP神經(jīng)網(wǎng)絡(luò)模型分析學(xué)生成績
matlab使用長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對序列數(shù)據(jù)進(jìn)行分類
R語言實現(xiàn)擬合神經(jīng)網(wǎng)絡(luò)預(yù)測和結(jié)果可視化
用R語言實現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實例
使用PYTHON中KERAS的LSTM遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行時間序列預(yù)測
python用于NLP的seq2seq模型實例:用Keras實現(xiàn)神經(jīng)網(wǎng)絡(luò)機器翻譯
用于NLP的Python:使用Keras的多標(biāo)簽文本LSTM神經(jīng)網(wǎng)絡(luò)分類Python、R對小說進(jìn)行文本挖掘和層次聚類可視化分析案例
R語言復(fù)雜網(wǎng)絡(luò)分析:聚類(社區(qū)檢測)和可視化
R語言中的劃分聚類模型
基于模型的聚類和R語言中的高斯混合模型
r語言聚類分析:k-means和層次聚類
R語言k-Shape時間序列聚類方法對股票價格時間序列聚類
用R語言進(jìn)行網(wǎng)站評論文本挖掘聚類
基于LDA主題模型聚類的商品評論文本挖掘
R語言中實現(xiàn)層次聚類模型
R語言鳶尾花iris數(shù)據(jù)集的層次聚類分析
R語言對用電負(fù)荷時間序列數(shù)據(jù)進(jìn)行K-medoids聚類建模和GAM回歸
基于模型的聚類和R語言中的高斯混合模型


使用自組織映射神經(jīng)網(wǎng)絡(luò)(SOM)進(jìn)行客戶細(xì)分|附代碼數(shù)據(jù)的評論 (共 條)

分享到微博請遵守國家法律
左权县| 黄浦区| 娄烦县| 阳曲县| 奎屯市| 万宁市| 蓬溪县| 崇文区| 衡东县| 铜鼓县| 建德市| 海兴县| 蒙阴县| 海林市| 扎赉特旗| 新邵县| 黔西| 靖宇县| 宝兴县| 保亭| 海晏县| 胶南市| 社会| 新闻| 玉树县| 阿拉善左旗| 博兴县| 四平市| 安福县| 海伦市| 柏乡县| 福州市| 天等县| 建阳市| 庄河市| 东乡县| 鄱阳县| 株洲县| 英德市| 宁乡县| 江油市|