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

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

如何使用UMAP分析100維數(shù)據(jù),驚艷降維另人嘆為觀止!

2022-02-04 16:24 作者:python風(fēng)控模型  | 我要投稿

在公眾號(hào)「python風(fēng)控模型」里回復(fù)關(guān)鍵字:學(xué)習(xí)資料?

QQ學(xué)習(xí)群:1026993837 領(lǐng)學(xué)習(xí)資料? ? ? ? ? ??

圖片

介紹

無(wú)論機(jī)器學(xué)習(xí)模型多么強(qiáng)大,它們都無(wú)法完全擊敗您在那些“啊哈!”中獲得的感覺(jué)。通過(guò)豐富的視覺(jué)效果探索數(shù)據(jù)的時(shí)刻。但是,在你說(shuō)“這真的變老了”之前,你可以創(chuàng)建很多直方圖、散點(diǎn)圖、熱圖。

在那些時(shí)刻,你需要一些東西來(lái)提醒你數(shù)據(jù)是多么的驚人和迷人。您需要從 FlowingData 或相關(guān)子版塊中的杰作視覺(jué)效果中獲得靈感,但您不必走那么遠(yuǎn)。最近,我有幸遇到了 UMAP——一個(gè) Python 包,它以驚人的美麗方式可視化和聚類高維數(shù)據(jù)。這正是我需要記住的,為什么我兩年前開(kāi)始學(xué)習(xí)數(shù)據(jù)科學(xué)。

今天,我們將學(xué)習(xí)如何使用 Uniform Manifold Approximation & Projection (UMAP) 包通過(guò)如下可視化將多維數(shù)據(jù)集投影到 2D 來(lái)分析多維數(shù)據(jù)集:


什么是UMAP?

UMAP 是一個(gè)降維算法和強(qiáng)大的數(shù)據(jù)分析工具。

它在速度方面類似于 PCA(主成分分析),并且類似于 tSNE 來(lái)降低維度,同時(shí)盡可能多地保留數(shù)據(jù)集的信息。在 2018 年引入 UMAP 算法之前,PCA 和 tSNE 存在兩個(gè)最顯著的缺陷:

  1. PCA 速度非??欤鷥r(jià)是在縮減后丟失了數(shù)據(jù)的更精細(xì)細(xì)節(jié)

  2. 盡管 tSNE 保留了數(shù)據(jù)的底層結(jié)構(gòu),但它的速度非常慢。

稍后我們將更多地討論這些差異?,F(xiàn)在,是第一次體驗(yàn) UMAP 的時(shí)候了,我們將立即從一個(gè)具有挑戰(zhàn)性的數(shù)據(jù)集開(kāi)始:

圖片



Kaggle TPS 9 月數(shù)據(jù)集包含約 100 萬(wàn)行和約 120 個(gè)具有二進(jìn)制目標(biāo)的特征。它們都是數(shù)字的,我們對(duì)在這個(gè)數(shù)據(jù)集上執(zhí)行正確的 EDA 非常無(wú)能為力。我們的選項(xiàng)僅限于打印匯總統(tǒng)計(jì)數(shù)據(jù)和繪制每個(gè)特征的直方圖。

讓我們看看UMAP能為我們做什么。在使用它之前,我們將對(duì)數(shù)據(jù)集進(jìn)行采樣以避免過(guò)度繪制并填充缺失值:


在這里,目標(biāo)代表客戶是否要求保險(xiǎn)。

安裝和導(dǎo)入 UMAP后,我們初始化流形算法并將其擬合到Xy在熟悉的 Sklearnfit/transform模式中:

默認(rèn)情況下,UMAP 將數(shù)據(jù)投影到兩個(gè)分量 (2D) 中。讓我們創(chuàng)建一個(gè)由目標(biāo)類著色的散點(diǎn)圖:


圖片


盡管看起來(lái)很有趣,但情節(jié)并沒(méi)有顯示出任何清晰的模式。這是因?yàn)槲覀冊(cè)跀M合 UMAP 之前沒(méi)有對(duì)特征進(jìn)行縮放。該算法使用距離度量對(duì)相似的數(shù)據(jù)點(diǎn)進(jìn)行分組,并且具有更高尺度的特征會(huì)影響此類計(jì)算。

因此,我們將選擇 Quantile Transformer 根據(jù)其分位數(shù)和中位數(shù)對(duì)特征進(jìn)行縮放。這種縮放方法更適合數(shù)據(jù)集,因?yàn)樗S多傾斜和雙峰特征:



# 繪制結(jié)果
plt.scatter(X_reduced_2[:, 0], X_reduced_2[:, 1], c=y, s=0.5);
圖片


現(xiàn)在,我們正在談?wù)?!UMAP 成功地捕捉到了目標(biāo)類之間隱藏的區(qū)別。我們還可以看到一些異常值(黃色斑點(diǎn)周圍的點(diǎn))。畢竟數(shù)據(jù)集并沒(méi)有那么具有挑戰(zhàn)性。

但是,這個(gè)情節(jié)與我向您展示的內(nèi)容完全不同。它仍然被過(guò)度繪制以查看每個(gè)集群內(nèi)的結(jié)構(gòu)模式。為了更上一層樓,我們將使用具有更多功能的默認(rèn) UMAP 可視化包。我們將需要一個(gè)更好的數(shù)據(jù)集。


使用 UMAP 實(shí)現(xiàn)更好的可視化

本節(jié)將分析 Kaggle TPS May 的競(jìng)爭(zhēng)數(shù)據(jù),該數(shù)據(jù)根據(jù)約 75 個(gè)數(shù)字質(zhì)量對(duì)約 200k 電子商務(wù)列表進(jìn)行分類。讓我們導(dǎo)入它并快速瀏覽一下:

圖片


目標(biāo)包含九個(gè)類。

和以前一樣,我們將縮放所有特征,但這次使用簡(jiǎn)單的對(duì)數(shù)轉(zhuǎn)換。然后,我們擬合 UMAP 流形:

擬合完成后,我們將導(dǎo)入umap.plot包(單獨(dú)安裝)并繪制點(diǎn)云:

圖片


它不像來(lái)自太空的星云嗎?我們可以清楚地看到 8 級(jí)在空間中占主導(dǎo)地位,并聚集在中心周圍。第 6 類也明顯區(qū)別于其他類。我們?cè)诘?8 類周圍看到半圈混合數(shù)據(jù)點(diǎn)。關(guān)于單例數(shù)據(jù)點(diǎn),它們可能被歸類為異常值。

上面關(guān)于可視化的說(shuō)明——我們只是將擬合的流形(不是轉(zhuǎn)換的數(shù)據(jù)!)傳遞給points函數(shù)并指定顏色編碼的標(biāo)簽。我也選擇了fire作為一個(gè)黑暗的主題。

您還可以創(chuàng)建連接圖umap.plot.connectivity用于診斷目的并更好地理解歧管結(jié)構(gòu)。請(qǐng)注意,創(chuàng)建這些圖非常耗時(shí)且需要大量計(jì)算/內(nèi)存。

圖片
圖片



UMAP最重要的參數(shù)

底層縮減算法有許多參數(shù)可以顯著影響流形,從而影響視覺(jué)效果。最重要的四個(gè)是:

  • n_components

  • n_neighbors

  • min_dist

  • metric

正如您可能已經(jīng)猜到的那樣,n_components控制投影后的維數(shù)。為便于可視化,默認(rèn)值為 2。但是,對(duì)于具有超過(guò) 100 個(gè)特征的數(shù)據(jù)集,2D 可能不足以完全保留數(shù)據(jù)的底層拓?fù)浣Y(jié)構(gòu)。我建議以 5 步嘗試 2-20 之間的值,并評(píng)估不同的基線模型以查看準(zhǔn)確性的變化。

接下來(lái),我們有n_neighbors. 它控制 UMAP 在構(gòu)建流形時(shí)為每個(gè)樣本查看的本地鄰域的區(qū)域。較小的值將關(guān)注點(diǎn)縮小到局部結(jié)構(gòu),考慮到特性和小模式,可能會(huì)失去全局。

較高的值可n_neighbors提供更大的靈活性,并允許 UMAP 專注于相應(yīng)維度中數(shù)據(jù)的更廣泛“視圖”。當(dāng)然,這是以丟失結(jié)構(gòu)的細(xì)節(jié)為代價(jià)的。此參數(shù)的默認(rèn)值為 15。



另一個(gè)關(guān)鍵參數(shù)是min_dist控制數(shù)據(jù)點(diǎn)之間的字面距離。您可以調(diào)整默認(rèn)值 0.1 以控制不同點(diǎn)云的緊密度。較低的值將導(dǎo)致嵌入更密集,讓您更輕松地查看單個(gè)集群。這在聚類期間可能很有用。相比之下,接近 1 的值會(huì)給點(diǎn)更多的喘息空間,讓您能夠看到更廣泛的拓?fù)浣Y(jié)構(gòu)。

圖片


metric表示計(jì)算點(diǎn)之間距離的公式。默認(rèn)值為euclidean,但您可以在許多其他選項(xiàng)中進(jìn)行選擇,manhattan包括minkowskichebyshev。


使用 UMAP 的最佳實(shí)踐

使用 UMAP 時(shí)首先考慮的是 RAM 消耗。在幕后,UMAP 會(huì)消耗大量?jī)?nèi)存,尤其是在擬合和創(chuàng)建連接圖等圖表的過(guò)程中。我建議在至少有 16GB RAM 的機(jī)器上運(yùn)行 UMAP。

例如,即使是繪圖部分的 200k 行數(shù)據(jù)集,在創(chuàng)建連接圖時(shí)也會(huì)消耗約 18GB 的 RAM。文檔建議設(shè)置low_memory為 True 作為可能的解決方法。此外,我建議通過(guò)使用 NumPy 將每一列轉(zhuǎn)換為可能的最小子類型來(lái)減少數(shù)據(jù)集的內(nèi)存使用量。我在上一篇文章中詳細(xì)討論了處理內(nèi)存不足問(wèn)題:

此外,不要忘記轉(zhuǎn)換/縮放數(shù)字特征,因?yàn)樗鼈兡J(rèn)具有不同的比例。我建議將 QuantileTransformer 用于雙峰、三峰等瘋狂分布。PowerTransformer 最適合偏斜特征。無(wú)論您選擇哪種變壓器,目標(biāo)始終是使特征盡可能呈正態(tài)分布。


概括

今天,我們已經(jīng)介紹了 UMAP 的基礎(chǔ)知識(shí),并且只了解了它的一小部分功能。為了進(jìn)一步閱讀,我建議查看包的文檔。在那里,您將看到 UMAP 的不同用例以及 Google 等科技巨頭如何在各種項(xiàng)目中使用它。

還有專門的部分用于將 UMAP 與其他降維算法進(jìn)行比較。對(duì)于數(shù)學(xué)愛(ài)好者,您還可以閱讀 UMAP 的工作原理及其公式的證明。感謝您的閱讀!


歡迎各位了解<python實(shí)戰(zhàn)因子分析和主成分分析>,學(xué)習(xí)機(jī)器學(xué)習(xí)降維知識(shí)

https://ke.qq.com/course/3485943




如何使用UMAP分析100維數(shù)據(jù),驚艷降維另人嘆為觀止!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
肥乡县| 锡林郭勒盟| 贵德县| 巍山| 阿克陶县| 白朗县| 梨树县| 宁安市| 板桥市| 莱阳市| 丽江市| 广东省| 新平| 永仁县| 台州市| 永靖县| 和平县| 宝丰县| 洮南市| 姚安县| 保德县| 西乡县| 阆中市| 黎平县| 卢龙县| 岳普湖县| 都江堰市| 安徽省| 锦州市| 浮梁县| 安义县| 清苑县| 马龙县| 施甸县| 赫章县| 汽车| 孝感市| 柳河县| 盱眙县| 浦江县| 咸宁市|