智能主題檢測(cè)與無監(jiān)督機(jī)器學(xué)習(xí):識(shí)別顏色教程

介紹

人工智能學(xué)習(xí)通常由兩種主要方法組成:監(jiān)督學(xué)習(xí)和無監(jiān)督的學(xué)習(xí)。監(jiān)督學(xué)習(xí)包括使用現(xiàn)有的訓(xùn)練集洗做,這種訓(xùn)練集由預(yù)先標(biāo)記的分類數(shù)據(jù)列組成荐糜。機(jī)器學(xué)習(xí)算法會(huì)發(fā)現(xiàn)數(shù)據(jù)的特征和這一列的標(biāo)簽(或輸出)之間的關(guān)聯(lián)局服。通過這種方式,機(jī)器學(xué)習(xí)模型可以預(yù)測(cè)它從來沒有公開過的新的數(shù)據(jù)列袍嬉,并且根據(jù)它的訓(xùn)練數(shù)據(jù)返回一個(gè)精確的分類。在你已經(jīng)有了預(yù)先分類的數(shù)據(jù)的情況下灶平,監(jiān)督學(xué)習(xí)對(duì)于大數(shù)據(jù)集是非常有用的伺通。

在另一種是無監(jiān)督的學(xué)習(xí)。使用這種學(xué)習(xí)方式逢享,數(shù)據(jù)不需要在訓(xùn)練集中進(jìn)行預(yù)先標(biāo)記或預(yù)分類罐监,相反,機(jī)器學(xué)習(xí)算法在數(shù)據(jù)的特征中發(fā)現(xiàn)相似的特征和關(guān)聯(lián)瞒爬,并將它們分組在一起弓柱。例如,根據(jù)某些特性侧但,兩個(gè)數(shù)據(jù)可能會(huì)出現(xiàn)類似的情況矢空,因此會(huì)被分組到同一個(gè)框中(更正式地稱為“集群”)。通過將相似的數(shù)據(jù)聚集在一起禀横,就可以預(yù)測(cè)出新列之前從未見過的數(shù)據(jù)屁药,并獲得一個(gè)準(zhǔn)確的分類。不受監(jiān)督的學(xué)習(xí)可以很好地適用于某些公共關(guān)系形式的數(shù)據(jù)集柏锄。這也得益于不需要事先貼上標(biāo)簽的訓(xùn)練集酿箭,而這往往是監(jiān)督學(xué)習(xí)中較為困難的部分(通常需要人工標(biāo)記訓(xùn)練數(shù)據(jù))立莉。

與監(jiān)督學(xué)習(xí)的方法相似,無監(jiān)督學(xué)習(xí)和聚類可以利用訓(xùn)練數(shù)據(jù)來形成分組七问。當(dāng)監(jiān)督學(xué)習(xí)使用預(yù)先標(biāo)記的訓(xùn)練集時(shí)蜓耻,無監(jiān)督的學(xué)習(xí)只需要數(shù)據(jù)。很自然地械巡,預(yù)先標(biāo)記的訓(xùn)練數(shù)據(jù)用于監(jiān)督學(xué)習(xí)不僅費(fèi)時(shí)刹淌,而且容易出現(xiàn)人為錯(cuò)誤。由于這些原因讥耗,不需要(人工/自動(dòng)化)預(yù)先標(biāo)記的數(shù)據(jù)集有勾,無監(jiān)督學(xué)習(xí)就有潛力在機(jī)器學(xué)習(xí)和人工智能結(jié)果方面取得進(jìn)展。

在本教程中古程,我們將演示使用無監(jiān)督學(xué)習(xí)和集群來智能地識(shí)別圖上繪制的顏色點(diǎn)蔼卡,如紅色、綠色或藍(lán)色的整體顏色挣磨。例如雇逞,一個(gè)紫色的點(diǎn)可能被認(rèn)為是紅色或藍(lán)色的。我們的無監(jiān)督學(xué)習(xí)算法將會(huì)學(xué)習(xí)到像這樣的點(diǎn)茁裙,作為一個(gè)特定的顏色類別塘砸。我們還將看到運(yùn)行K-Means算法來聚類訓(xùn)練數(shù)據(jù),識(shí)別聚類中心晤锥,標(biāo)記現(xiàn)有數(shù)據(jù)掉蔬,并預(yù)測(cè)新數(shù)據(jù)的類別。

最后矾瘾,你將看到如何將非監(jiān)督分類應(yīng)用于其他類型的數(shù)據(jù)女轿,包括在特定類別下對(duì)股票和債券ETF基金進(jìn)行分類。

我們將使用R作為編程語言壕翩,當(dāng)然蛉迹,你也可以使用JavaScript或你所選擇的任何語言作為示例。

在完成本教程之后戈泼,你將了解如何將無人監(jiān)督的機(jī)器學(xué)習(xí)應(yīng)用到各種主題婿禽,包括其他數(shù)字?jǐn)?shù)據(jù)、行業(yè)特定主題大猛、自然語言處理扭倾,甚至文本中。

一堆漂亮的顏色

讓我們通過生成一組不同的顏色來開始本教程挽绩。

我們都知道膛壹,顏色由紅色、綠色和藍(lán)色組成。通過將這三種顏色組合在一起模聋,我們就可以獲得多種顏色肩民。純紅色是由RGB(255、0链方、0)的紅色持痰、綠色、藍(lán)色值確定的祟蚀,同樣地工窍,所有三個(gè)純色值都列在下面。

1rgb(255,0,0)//Red

2rgb(0,255,0)//Green

3rgb(0,0,255)//Blue

不同程度的紅色前酿、綠色和藍(lán)色可以通過調(diào)整各自的值來表示患雏。例如,rgb(255罢维、0淹仑、255)由大量的紅色和大量的藍(lán)色組成,這就變成了紫色肺孵。

我們到底在分類什么?

到目前為止匀借,我們已經(jīng)討論了如何通過組合紅色、綠色和藍(lán)色的值來生成顏色⌒郏現(xiàn)在我們可以創(chuàng)建顏色了怀吻,機(jī)器學(xué)習(xí)算法是如何做到這一點(diǎn)的呢?

回想一下瞬浓,紫色實(shí)際上可以被認(rèn)為是紅色或藍(lán)色初婆。事實(shí)上,因?yàn)樽仙纠募t色和藍(lán)色值都包含最大值rgb(255猿棉、0磅叛、255),將此顏色標(biāo)記為紅色或藍(lán)色將是正確的萨赁。但是弊琴,如果我們稍微降低藍(lán)色的值,會(huì)怎么樣呢?

這種顏色在人眼看來仍然是紫色的杖爽。然而敲董,現(xiàn)在它可能更準(zhǔn)確地歸類為紅色。

下面是一些關(guān)于顏色如何分組的例子慰安。

1rgb(200,0,150)//Purple Plum=> Red

2rgb(50,199,135)//Sea Green=> Green

3rgb(100,180,255)//Sky Blue=> Blue

有了以上分類的概念腋寨,我們就可以利用機(jī)器學(xué)習(xí)來判斷它是否能單獨(dú)識(shí)別這些顏色組。雖然我們知道哪些顏色應(yīng)該是紅色的(在rgb()組合中有較高的紅色值)化焕,所以我們來看看計(jì)算機(jī)是否可以識(shí)別這些顏色組萄窜,并精確地將rgb值放置到它們的自然分組中。

考慮顏色

通過在圖上查看顏色,可以更容易地(更有趣查刻!)來考慮顏色是如何聚集在一起的键兜。這樣,我們可以在圖上畫出顏色穗泵,用各自的紅色普气、綠色和藍(lán)色的值將它們組合在一起,并了解這些顏色是如何自然地形成一層的佃延。

生成隨機(jī)顏色

首先棋电,讓我們看看一些可以隨機(jī)生成顏色,并在圖表上繪制它們的代碼苇侵。我們需要生成紅色赶盔、綠色和藍(lán)色的隨機(jī)值。我們還需要將rgb()值轉(zhuǎn)換為十六進(jìn)制格式榆浓,以便呈現(xiàn)圖表上的顏色于未。幸運(yùn)的是,R語言很容易將rgb轉(zhuǎn)換為十六進(jìn)制陡鹃,只需調(diào)用以下代碼行:

1rgb(255,100,175, maxColorValue=255)

上述代碼的結(jié)果是?#FF64AF烘浦,這是一個(gè)與html兼容的顏色,我們可以在圖表上繪制萍鲸。

將RGB轉(zhuǎn)換為數(shù)值

除了生成顏色外闷叉,我們還需要一種在2D圖表上繪制3D顏色的方法。也就是說脊阴,我們的顏色由紅色握侧,綠色和藍(lán)色的值組成。然而嘿期,在圖表上繪制需要x y值品擎。因此,我們需要一種將3D紅备徐、綠萄传、藍(lán)的數(shù)值轉(zhuǎn)換成數(shù)值的方法。

我們可以將顏色轉(zhuǎn)換為數(shù)值蜜猾,只需將它們各自的紅秀菱、綠、藍(lán)的值乘以最大值蹭睡,并相應(yīng)的進(jìn)行索引衍菱。

我們可以使用以下公式:

1(Red*256*256)+

2(Green*256)+

3(Blue)

使用上面的公式,我們得到以下這些示例顏色的值:

1rgb(200,0,150)

2//13107350

3rgb(50,199,135)

4//3327879

5rgb(100,180,255)

6//6599935

現(xiàn)在我們有了生成隨機(jī)顏色的方法并將它們轉(zhuǎn)換為數(shù)值表示棠笑,我們可以在圖表上畫出它們梦碗。然后,我們可以用無監(jiān)督學(xué)習(xí)來對(duì)它們進(jìn)行分類,并觀察計(jì)算機(jī)如何決定在顏色之間劃定界限洪规,有效地將每一種顏色組合成一組紅色印屁、綠色或藍(lán)色。注意紅色的顏色如何形成一個(gè)更大的數(shù)值斩例。如果使用y軸來繪制值雄人,那么紅色就會(huì)被繪制到圖表的頂部。同樣地念赶,藍(lán)色值的值范圍更小础钠,導(dǎo)致它們?cè)趫D表的底部出現(xiàn)。綠色的顏色在中間叉谜。

在圖表上繪制顏色

我們可以使用如下所示的R代碼來生成一組隨機(jī)顏色并將它們轉(zhuǎn)換為數(shù)值表示旗吁。

01rgb2Num <-function(data) {

02# Maps RGB colors to a single value.

03result <-sapply(1:nrow(data), function(row) {

04color <-data[row,]

05(color$red*256*256)+(color$green*256)+color$blue

06})

07

08result

09}

10generateColors <-function(n) {

11# Generate a set of random colors.

12colors <-as.data.frame(t(sapply(1:n, function(i) {

13parts <-sample(0:255,3)

14c(red=parts[1], green=parts[2], blue=parts[3],hex=rgb(parts[1], parts[2], parts[3], maxColorValue=255))

15})), stringsAsFactors=F)

16# Convert to numeric values.

17colors$red <-as.numeric(colors$red)

18colors$green <-as.numeric(colors$green)

19colors$blue <-as.numeric(colors$blue)

20

21# Map each color to an x/y-coordinate for easy plotting.

22colors$x <-1:nrow(colors)

23colors$y <-rgb2Num(colors)

24colors

25}

上面的代碼只生成每個(gè)紅色、綠色和藍(lán)色值中0-255的隨機(jī)數(shù)字停局。然后很钓,它將為每種顏色生成html兼容的顏色的十六進(jìn)制值,并使用前面描述的簡(jiǎn)單公式計(jì)算y軸值董栽。對(duì)于x軸码倦,我們只需要使用顏色的索引(1-1000,對(duì)于1000種生成的顏色)锭碳。

下面是訓(xùn)練數(shù)據(jù)的一個(gè)例子袁稽,它是通過運(yùn)行上面的代碼生成的。

01> generateColors(10)

02red green bluehexx??????? y

031186160122#BAA07A? 1 12230778

042402114#280272? 2? 2622066

05312699118#7E6376? 3? 8282998

0641821490#B60E5A? 4 11931226

07520521360#CDD53C? 5 13489468

08690218216#5ADAD8? 6? 5954264

0977537178#4B25B2? 7? 4924850

108268253#1A08FD? 8? 1706237

119886232#0856E8? 9?? 546536

121015873187#9E49BB 10 10373563

你可以看到擒抛,我們現(xiàn)在可以通過使用紅色推汽、綠色和藍(lán)色值生成的x、y值來輕松地將這些數(shù)據(jù)繪制到圖表上闻葵。

美麗的顏色

下面是根據(jù)它們各自的值繪制圖表民泵,隨機(jī)生成的1000種顏色。

圖表中顯示了1000個(gè)隨機(jī)的顏色槽畔,由紅色、綠色和藍(lán)色的值組成胁编。

正如你在上面的圖片中所看到的厢钧,藍(lán)色的顏色主要是在底部,然后是綠色的顏色嬉橙。注意綠色的顏色如何融入到藍(lán)色和紅色中早直,它們?cè)诿總€(gè)邊界移動(dòng)的時(shí)候都使用不同程度的橙色和藍(lán)綠色。在綠色的和紅色的開始之間市框,很難畫出一條清晰的分界線霞扬。同樣地,藍(lán)色和綠色的開始和結(jié)束也很難確定。這種類型的分類是機(jī)器學(xué)習(xí)和人工智能算法的真正優(yōu)勢(shì)喻圃。

由于機(jī)器學(xué)習(xí)使用數(shù)據(jù)中的數(shù)值特性來形成關(guān)聯(lián)和分類萤彩,因此它可以確定一組邊界,以便將顏色分類到它們各自的分組或聚類中斧拍。

更少的顏色與更多的機(jī)器學(xué)習(xí)

用我們的分組公式繪制1000種顏色肯定會(huì)產(chǎn)生美麗的圖像雀扶。但是,讓我們考慮一組更小的只有100種顏色的數(shù)據(jù)集肆汹。這將使在紅色愚墓、綠色和藍(lán)色集群中查看數(shù)據(jù)及其最終分類變得更加容易。

下面是我們的訓(xùn)練數(shù)據(jù)昂勉,由100個(gè)隨機(jī)生成的顏色組成浪册,根據(jù)它們各自的值繪制圖表。

圖表中顯示了100個(gè)隨機(jī)的顏色岗照,由紅色议经、綠色和藍(lán)色的值組成。

上面的100種顏色和1000種顏色沒有什么不同谴返。請(qǐng)注意煞肾,藍(lán)色的點(diǎn)在圖的底部是如何下降的,中間是綠色和黃色嗓袱,紅色是指向頂部的點(diǎn)籍救。

讓我們看看如何根據(jù)顏色對(duì)每個(gè)點(diǎn)進(jìn)行分類和標(biāo)注來應(yīng)用無監(jiān)督的機(jī)器學(xué)習(xí)算法。

使顏色聚集成組

將數(shù)據(jù)聚集到組中最常用的算法是K-Means算法渠抹。這種聚類算法將數(shù)據(jù)分組到k個(gè)集群中蝙昙,基于每個(gè)數(shù)據(jù)點(diǎn)的特性與彼此之間的相似程度。我們可以將K-Means聚類算法應(yīng)用到顏色點(diǎn)上梧却,根據(jù)它們各自的紅奇颠、綠、藍(lán)顏色來組合它們放航。K-Means算法首先在數(shù)據(jù)中設(shè)置隨機(jī)的中心點(diǎn)烈拒。然后將最接近每個(gè)中心的所有點(diǎn)集中到一個(gè)單獨(dú)的集群中。然后將每個(gè)集群的中心轉(zhuǎn)移到相關(guān)點(diǎn)的中心广鳍。最后荆几,我們將所有的點(diǎn)重新分配到最接近的中心,直到每個(gè)集群的中心不再發(fā)生變化(或者變化小于某個(gè)閾值)赊时,然后重復(fù)這個(gè)過程吨铸。

這時(shí),無人監(jiān)督的訓(xùn)練就完成了祖秒。

它可以幫助查看K-Means算法的可視化诞吱,從而更好地理解這些步驟是如何工作的舟奠。

K-Means聚類

下面顯示了K-Means無監(jiān)督學(xué)習(xí)算法步驟的完整清單。

1.確定集群的數(shù)量(即K值)房维。

對(duì)于選擇集群的數(shù)量沼瘫,一個(gè)經(jīng)驗(yàn)法則是將數(shù)據(jù)點(diǎn)的數(shù)量除以一半。下面給出了一個(gè)示例握巢。

2.隨機(jī)初始化質(zhì)心(即每個(gè)集群的中心)晕鹊。

3.將數(shù)據(jù)中的每個(gè)點(diǎn)分配給集群,并將其與最接近的中心放在一起暴浦。

4. 將每個(gè)集群的質(zhì)心轉(zhuǎn)移到分配給它的所有點(diǎn)的平均值(中心)溅话。

5重復(fù)步驟3-5,直到質(zhì)心停止移動(dòng)歌焦,或者點(diǎn)停止交換集群飞几,或者到達(dá)一個(gè)給定的閾值。

下面顯示了用于確定集群的質(zhì)心的示例代碼独撇。

1K=~~(Math.sqrt(points.length*0.5));

計(jì)算質(zhì)心

讓我們把K-Means算法應(yīng)用到顏色數(shù)據(jù)點(diǎn)上屑墨,看看集群中心的位置在哪里。通常情況下纷铣,你會(huì)嘗試猜測(cè)適當(dāng)數(shù)量的集群來使用卵史,比如使用上面提到的算法。然而搜立,由于我們知道我們要為數(shù)據(jù)點(diǎn)尋找紅色以躯、綠色或藍(lán)色的分類,為了這3個(gè)集群組啄踊,我們可以將K值定為3忧设。

我們可以在顏色數(shù)據(jù)點(diǎn)的集合上運(yùn)行K-means算法,代碼如下所示颠通。

1# Run kmeans clustering on the data.

2fit <-kmeans(train[,1:3],3, nstart=20)

3train$group <-fit$cluster

在上面的代碼中址晕,請(qǐng)注意,我們只選擇數(shù)據(jù)中的前3列顿锰。這對(duì)應(yīng)于紅色列谨垃、綠色列和藍(lán)色列,因?yàn)檫@是我們想要進(jìn)行的3個(gè)特性撵儿。我們的數(shù)據(jù)集中的其他列對(duì)應(yīng)在繪制圖和繪制顏色的坐標(biāo)上乘客。

第二行代碼簡(jiǎn)單地設(shè)置了集群,在運(yùn)行算法之后淀歇,這些集群的每個(gè)數(shù)據(jù)點(diǎn)都被分配到各自的位置。

完成聚類后匈织,我們可以在質(zhì)心上查看詳細(xì)的進(jìn)程的結(jié)果浪默。

01K-means clustering with3clusters of sizes24,33,43

02Cluster means:

03red???? green????? blue

04198.1666764.66667189.20833

052164.1818265.0303064.72727

063140.67442196.58140132.20930

07Clustering vector:

08[1]333322333232212133232333212113322333112321233

09[46]322212123231333131231333121112132213132223331

10[91]2323223131

11Within clustersumof squares by cluster:

12[1]182410.6201096.4443809.0

13(between_SS/total_SS=46.1%)

注意牡直,我們的算法已經(jīng)完成了3個(gè)集群,大小分別為24纳决、33和43(總計(jì)為100個(gè)數(shù)據(jù)點(diǎn))碰逸。它們表示為分配給每個(gè)集群的顏色點(diǎn)的數(shù)量。因此阔加,24個(gè)數(shù)據(jù)點(diǎn)被分配到第一個(gè)集群饵史,33個(gè)數(shù)據(jù)點(diǎn)到第二個(gè)集群,最后一個(gè)集群是43個(gè)數(shù)據(jù)點(diǎn)胜榔。

我們還可以看到每個(gè)集群中每個(gè)特性的平均值胳喷。請(qǐng)記住,每個(gè)數(shù)據(jù)點(diǎn)都有3個(gè)特征值(紅色夭织、綠色和藍(lán)色之間的值為0-255)吭露,我們已經(jīng)對(duì)3個(gè)集群進(jìn)行了訓(xùn)練。因此尊惰,每個(gè)質(zhì)心也將有一個(gè)紅色讲竿、綠色和藍(lán)色的值,對(duì)應(yīng)于分配給它們的集群的相關(guān)數(shù)據(jù)點(diǎn)的平均值弄屡。當(dāng)我們?cè)趫D上畫出質(zhì)心時(shí)题禀,這個(gè)看起來會(huì)更直觀。

在這一點(diǎn)上膀捷,我們?cè)跀?shù)據(jù)上有3個(gè)受過訓(xùn)練的集群迈嘹。我們所有的數(shù)據(jù)點(diǎn)都被分配到一個(gè)集群中。然而担孔,集群實(shí)際上并沒有一個(gè)“名稱”江锨。

我們不能叫第一個(gè)集群為“我們的紅色組”,因?yàn)槲覀冞€不知道已經(jīng)分配給它的數(shù)據(jù)類型是什么樣的(但實(shí)際上,我們可以窺視質(zhì)心的平均值,猜測(cè)每個(gè)集群的名稱;例如,第一個(gè)集群平均值rgb(98, 64, 189)這是紫色的顏色或者也可以被認(rèn)為是藍(lán)色的;同樣的第二個(gè)集群是rgb(164, 65, 64)這是紅色的;最后一個(gè)集群是rgb(140, 196, 132)這是綠色的)。

讓我們?cè)趫D上畫出每個(gè)群集的質(zhì)心,就在顏色點(diǎn)上沥邻。這將讓我們了解每個(gè)集群中心的位置它浅,并為我們提供了一種正確方式,從而對(duì)集群進(jìn)行命名挑豌。

集群中心標(biāo)識(shí)在它們各自的位置顯示在圖中顏色。

在上圖中墩崩,我們?cè)陬伾珨?shù)據(jù)點(diǎn)上繪制了3個(gè)經(jīng)過訓(xùn)練的集群的中心氓英。

正如我們從集群輸出結(jié)果中所預(yù)測(cè)的那樣,集群1實(shí)際上位于圖底部的藍(lán)色范圍內(nèi)鹦筹。集群2在圖上是最高的铝阐,對(duì)應(yīng)紅色值。集群3位于中間铐拐,對(duì)應(yīng)綠色值徘键。此時(shí)练对,我們可以將集群命名為以下內(nèi)容:

1Cluster1-"Blue Group"

2Cluster2-"Red Group"

3Cluster3-"Green Group"

將顏色分類為一個(gè)集群

讓我們看一下每個(gè)顏色數(shù)據(jù)點(diǎn),看看它們被分配給哪個(gè)集群比較合適吹害∶荆回想一下,在訓(xùn)練之后它呀,我們?cè)O(shè)置了每個(gè)數(shù)據(jù)點(diǎn)分配的集群號(hào)螺男。通過這種方式,我們的訓(xùn)練集現(xiàn)在有了一個(gè)額外的列纵穿,包含了分配的集群號(hào)下隧。使用這個(gè)數(shù)據(jù)段,我們可以在圖上繪制每個(gè)數(shù)據(jù)點(diǎn)的集群政恍,如下所示汪拥。

在將非監(jiān)督學(xué)習(xí)應(yīng)用到數(shù)據(jù)集之后,顏色被標(biāo)記為已分配的集群篙耗。

上面的圖像將每個(gè)數(shù)據(jù)點(diǎn)與指定的集群一起標(biāo)記迫筑。我們已經(jīng)在圖上繪制了集群中心,但現(xiàn)在我們也展示了每個(gè)點(diǎn)的實(shí)際賦值宗弯。

請(qǐng)注意脯燃,底部的大多數(shù)藍(lán)色點(diǎn)被分配給集群1(“藍(lán)色組”)。在圖的底部也有幾個(gè)點(diǎn)被分配給集群3(“綠色組”)蒙保。記住辕棚,我們要根據(jù)一個(gè)簡(jiǎn)單的數(shù)學(xué)公式,把原始的紅邓厕,綠逝嚎,和藍(lán)色的值轉(zhuǎn)換成數(shù)值。但是详恼,集群的運(yùn)作方式不同补君,通過計(jì)算平均值到每個(gè)集群的中心。

例如昧互,查看圖表底部的點(diǎn)挽铁,它們被標(biāo)記為3(“綠色組”)。它們的顏色從綠色敞掘、藍(lán)色到青色叽掘,再到藍(lán)綠色,所有的顏色都包括綠色和藍(lán)色玖雁。在藍(lán)色或綠色的組中對(duì)這些點(diǎn)進(jìn)行分類是有意義的更扁。

同樣地,在圖的頂部有一些點(diǎn)沒有被分配到集群2(“紅色組”),而是被分配到集群1或3疯潭。例如赊堪,分配給集群3的一些點(diǎn)是黃色的面殖。它們被繪制在圖表的頂部竖哩,因?yàn)樗鼈兊臄?shù)值來自于我們的簡(jiǎn)單公式,但是它們被分組到“綠色”集群中脊僚,因?yàn)樗鼈兊膔gb值仍然在訓(xùn)練的“綠色”組的范圍內(nèi)相叁。畢竟,黃色就在綠色的旁邊辽幌。

如果我們?cè)谥付ǖ募褐兄苯永L制每一種顏色增淹,那么在每個(gè)顏色的坐標(biāo)和指定的顏色的位置上的差異就會(huì)變得更加明顯。這將允許我們根據(jù)所分配的集群來查看每一種顏色乌企,并繪制在一個(gè)單線上虑润。

將顏色分組到它們的集群中

讓我們看看哪個(gè)顏色點(diǎn)被分配到哪個(gè)更直觀的地方。根據(jù)我們對(duì)紅加酵、綠拳喻、藍(lán)的簡(jiǎn)單數(shù)值計(jì)算,我們可以根據(jù)所指定的集群來繪制數(shù)據(jù)點(diǎn)猪腕,而不是根據(jù)y軸的簡(jiǎn)單數(shù)值計(jì)算來繪制數(shù)據(jù)點(diǎn)冗澈。我們將x軸沿著一條直線來繪制每個(gè)點(diǎn),并將其指定的集群用于y軸陋葡。

這個(gè)圖表顯示了被分配的集群分組的顏色亚亲,每個(gè)集群都表示在y軸上。更明顯的展示了這些顏色是如何根據(jù)紅腐缤、綠捌归、藍(lán)的顏色來聚類的。

上圖顯示了在訓(xùn)練過程中岭粤,顏色是如何組合在一起的惜索。當(dāng)然,所有的藍(lán)色值都被分組到集群1(“藍(lán)色組”)中绍在。當(dāng)我們使用簡(jiǎn)單的y軸的數(shù)值計(jì)算時(shí)门扇,這包括了紫色和粉紅色的顏色(之前可能已經(jīng)在圖的頂部畫過了。[在紅色區(qū)域中])偿渡。

同樣地臼寄,紅色和黃色是在集群2(“紅色組”)中繪制的。包括棕色溜宽,甚至一些黃綠色吉拳。最后,綠色适揉,淡藍(lán)色留攒,甚至一些更接近綠色的淺粉色煤惩,在第三組(綠色組)中被繪制出來。

在新數(shù)據(jù)上預(yù)測(cè)

既然我們已經(jīng)用K-means聚類訓(xùn)練了無監(jiān)督機(jī)器學(xué)習(xí)算法炼邀,我們就有了一種將顏色數(shù)據(jù)點(diǎn)標(biāo)記為特定集群的方法魄揉。我們將每個(gè)集群分別標(biāo)記為“藍(lán)色組”、“紅色組”和“綠色組”拭宁。

現(xiàn)在最大的測(cè)試是預(yù)測(cè)一個(gè)算法以前從未見過的新的數(shù)據(jù)點(diǎn)的分配組洛退。它能預(yù)測(cè)出顏色點(diǎn)的正確顏色組嗎?

讓我們生成三個(gè)新的隨機(jī)顏色點(diǎn)。然后杰标,我們將要求模型對(duì)每個(gè)集群進(jìn)行分類兵怯。

1test <-generateColors(3)

上面的代碼生成3個(gè)新顏色,如下所示腔剂。

1red green bluehexx??????? y

2123217252#E811FC 1 15208956

3286109216#566DD8 2? 5664216

4367219216#43DBD8 3? 4447192

使用我們已經(jīng)訓(xùn)練過的模型(例如:計(jì)算出的質(zhì)心)媒区,我們可以確定每個(gè)點(diǎn)將被分配到哪個(gè)集群。在R語言中掸犬,我們可以使用kcaa庫(kù)來預(yù)測(cè)已經(jīng)經(jīng)過訓(xùn)練的k-means算法袜漩,如下所示。

1# Cast the k-means model to be of type kcaa, so we can use the predict method.

2fit2 <-as.kcca(fit, data=train[,1:3])

3# Predict the assigned color by mapping the color to a cluster.

4group <-predict(model, newdata=data[,1:3])

5# Assign the label of the cluster.

6data$label <-sapply(1:nrow(data), function(row) {

7centroids[centroids$group==data[row,'group'], ]$label

8})

在上面的代碼中登渣,我們只是簡(jiǎn)單地將k-means模型轉(zhuǎn)換為kcaa類型噪服,這樣我們就可以調(diào)用預(yù)測(cè)方法。在轉(zhuǎn)型之后胜茧,我們可以調(diào)用預(yù)測(cè)粘优,通過我們已經(jīng)訓(xùn)練過的模型,以及數(shù)據(jù)點(diǎn)來預(yù)測(cè)呻顽。在預(yù)測(cè)了集群號(hào)之后雹顺,我們可以將給定的集群名稱分配給每個(gè)數(shù)據(jù)點(diǎn),以便在預(yù)測(cè)的數(shù)據(jù)上進(jìn)行更易于理解的集群任務(wù)廊遍。

我們得到以下數(shù)據(jù)的結(jié)果嬉愧。

1red green bluehexx??????? y group label

212415211#F1340B 1 15807499???? 2?? red

3280187139#50BB8B 2? 5290891???? 3 green

433415194#220FC2 3? 2232258???? 1? blue

注意,第一個(gè)點(diǎn)被分配到集群2(“紅色組”)喉前。這很容易理解没酣,因?yàn)榧t色值是最大的值。第二個(gè)點(diǎn)被分配給集群3(“綠色組”)卵迂,并且確定的是裕便,它的綠色值是最大的值。最后一個(gè)點(diǎn)被分配給集群1(“藍(lán)色組”)见咒,再一次因?yàn)樗乃{(lán)色值是最大的值偿衰。

在測(cè)試集中,每一種新顏色都可以預(yù)測(cè)一個(gè)類別主題。

上面的圖像顯示了三個(gè)新的數(shù)據(jù)點(diǎn)的預(yù)測(cè)的集群組下翎。這些隨機(jī)生成的顏色(紅缤言、綠、藍(lán))分別被分配到紅视事、綠胆萧、藍(lán)兩組。

結(jié)語

聚類顏色是一種簡(jiǎn)潔的的方法郑口,可以直觀地理解人工智能中無監(jiān)督的機(jī)器學(xué)習(xí)是如何工作的鸳碧。

然而,我們可以超越這個(gè)主題犬性,將無監(jiān)督的學(xué)習(xí)轉(zhuǎn)向更多真實(shí)的場(chǎng)景中。


原文地址:智能主題檢測(cè)與無監(jiān)督機(jī)器學(xué)習(xí):識(shí)別顏色教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腾仅,一起剝皮案震驚了整個(gè)濱河市乒裆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌推励,老刑警劉巖鹤耍,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異验辞,居然都是意外死亡稿黄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門跌造,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杆怕,“玉大人,你說我怎么就攤上這事壳贪×暾洌” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵违施,是天一觀的道長(zhǎng)互纯。 經(jīng)常有香客問我,道長(zhǎng)磕蒲,這世上最難降的妖魔是什么留潦? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮辣往,結(jié)果婚禮上兔院,老公的妹妹穿的比我還像新娘。我一直安慰自己排吴,他們只是感情好秆乳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般屹堰。 火紅的嫁衣襯著肌膚如雪肛冶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天扯键,我揣著相機(jī)與錄音睦袖,去河邊找鬼。 笑死荣刑,一個(gè)胖子當(dāng)著我的面吹牛馅笙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厉亏,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼董习,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了爱只?” 一聲冷哼從身側(cè)響起皿淋,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恬试,沒想到半個(gè)月后窝趣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡训柴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年哑舒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幻馁。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡洗鸵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出宣赔,到底是詐尸還是另有隱情预麸,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布儒将,位于F島的核電站吏祸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏钩蚊。R本人自食惡果不足惜贡翘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望砰逻。 院中可真熱鬧鸣驱,春花似錦、人聲如沸蝠咆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至闸翅,卻和暖如春再芋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坚冀。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工济赎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人记某。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓司训,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親液南。 傳聞我的和親對(duì)象是個(gè)殘疾皇子壳猜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 首頁(yè) 資訊 文章 資源 小組 相親 登錄 注冊(cè) 首頁(yè) 最新文章 IT 職場(chǎng) 前端 后端 移動(dòng)端 數(shù)據(jù)庫(kù) 運(yùn)維 其他...
    Helen_Cat閱讀 3,849評(píng)論 1 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)贺拣,斷路器蓖谢,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 文章轉(zhuǎn)載自互聯(lián)網(wǎng)涡匀,如有侵權(quán),請(qǐng)聯(lián)系刪除溉知。 作者:德魯大叔&曲凱 秋風(fēng)乍起陨瘩,銀杏黃了,楓葉紅了级乍,一年一度的秋招季又到...
    萌丸1014閱讀 1,565評(píng)論 0 0
  • 深夜舌劳。 付筡踏上遠(yuǎn)去他鄉(xiāng)的路上,在另外一個(gè)城市中…“呼玫荣,”原來是夢(mèng)甚淡。抬手拿過枕邊的手機(jī),3.56捅厂,還這么早...
    Proud_d5f0閱讀 236評(píng)論 0 0
  • 云之飛陽(yáng)閱讀 151評(píng)論 0 0