人工智能系列(8)如何實現無監督學習聚類(使用競爭學習)?

案例:鳶尾花數據集的聚類

一.聚類簡介

神經網絡能夠從輸入數據中自動提取有意義的特征,而競爭學習規則使得單層神經網絡能夠根據相似度將輸入樣本進行聚類,每個聚類由一個輸出神經元代表并作為該類別的“原型”,從而實現對輸入模式的無監督分類與結構發現。

二.案例研究(Iris植物聚類)

i.問題陳述:

針對無法明確將數據集劃分為三種鳶尾花類別的問題,設定目標為構建一個能夠自主學習并完成聚類任務的智能無監督人工神經網絡(ANN),選用競爭型神經網絡(Competitive ANN)作為模型,并采用競爭學習(Competitive Learning)算法,使網絡能夠根據輸入特征自動發現數據的內在類別結構并完成分類。

ii.數據集描述:

本實驗數據集包含 150 個樣本,分屬 Setosa、Versicolor 和 Virginica 三種鳶尾花類別,每個樣本由 4 個連續型特征描述,分別為萼片長度(4.3–7.9 cm)、萼片寬度(2.0–4.4 cm)、花瓣長度(1.0–6.9 cm)和花瓣寬度(0.1–2.5 cm),這些特征在數值范圍和單位上存在差異,因此在模型訓練前需進行歸一化處理,以確保特征在聚類中的貢獻均衡。

iii.測試理解問題:

本任務屬于聚類應用,數據集規模為 150 個樣本在 3 個類別上的共 450 條特征記錄,每個樣本包含 4 個變量(萼片長度、萼片寬度、花瓣長度、花瓣寬度),目標是將其劃分為 Setosa、Versicolor 和 Virginica 三類,通過無監督聚類方法發現不同鳶尾花品種在特征空間中的分布規律與相似性結構。

三、核心概念與流程

1.數據準備

? ? ? i.數據歸一化

歐幾里得距離對特征數值范圍非常敏感,如果某個特征的取值范圍較大,就會在距離計算中占據主導地位,掩蓋其他特征的作用;同時,不同特征可能存在不同的單位和量綱(如 cm、kg、秒),直接比較不公平。通過歸一化,可以將所有特征轉換到同一尺度(通常是 0 到 1 的比例數據),使它們在相似度計算中權重均衡,并加快模型的訓練收斂速度。

? ? ? ii.數據劃分(DATA PREPARATION)

在實驗中,將 150 個樣本隨機劃分為訓練集和測試集,例如可分為訓練集 100 個、測試集 50 個,或按 70:30、80:20 等比例進行分配,以便用于模型訓練和效果評估。

2.網絡結構(Iris 示例)

在該競爭學習網絡中,輸入層神經元數量等于特征數,即 4 個節點分別對應萼片長度、萼片寬度、花瓣長度和花瓣寬度;輸出層神經元數量等于期望的聚類簇數,本例設置為 3 個神經元分別代表三種鳶尾花類別;權重矩陣的維度為 4×3,即每個輸出神經元都關聯一個 4 維權重向量,用于表征該類別在特征空間中的“原型”位置,并在訓練過程中不斷調整以貼近該簇樣本的特征分布。

3.初始化

訓練初期將網絡權重初始化為較小的隨機值(如在 [0,1] 區間或依據輸入特征范圍生成),并在訓練過程中定期記錄權重變化,例如比較初始權重、迭代 100 次后的權重以及 2000 次后的權重,以觀察網絡收斂過程和權重逐步貼近各類別特征分布的趨勢。

4.激活與匹配(找 Winner)

使用 歐氏距離(Euclidean distance) 作為匹配準則:對每個輸出單元 j計算, 選擇距離最小者作為勝出神經元(BMU)。

5.權重更新

    對勝出神經元的權重按下式更新:

    ?

    α是學習率,控制更新幅度;Λj(p)是鄰域函數;

    6.重復訓練直至收斂

    由于無監督學習中沒有可直接監控的標簽誤差,本例采用歐氏距離準則或“權重變化不再顯著”作為收斂判據,即當權重向量在多次迭代后變化幅度極小即可視為收斂。

    7.簇標注(Labelling 輸出神經元)

    在無監督聚類中,輸出單元本身沒有預設類標簽,因此常用的方法是在訓練完成后利用帶標簽的測試集進行“投票”標注,即統計每個輸出單元在測試集中最常贏得的真實類別,將該單元標記為該類別,從而實現輸出神經元與具體類別的對應關系。

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/pingmian/92501.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92501.shtml
    英文地址,請注明出處:http://en.pswp.cn/pingmian/92501.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    Windows安裝mamba全流程(全網最穩定最成功)

    windows系統下安裝mamba會遇到各種各樣的問題。博主試了好幾天,把能踩的坑都踩了,總結出了在windows下安裝mamba的一套方法,已經給實驗室的windows服務器都裝上了。只要跟著我的流程走下來,大概率不會出問題,如果遇到其…

    Autosar Dem配置-最大存儲的DTC信息個數配置-基于ETAS軟件

    文章目錄 前言 Autosar Dem相關配置 ETAS工具中的配置 生成文件分析 測試驗證 總結 前言 診斷DTC開發中,會有故障快照和擴展數據的存儲需求,但由于控制器的可用存儲空間有限,所以無法存儲所有DTC的信息,這時就需要限制存儲的數量,本文介紹該參數在ETAS軟件中的配置。 Au…

    【MySQL】EXISTS 與 NOT EXISTS 深度解析:從原理到實戰的完整指南

    在復雜的業務查詢中,我們常常需要判斷“是否存在滿足某條件的記錄”或“找出不滿足某些條件的記錄”。這時,EXISTS 和 NOT EXISTS 子查詢便成為強大的工具。它們不僅邏輯清晰、語義明確,而且在某些場景下性能遠超 IN 或 JOIN。然而&#xff0…

    面對信號在時頻平面打結,VNCMD分割算法深度解密

    “ 信號迷宮中的破壁者:VNCMD如何分解糾纏的時空密碼?——從鯨歌到機械故障,寬帶信號分解新紀元。”01—痛點直擊:為什么傳統方法集體失效?2017年,上海交大團隊提出了一項突破性研究:變分非線性…

    CSS優先級、HTTP響應狀態碼

    CSS優先級 優先級:看CSS的來源、樣式引入方式、選擇器、源碼順序。 行內樣式/內聯樣式:直接在HTML元素的style屬性中編寫CSS樣式。這種方式適用于少量樣式的情況,但不推薦在大規模開發中使用,因為它會使HTML文件變得冗長和難以維…

    項目一系列-第2章 Git版本控制

    第2章 Git版本控制 2.1 Git概述 Git是什么?Git是一個分布式版本控制工具,于管理開發過程中的文件。 Git有哪些作用? 遠程備份:Git可以將本地代碼備份到遠程服務器,防止數據丟失。多人協作:Git運行多個開發者…

    Java異常:認識異常、異常的作用、自定義異常

    目錄1.什么是異常?1)運行時異常2)編譯時異常2.異常的作用1)Java 異常在定位 BUG 中的核心作用2)Java 異常作為方法內部特殊返回值的作用3)自定義異常1.什么是異常? Error:代表的系統級別錯誤(屬…

    第十九天-輸入捕獲實驗

    一、輸入捕獲概述1、輸入捕獲框圖2、輸入捕獲工作詳解①設置輸入捕獲濾波器可以設置濾波,濾除一些高電平脈寬不足的脈沖信號。②設置捕獲極性③輸入捕獲映射④輸入捕獲分頻器這里的捕獲是將計數器的值存入比較寄存器中,分頻次的作用是設置幾個上升沿/下降…

    多線程問題,子線程同時操作全局變量,使用后需要清空嗎 ?

    背景:目前有一個全局變量 ,某個方法中通過多線程,都操作這個變量,向這個全局變量中去添加元素,然后等所有子線程執行完了之后,對這個全局變量進行批量保存,然后這個全局變量還需要手動去清空嗎&…

    Netty知識儲備:BIO、NIO、Reactor模型

    學習Netty之前,首先先掌握這些基礎知識:阻塞(Block)與非阻塞(Non-Block),同步(Synchronous)與異步(Asynchronous),Java BIO與NIO對比。…

    用生成器守住架構,用 AI 放大效率:一套可落地的 AI 編程方法論

    背景與問題 現實困境: 直接讓 AI 產出整塊業務代碼,常常與現有架構風格、分層邊界、依賴策略不一致,后續改造成本高;AI 對現實業務語境、領域規則難以精準把握;在既定模板成熟的場景下,代碼生成器往往更快、更整齊。目…

    碼頭岸電系統如何保障供電安全?安科瑞絕緣監測及故障定位方案解析

    當岸電電網是TN-S系統時,船體未接專用接地線且船舶電網未與岸電零線接通,船舶電網發生單相接地故障時,人站在岸上觸及船體會有觸電危險,零線上可能出現高電壓,單相接地電流大。當船體接專用接地線且船舶電網接入岸電零…

    ESP32_u8g2移植

    前言 U8g2 是一個用于嵌入式設備的單色圖形庫。U8g2支持單色OLED和LCD,并支持如SSD1306 SSD1315等多種類型的OLED驅動,幾乎市面上常見都支持。 U8g2源碼 download:https://github.com/olikraus/u8g21:環境 ESP32 S3(ESP32-S3-Dev…

    MCP實現:.Net實現MCP服務端 + Ollama ,MCP服務端工具調用

    本文使用.Net編寫MCP服務端 Ollama ,實現簡單MCP調用,代碼僅實現基本演示功能。 文章目錄一、Ollama如何安裝使用二、創建.Net8項目,開發MCP服務端三、開發MCP客戶端,并對接Ollama一、Ollama如何安裝使用 請移步:htt…

    Docker的安裝使用以及常見的網絡問題

    一、什么是DockerDocker是一種容器化技術,用于快速打包、分發和運行程序。他的核心思想是"一次構建,到處運行",通過將應用及其依賴的環境打包到一個輕量級、可移植的容器中,實現跨平臺一致運行。二、Docker的安裝1.Cent…

    C++入門學習

    1.命名空間的介紹首先我們看到如下的代碼&#xff0c;在C語言中&#xff1a;#include <stdio.h> #include <stdlib.h> int rand 10; // C語言沒辦法解決類似這樣的命名沖突問題&#xff0c;所以C提出了namespace來解決 int main() {printf("%d\n", rand…

    解決python錯誤:playwright._impl._errors.TimeoutError: Timeout 30000ms exceeded.

    from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page() page.goto(url)page.wait_for_load_state(networkidle) 在Python環境中運行以上代碼后報錯: page.wait_for_load_…

    爬蟲逆向之雷池waf

    本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的。否則由此產生的一切后果均與作者無關&#xff01; 雷池waf概念 雷池 WAF&#xff08;SafeLine&#xff09;是長亭科技開源的一款 Web 應用防火墻&#xff0c;部署在網站前面&#xff0c;把所有進來的 HTTP/…

    23種設計模式解析--行為型

    行為型模式&#xff08;協作的藝術&#xff09; 觀察者模式 觀察者模式詳解 模式定義 觀察者模式&#xff08;Observer Pattern&#xff09;是一種行為設計模式&#xff0c;用于建立對象間一對多的依賴關系。當一個對象&#xff08;Subject&#xff09;狀態變化時&#xff0c;所…

    Linux系統之lua 詳解

    命令簡介 lua 是 Lua 語言的解釋器&#xff0c;用于加載和執行 Lua 程序&#xff08;包括文本源碼和預編譯的二進制文件&#xff09;。它支持兩種運行模式&#xff1a;批處理模式&#xff08;執行指定腳本文件&#xff09;和交互式模式&#xff08;逐行讀取并執行輸入的命令&am…