“思考再思考,然后采取行動”,這樣的流程是不是聽起來很熟悉?大多數人都是這樣做的。
然而,這個思考流程很可能是一把雙刃劍:在一些情形下,結果可能積極有用,但在另一些情形下,結果可能有害,甚至反噬自身。后者是我們都希望避免的。為了清晰了解情緒的劃分,我編寫了這個機器學習(ML)程序。
隔離階段讓我有機會探索自我并審視自己的思路。我不是一個沉思者,但是總會陷入紛亂的思緒之中,每當這時,我都需要理清思路。因此我要創建一個可以分析我的思考過程的ML模型。我用KNN算法判斷應該避免的情緒,并通過可視化技術將我的情緒以圖形展示,使我清晰地一覽全貌。下面是我的做法:
作為開始,我創建了一個有不同想法的數據集;
使用KNN算法;
使用可視化技術;
最后,我學會了分割思考過程。
創建數據集
數據集由九種情緒(特征)組成:沮喪,悲傷,卑微,哭泣,痛苦,困惑,快樂,振奮和堅定。我將它們分為三類(標簽):積極,消極和中立。另外,我根據標簽對這九種情緒/特征均按1-10的標準進行了評分。于是我創建了共150個案例。這是數據集的前幾行:
使用KNN算法
在開始下一步之前,首先需要掌握一些監督式學習的ML基本術語:
為了訓練、測試和評估一個模型,我們使用一系列案例;
這些案例包括與模型相關的特征和標簽值;
特征是用于訓練算法的基礎值;
一旦訓練部分結束,算法就能預測測試特征的正確標簽值。
目標是正確預測標簽。因此,受訓算法的精度應該很高。如果不高,應使預測的標簽值和原本標簽之間的誤差最小化。有了這些基礎知識,讓我們接著來了解KNN算法。KNN是監督式的機器學習算法,“K”是待分類點鄰近值的個數 (例如,K=1、2、3等)。
左圖中,KNN會將“?”歸類為綠色星星,因為它最近。同樣,在右例中KNN會將“?”歸為黃色三角,因為這些三角形是最接近的多數情況。
新案例與已知案例之間的接近程度,可以使用任意距離函數,如歐幾里得尺度和明可夫斯基尺度等體現。因此稱之為最鄰近。這樣,KNN算法對新案例進行了分類。在這種特定模式中,KNN要正確預測各個情緒的分類。預處理所有數據后,我使用了KNN算法,然后計算出準確度為98.6%。這是顯示相同的代碼段:
使用可視化技術
我用數據可視化進行了分類,圖表更便于理解,并創建了一種解決方案,用來預測我應該避免什么樣的情緒才能保持一個積極的心態。這個技術將幫助我分辨標簽類別(積極、消極和中性),為此我使用了“箱形圖”。
結果
KNN生成的圖表顯示:
沮喪:算法將該特征歸類為消極,這是顯而易見的。但值得注意的是,在消極和中立之間有小部分的重疊。同時消極與中性界限也非常細微。這表明沮喪的情緒在某種程度上能夠激勵自己取得積極成果。綜合考慮后,它被歸類為消極標簽。
困惑:這項結果很有意思,算法將其標記為積極。在分析之前,我曾避免自己有困惑情緒。也許這些搖擺不定的情緒也能產生積極的結果,也許它們給了我們時間來衡量形勢的正反面。
悲傷:毫無疑問,這類情緒注定會產生消極的結果。
自卑:有時候頭腦中會出現一些隨機的想法。它們沒有來由沒有依據。算法將這些情緒歸類為中性。
哭泣:與悲傷特征類似,該特征也被歸為消極。但我認為它可能也有中立的一面,因為哭泣可以幫助平衡情緒。但如果依據圖表來給定標簽,很可能將其歸類為積極而非中性。總體來看,它會引發消極情緒。
痛苦:根據模型的預測,痛苦是導致心情不好的最重要特征。因此,它是極其消極的。
振奮:KNN預測這個特征對我有益。但是,該圖顯示中性和消極情緒略有重疊。此外,令人吃驚的是,如果我們僅考慮這兩個標簽,消極標簽的影響要比中性標簽大得多。
堅定:該特征非常有趣。結果之間幾乎沒有任何區別,很難立即做出詮釋,但是使用箱形圖可以輕易地理解這一點。
箱形圖提供了詳盡的圖示。圖示清晰易懂,它們根據特征或思想給出了三種不同情緒或標簽的清晰區分。它描繪的結果與KNN圖或多或少相同,但它提供了更好的解釋:
堅定:盡管看起來這一特征明顯會被歸類為積極,但是KNN圖表根據數據顯示了這三個標簽之間的相似性,這種相似性可能會產生誤導。看看箱型圖你就會發現,積極的結果只比另外兩個高一點。因此,該特征被歸類為積極標簽。
快樂:毋庸置疑,此特征為積極標簽。但是,它對中性的四分位數遠大于正數,如果僅考慮中性和負數,則中性要高于兩者。
這個項目非常有趣。起初,我以為分類結果是簡單且顯而易見的,但完成后,我才意識到這不僅僅是個分類。一個ML程序不僅能預測人類可以輕松完成的特定任務,還可以對數據集深入分析。
雖然這只是仿人智能的開始,但卻非常有趣,也許這就是‘機器學習’命名的由來。
責編AJX
-
算法
+關注
關注
23文章
4625瀏覽量
93138 -
應用程序
+關注
關注
37文章
3287瀏覽量
57799 -
機器學習
+關注
關注
66文章
8430瀏覽量
132859
發布評論請先 登錄
相關推薦
評論