偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

機(jī)器學(xué)習(xí)用戶(hù)寶典:使用SVM解讀情感

譯文 精選
人工智能
支持向量機(jī)(SVM)可能聽(tīng)起來(lái)像一個(gè)復(fù)雜的術(shù)語(yǔ),但它卻是機(jī)器學(xué)習(xí)領(lǐng)域一種簡(jiǎn)單而強(qiáng)大的方法。你可以把它想象成一個(gè)智能邊界劃分者,幫助機(jī)器對(duì)數(shù)據(jù)進(jìn)行分類(lèi)。

譯者 | 布加迪

審校 | 重樓

有沒(méi)有想過(guò)機(jī)器是如何識(shí)別人臉表情或分類(lèi)物體的?答案在于支持向量機(jī)(SVM)。我們?cè)谶@篇博文中將通過(guò)一個(gè)分步驟的項(xiàng)目來(lái)探究其工作原理。在介紹該項(xiàng)目之前,不妨簡(jiǎn)要介紹一下SVM。

支持向量機(jī)

支持向量機(jī)(SVM)可能聽(tīng)起來(lái)像一個(gè)復(fù)雜的術(shù)語(yǔ),但它卻是機(jī)器學(xué)習(xí)領(lǐng)域一種簡(jiǎn)單而強(qiáng)大的方法。你可以把它想象成一個(gè)智能邊界劃分者,幫助機(jī)器對(duì)數(shù)據(jù)進(jìn)行分類(lèi)。無(wú)論是分類(lèi)垃圾郵件、識(shí)別人臉還是檢測(cè)情感,SVM都能找到分離不同類(lèi)別數(shù)據(jù)的最佳線(xiàn)(或超平面)。SVM之所以如此有效,是由于它不僅能夠處理簡(jiǎn)單的任務(wù),還能夠輕松處理復(fù)雜的高維數(shù)據(jù)。我們?cè)谶@篇博文中將深入探討SVM是如何工作的以及為什么它改變了機(jī)器學(xué)習(xí)領(lǐng)域的游戲規(guī)則。

為什么是SVM?

SVM之所以脫穎而出,是由于它善于找到分離圖像等復(fù)雜數(shù)據(jù)的最佳方法,只需要幾個(gè)關(guān)鍵點(diǎn)。CNN和KNN等其他方法需要大量數(shù)據(jù)和強(qiáng)大算力,而SVM可以很好地處理較小的數(shù)據(jù)集、多維圖像,仍然提供出色的結(jié)果。對(duì)于許多圖像識(shí)別任務(wù)來(lái)說(shuō),它可靠、高效和完美,沒(méi)有其他技術(shù)的繁重要求。此外,SVM避免了過(guò)擬合,使其適用于樣本有限的數(shù)據(jù)集。

注意:雖然SVM以用于分類(lèi)任務(wù)最為出名,但也可以用于回歸,即用于預(yù)測(cè)連續(xù)值。

SVM是如何工作的?

SVM的工作原理是找到分離數(shù)據(jù)中不同類(lèi)別的最佳邊界(超平面)。支持向量是最接近該邊界并幫助定義該邊界的數(shù)據(jù)點(diǎn)。

SVM試圖使邊界與這些支持向量之間的距離盡可能大,這有助于提高準(zhǔn)確率。如果數(shù)據(jù)無(wú)法用直線(xiàn)(或超平面)分離,SVM使用核函數(shù)(后面有進(jìn)一步介紹)將數(shù)據(jù)轉(zhuǎn)換到更高的空間,在那里它可以找到一個(gè)邊界。

項(xiàng)目概述

目標(biāo)

首先,該項(xiàng)目旨在演示如何使用支持向量機(jī)(SVM)利用標(biāo)記數(shù)據(jù)集將人臉表情分類(lèi)為不同的情感。除此之外,它還旨在訓(xùn)練SVM模型,以便根據(jù)從人臉圖像中提取的特征對(duì)表情進(jìn)行準(zhǔn)確的分類(lèi)。

數(shù)據(jù)集、工具和庫(kù)

這里演示的項(xiàng)目是使用人臉表情數(shù)據(jù)集創(chuàng)建而成的。該項(xiàng)目使用了一個(gè)含有大約28000個(gè)圖像的數(shù)據(jù)集,包括八種不同的表情(比如憤怒、悲傷、快樂(lè)等)。為了實(shí)現(xiàn)SVM,可以使用Pandas、Scikit-learn、OpenCV和NumPy等Python庫(kù)。

項(xiàng)目創(chuàng)建

有幾個(gè)步驟與之相關(guān)。不妨逐一介紹。

第1步:數(shù)據(jù)分離和預(yù)處理

首先,我們要加載數(shù)據(jù)集。該項(xiàng)目中使用的數(shù)據(jù)集由代表不同情感的文件夾組成。每個(gè)文件夾至少包含3000個(gè)圖像。為了確保數(shù)據(jù)集內(nèi)容平衡,我們從每個(gè)文件夾中隨機(jī)選擇2000個(gè)圖像,這樣就不會(huì)對(duì)特定的情感產(chǎn)生偏見(jiàn)。此外,2000是中等的批大小,因此過(guò)擬合和欠擬合的可能性似乎較小。下面是執(zhí)行相同功能的代碼。

# Load the dataset
csv_path = './Dataset/labels.csv'  # Path to the label CSV file
data = pd.read_csv(csv_path)

# Define parameters
image_folder = './Dataset/'  # Folder containing images
classes = ['neutral', 'happy', 'sad', 'surprise', 'fear',
 'disgust', 'anger', 'contempt']  # Emotion classes
samples_per_class = 2000  # Number of samples to take per class
image_size = (96, 96)  # Resize all images to 96x96

現(xiàn)在,我們確保每個(gè)情感類(lèi)都有相同數(shù)量的樣本以獲得平衡的訓(xùn)練過(guò)程。使用pandas.DataFrame.sample()對(duì)圖像進(jìn)行隨機(jī)抽樣,以避免類(lèi)不平衡。任何少于2000個(gè)圖像的類(lèi)都會(huì)被跳過(guò),以保持?jǐn)?shù)據(jù)集的一致性。

一旦數(shù)據(jù)集準(zhǔn)備好,我們將圖像轉(zhuǎn)換成灰度,這有助于簡(jiǎn)化圖像數(shù)據(jù)。并提取方向梯度直方圖(HOG)特征,用于提取圖像的邊緣和紋理信息。

X = []
y = []
for _, row in balanced_data.iterrows():
    image_path = os.path.join(image_folder, row['pth'])  # Assuming 'pth' column contains image file paths
    if os.path.exists(image_path):
        # Read the image and convert to grayscale
        image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
        image = cv2.resize(image, image_size)

        # Extract HOG features
        features, _ = hog(image, orientations=9, pixels_per_cell=(8, 8),
                          cells_per_block=(2, 2), visualize=True, channel_axis=None)
        X.append(features)
        y.append(row['label'])
    else:
        print(f"Image not found: {image_path}")

第2步:降維和訓(xùn)練

在對(duì)數(shù)據(jù)集進(jìn)行歸一化之后,PCA和LDA等降維方法就可以派上用場(chǎng)了,以便通過(guò)只保留重要的模式、去除噪聲以及分別分離類(lèi),以減少特征的數(shù)量。

現(xiàn)在,訓(xùn)練前的最后一步是將數(shù)據(jù)集分成訓(xùn)練集和測(cè)試集,以評(píng)估模型針對(duì)未見(jiàn)過(guò)的數(shù)據(jù)時(shí)的性能。

pca = PCA(n_components=0.95) 
X_pca = pca.fit_transform(X)

lda = LDA(n_components=7)  
X_lda = lda.fit_transform(X_pca, y)

#Spliting into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X_lda, y, test_size=0.2, random_state=42, stratify=y)

第3步:訓(xùn)練和評(píng)估模型

接下來(lái)是最重要的部分:訓(xùn)練。SVM模型使用線(xiàn)性核來(lái)訓(xùn)練,線(xiàn)性核有助于繪制一個(gè)直超平面來(lái)分離特征空間中的情感類(lèi)。100的C值控制了最大化邊際和最小化分類(lèi)錯(cuò)誤之間的平衡,兼顧了復(fù)雜性和準(zhǔn)確性。此外,class_weight='balanced'參數(shù)確保模型有效地處理類(lèi)不平衡,使其面對(duì)不同的情感類(lèi)別時(shí)有穩(wěn)定可靠的表現(xiàn)。使用訓(xùn)練數(shù)據(jù)擬合模型后,SVM就可以準(zhǔn)備使用測(cè)試集進(jìn)行性能評(píng)估了。

#Train the SVM model with fixed C value
svm = SVC(C=100, kernel='linear', gamma='scale', class_weight='balanced')
svm.fit(X_train, y_train)

#Evaluating the model
y_pred = svm.predict(X_test)

圖1. 線(xiàn)性核的圖像表示

注意:這里之所以使用線(xiàn)性核,是由于數(shù)據(jù)是線(xiàn)性可分的,它很適用于高維數(shù)據(jù)。

第4步:結(jié)論:結(jié)果和分析

Accuracy: 73.94%
Classification Report:
              precision    recall     f1-score    support

     neutral       0.71      0.73      0.72      1600
      happy       0.88      0.88      0.88      1600
        sad       0.68      0.68      0.68      1600
    surprise       0.69      0.68      0.69      1600
      anger       0.74      0.73      0.73      1600
    contempt      0.71      0.71      0.72      1600
       fear       0.74      0.72      0.73      1600
     disgust       0.71      0.71      0.73      1600

    accuracy                          0.74      8000
   macro avg       0.74      0.74      0.74      8000
weighted avg       0.74      0.74      0.74      8000

分析

我們的模型達(dá)到了73.94%的準(zhǔn)確率,面對(duì)Happy(快樂(lè))類(lèi)表現(xiàn)最好,精準(zhǔn)率和召回率為0.88,面對(duì)中性、憤怒、厭惡和蔑視類(lèi)表現(xiàn)良好(約0.70-0.74)。然而,它在面對(duì)悲傷和驚喜類(lèi)時(shí)表現(xiàn)欠佳(精準(zhǔn)率和召回率為0.68-0.69),可能是由于特征重疊。均衡的宏和加權(quán)平均值為0.74,表明面對(duì)各情感類(lèi),總體上性能一致。

模型的部署

在訓(xùn)練模型之后,我們還創(chuàng)建了一個(gè)網(wǎng)頁(yè),讓用戶(hù)以互動(dòng)的方式檢測(cè)自己的情感。該網(wǎng)頁(yè)還沒(méi)有部署,但是你仍然可以在這里查看如何描述輸出的結(jié)果。

結(jié)論

我們已經(jīng)發(fā)掘了SVM的力量來(lái)解讀從快樂(lè)到驚喜的各種情感。結(jié)合使用關(guān)鍵概念、編碼和一些模型調(diào)優(yōu),我們看到了SVM如何幫助機(jī)器更好地理解我們?nèi)祟?lèi)的情感。完善模型可能需要一番調(diào)整,但SVM是一種強(qiáng)大的情感檢測(cè)工具。

當(dāng)我們繼續(xù)探索令人著迷的AI世界時(shí),想想機(jī)器如何慢慢地在識(shí)別和理解人類(lèi)情感方面變得更好確實(shí)令人嘆為驚訝。不斷學(xué)習(xí),不斷嘗試!

原文標(biāo)題:Expressions Unveiled: Using SVM to Decode Emotions with Machine Learning,作者:Jay Mangukiya

責(zé)任編輯:姜華 來(lái)源: 51CTO內(nèi)容精選
相關(guān)推薦

2023-02-03 11:40:49

機(jī)器學(xué)習(xí)分析情感

2020-05-21 21:14:38

機(jī)器學(xué)習(xí)ML數(shù)據(jù)

2022-10-24 08:02:00

2018-01-04 13:07:43

Python機(jī)器學(xué)習(xí)情感分析

2009-09-17 10:05:49

CCNA學(xué)習(xí)用書(shū)CCNA

2020-02-07 22:18:32

機(jī)器學(xué)習(xí)人工智能AI

2019-11-06 11:34:53

人工智能機(jī)器學(xué)習(xí)工具

2019-08-25 08:02:16

2014-07-08 10:31:08

機(jī)器學(xué)習(xí)

2017-02-06 14:12:57

機(jī)器停車(chē)使用

2018-09-06 09:41:29

人工智能AI

2017-09-27 16:23:53

2017-10-17 14:25:56

機(jī)器學(xué)習(xí)算法優(yōu)化

2009-09-23 11:21:32

學(xué)習(xí)Hibernate

2021-03-01 08:00:00

Linux開(kāi)發(fā)虛擬環(huán)境

2020-05-29 07:00:00

Python機(jī)器學(xué)習(xí)編程語(yǔ)言

2017-03-17 08:30:08

機(jī)器學(xué)習(xí)深度學(xué)習(xí)人工智能

2018-06-10 08:35:30

2017-03-30 14:27:58

機(jī)器人邏輯判斷情感選擇

2009-11-11 14:04:40

IGRP路由協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)