獨家 一文解讀合成資料在機器學習技術下的表現

2021-09-20 05:25:18 字數 3916 閱讀 4409

想法

相比於數量有限的「有機」資料,我將分析、測評合成資料是否能實現改進。

動機

我對合成資料的有效性持懷疑態度——**模型只能與用於訓練資料的資料集一樣好。這種懷疑論點燃了我內心的想法,即通過客觀調查來研究這些直覺。

需具備的知識

合成資料的背景

生成合成資料的兩種常用方法是:

在這項研究中,我們將檢查第一類。為了鞏固這個想法,讓我們從乙個例子開始吧!

想象一下,在只考慮大小和體重的情況下,你試圖確定乙隻動物是老鼠,青蛙還是鴿子。但你只有乙個資料集,每種動物只有兩個資料。因此不幸的是,我們無法用如此小的資料集訓練出好的模型!

這個問題的答案是通過估計這些特徵的分布來合成更多資料。讓我們從青蛙的例子開始

第乙個特徵,即它們的平均長度(7.5cm±1.5cm),可以通過從正態分佈中繪製平均值為7.5且標準偏差為1.5的值來生成。類似的技術可用於**它們的重量。然而,我們所掌握的資訊並不包括其體重的典型範圍,只知道平均值為22.7克。乙個想法是使用10%(2.27g)的任意標準偏差。不幸的是,這只是純粹猜測的結果,因此很可能不準確。

資料

該分析使用與上面討論的模擬相同的想法。我們將建立一些具有10個特徵的資料集。這些資料集將包含兩個不同的分類類別,每個類別的樣本數相同。

「有機」資料

每個類別將遵循其中每個特徵的某種正態分佈。例如,對於第一種特徵:第乙個類別樣本的平均值為1500,標準差為360;第二個類別樣本的平均值為1300,標準差為290。其餘特徵的分布如下:

該錶非常密集,但可以總結為:

建立兩個這樣的資料集,乙個1000樣本的資料集將保留為驗證集,另乙個1000樣本的資料集可用於訓練/測試。

這會建立乙個資料集,使分類變得足夠強大。

合成資料

現在事情開始變得有趣了!合成資料將遵循兩個自定義分布中的其中乙個。第乙個我稱之為「 spikes distribution」。此分布僅允許合成特徵採用少數具有每個值的特定概率的離散值。例如,如果原始分布的平均值為3且標準差為1,則尖峰(spike)可能出現在2(27%),3(46%)和4(27%)。

第二個自定義分布我稱之為「 plateaus distribution」。這種分布只是分段均勻分布。使用平台中心的正態分佈概率推導出平穩點的概率。您可以使用任意數量的尖峰或平台,當新增更多時,分布將更接近正態分佈。

(注:尖峰分布圖不是概率密度函式)

在這個問題中,合成資料的過程將成為乙個非常重要的假設,它有利於使合成資料更接近於「有機」資料。該假設是每個特徵/類別對的真實平均值和標準差是已知的。實際上,如果合成資料與這些值相差太遠,則會嚴重影響訓練模型的準確性。

好的,但為什麼要使用這些分布?他們如何反映現實?

我很高興你問這個問題!在有限的資料集中,您可能會注意到,對於某個類別,某個特徵只會占用少量值。想象一下這些值是:

(50,75,54,49,24,58,49,64,43,36)

或者如果我們可以對這列進行排序:

(24,36,43,49,49,50,54,58,64,75)

為了生成此特徵的資料,您可以將其拆分為三個部分,其中第一部分將是最小的20%,中間的60%將是第二部分,第三部分將是最大的20%。然後使用這三個部分,您可以計算它們的平均值和標準差:分別為(30,6.0),(50.5,4.6)和(69.5,5.5)。如果標準差相當低,比如大約為相應均值的10%或更小,則可以將該均值視為該部分的尖峰值。否則,您可以將該部分視為乙個平台,其寬度是該部分標準差的兩倍,並以該部分的平均值作為中心。

或者,換句話說,他們在模擬不完美的資料合成方面做得不錯。

我將使用這些分布建立兩個800樣本資料集 - 乙個使用尖峰,另乙個使用平台。四個不同的資料集將用於訓練模型,以便比較每個資料集的有用性:

現在開始令人興奮的部分!

訓練

為了測試每個資料集的強度,我將採用三種不同的機器學習技術:多層感知器(mlp),支援向量機(svm)和決策樹(decision trees)。為了幫助訓練,由於某些特徵的幅度比其他特徵大得多,因此利用特徵縮放來規範化資料。使用網格搜尋調整各種模型的超引數,以最大化到達最好的超引數集的概率。

總之,我在8個不同的資料集上訓練了24種不同的模型,以便了解合成資料對學習效果的影響。

結果

經過幾個小時調整超引數並記錄下精度測量結果後,出現了一些反直覺的結果!完整的結果集可以在下表中找到:

多層感知器(mlp)

支援向量機(svm)

決策樹(decision trees)

在這些表中,「spike 9」或「plateau 9」是指分布和使用的尖峰/平台的數量。單元格中的值是使用相應的訓練/測試資料對模型進行訓練/測試,並用驗證集驗證後的的最終精度。還要記住,「完整」(full)類別應該是準確性的理論上限,「真實」(rea;)類別是我們在沒有合成資料的情況下可以實現的基線。

讓我們仔細看看這些結果。

首先,讓我們看一下模型間的趨勢(即在所有機器學習技術型別中的合成資料集型別的影響)。似乎增加更多尖峰/平台並不一定有助於學習。你可以看到在3對 5時尖峰/平台之間的一般改善,但是當看到5對9時,則要麼變平或稍微傾斜。

對我來說,這似乎是違反直覺的。隨著更多尖峰/平台的增加,我預計會看到幾乎持續的改善,因為這會導致分布更類似於用於合成資料的正態分佈。

現在,讓我們看一下模型內的趨勢(即各種合成資料集對特定機器學習技術的影響)。對於mlp來說,尖峰或平台是否會帶來更好的效能似乎缺少規律。對於svm,尖峰和平台似乎表現得同樣好。然而,對於決策樹而言,平台是乙個明顯的贏家。

總的來說,在使用合成資料集時,始終能觀察到明顯的改進!

以後的工作

需要注意的乙個重要因素是,本文的結果雖然在某些方面有用,但仍然具有相當的推測性。因此,仍需要多角度的分析以便安全地做出任何明確的結論。

這裡所做的乙個假設是每個類別只有乙個「型別」,但在現實世界中並不總是如此。例如,杜賓犬和吉娃娃都是狗,但它們的重量分布看起來非常不同。

此外,這基本上只是一種型別的資料集。應該考慮的另乙個方面是嘗試類似的實驗,除了具有不同維度的特徵空間的資料集。這可能意味著有15個特徵而不是10個或模擬影象的資料集。

我計畫繼續研究以擴大本研究的範圍,敬請期待!

關於作者

eric擁有軟體工程學士學位和機器學習碩士學位。他目前在加拿大多倫多擔任機器學習工程師。他曾使用lstm,cnn,決策樹集合,svm等工作解決與nlp,計算機視覺和商業智慧型系統相關的問題!

原文發布時間為:2018-08-20

一文讀懂什麼是機器學習 1 機器學習是什麼

一文讀懂什麼是機器學習 1.機器學習是什麼?一文讀懂什麼是機器學習 2.機器學習的範圍?一文讀懂什麼是機器學習 3.機器學習的方法?一文讀懂什麼是機器學習 4.機器學習的應用及其子類?圖1 機器學習界的執牛耳和網際網路界大鱷的聯姻 這三位都是目前業界炙手可熱的大牛,被網際網路界大鱷求賢若渴的聘請,足...

一文看懂機器學習 樣本不均衡問題

這裡簡單以二分類問題說明,如果正負樣本比例為1 100,這樣的比例是必須得考慮的問題,也得解決樣本不均勻的問題,否則訓練出來的模型會具有偏向性。例如 樣本中有980個正樣本,20個負樣本,這樣模型只需要輸出結果為正樣本,就可以達到99.8 的正確率,但是這樣的模型是沒有意義的,不具備泛化性。常用的處...

一文快速回顧 機器學習線性代數基礎

標量 只有大小沒有方向的物理量 向量 又稱向量,既包含大小又包含方向的物理量 矩陣 矩陣是乙個二維陣列,其中的每乙個元素一般由兩個索引來確定,一般用大寫變數表示。張量 向量概念的推廣,可以用來表示在一些向量 標量和其他張量之間的線性關係的多線性函式。標量是0階張量,向量是1階張量,矩陣是2階張量 矩...