工業大數據分析算法實戰-day05

文章目錄

  • day05
    • 分而治之中的MARS算法
    • 神經網絡逼近能力解釋

day05

今天是第5天,昨日從統計分析開始利用統計學的知識判斷當前樣本的分布以及估計總體的參數和假設檢驗的情況,以及介紹了線性回歸算法的相關優化點,但是畢竟線性回歸是線性劃分的,實際情況很多是非線性的,比如溫度對故障可能在低溫沒什么影響但是高溫卻急劇的增加影響,這就需要分區進行建模,今天將學習多元自適應回歸樣條算法(MARS)以及神經網絡算法(該小節只講述了部分,后面會有專門的深度學習小節)

分而治之中的MARS算法

相比較傳統的線性回歸最大的不同在于將數據分為不同區間,然后在每個區間內進行局部的線性回歸,具體來說:

  • 數據劃分(分區間)

    • 在傳統的線性回歸中,我們假設所有的數據點都符合一個統一的線性關系(比如 y = a * x + b)。但實際上,數據中可能存在非線性關系,例如溫度對故障的影響,在低溫區間可能沒有太大影響,但在高溫區間可能會急劇增加故障風險。
    • MARS 會將數據分成多個區間(或者叫“段”)。每個區間的線性關系可能不同,它會在不同的區間內用不同的線性方程來擬合數據。
  • 基函數(分段線性回歸)

    • MARS 的每個區間都有一個 基函數,這些基函數通常是分段的線性函數。例如,假設我們正在研究溫度(T)與故障之間的關系,MARS 可能會根據溫度的不同值劃分為多個區間,并在每個區間內使用線性回歸來擬合數據。

    • 比如:

      • T < 30 時,模型可能是 故障風險 = a1 * T + b1

      • 30 ≤ T < 35 時,模型可能是 故障風險 = a2 * T + b2

      • T ≥ 35 時,模型可能是 故障風險 = a3 * T + b3

    • 每個區間內都有自己的一組參數(a1, b1, a2, b2, 等),這些參數會根據該區間的數據來確定。

  • 如何選擇分裂點?

    • MARS 算法會通過一種 貪心算法,在數據中選擇最能降低誤差的分裂點(比如,溫度在哪個值附近劃分最能提升模型的擬合效果)。
    • 比如,它會嘗試不同的溫度值來進行分區(如 30°C,35°C 等),然后計算每個分裂點所帶來的誤差減少,最終選擇最能改善模型的分裂點。
  • 逐步建模和剪枝:在前向建模過程中,MARS 會不斷添加新的基函數來提高模型的精度,每加一個新的分段模型,都會計算模型的誤差,直到誤差不能再顯著下降。然后,后剪枝會去除一些對模型貢獻較小的基函數,保持模型的簡潔性,避免過擬合。

特點線性回歸MARS
擬合關系線性關系(y = ax + b)非線性關系(通過分段線性回歸擬合)
模型復雜度簡單,只有一個公式較復雜,多個分段回歸模型
處理非線性能力只能處理線性關系能自動處理復雜的非線性關系
模型解釋性易于理解,參數(a, b)有明確物理意義較復雜,但每個分段也有物理意義
計算復雜度計算速度快,適合小數據計算較慢,適合復雜問題
適用場景數據關系簡單,線性數據關系復雜,有多段不同的線性關系

舉例說明:假設正在做一個機房故障預測模型,其中有兩個變量:溫度(T)濕度(H),并且你發現它們與故障之間的關系可能不是簡單的線性關系。比如:

  • 當溫度低于某個值時,濕度對故障影響較小。
  • 但當溫度超過某個閾值時,濕度對故障的影響會急劇增加。

傳統的線性回歸只能擬合一個整體的線性關系(例如 故障風險 = a1 * T + a2 * H + b),但它可能無法準確捕捉到溫度和濕度之間的這種非線性交互關系。MARS 會根據數據自動選擇適合的溫度和濕度的分裂點(例如 T = 30H = 50%),并在每個區間內使用不同的線性回歸模型來擬合數據,這樣就能更精確地捕捉到不同環境條件下的故障風險。

下面是對比類似的算法,都是采用:分而治之的思想

算法基本原理優點缺點舉例
MARS數據分成多個區間,每個區間用簡單的線性回歸來擬合。適應非線性關系,能夠處理高維數據。模型劃分和邊界處理較復雜,計算量大。比如在機房溫濕度監控中,不同時間段和不同區域的溫濕度影響因素不同,可以根據不同時間段(如白天、夜晚)和區域(如機架區、空調區)建立不同的線性模型。
CART通過遞歸分割數據,按不同條件劃分每個區域,進行回歸或分類。簡單直觀,結果易于解釋。容易過擬合,需要剪枝,無法處理復雜非線性。在機房電力負荷預測中,根據溫濕度、設備運行狀況等條件,遞歸劃分數據,判斷不同條件下的負荷預測。比如當溫度高于某一閾值時,負荷增加,模型會根據這些條件做決策。
PPR將數據投影到低維空間,再用多個非線性函數組合進行擬合。能處理復雜的非線性關系。計算復雜,模型解釋性差。在機房空調系統的能效預測中,溫度、濕度、設備負載等多個因素共同作用,PPR可以將這些復雜的因素投影到低維空間,通過多個非線性函數綜合分析,預測空調系統的能效表現。

神經網絡逼近能力解釋

本節重點針對的是ANN,不做其他討論,我們都知道ANN是一個三層結構的網絡,包括輸入層、隱含層和輸出層,可以做分類、回歸任務,所以在增加隱含層節點的前提下,ANN算法具有無限的函數逼近的能力,但是如何理解其逼近能力?神經元通常采用sigmoid作為激活函數.

  • 當權重參數很大時,sigmoid函數的輸出會趨近于0或1,這樣它的行為就像一個階躍函數了。簡單來說,當權重很大時,sigmoid函數的曲線變得幾乎是一個“斷崖”,這使得它能做類似階躍函數的決策。

    • Sigmoid函數:形狀像"S"字母的曲線,它的輸出范圍是(0, 1),對于較大的輸入值,它的變化就會變得非常陡峭。
    • 階躍函數:是一個非常簡單的函數,當輸入超過某個閾值時輸出為1,否則輸出為0。它像一個“開關”,只輸出兩個值。
  • 多個階躍函數通過不同的偏移參數和加權,可以構成復雜的分段函數

    • 在神經網絡中,每個神經元可以看作是一個小的決策單元,如果我們用多個神經元的階躍函數(或sigmoid等函數)組合起來,就能夠在不同的輸入范圍內形成不同的輸出,這些不同的輸出在一起就構成了一個復雜的分段函數
    • 分段函數:在不同的區間內,函數的表現不同。神經網絡通過多個層次的神經元,每層可以通過不同的加權和偏移,形成對輸入的不同處理,從而逼近復雜的目標函數。
  • 實際的ANN模型不是簡單的分段逼近,而是通過損失函數的梯度下降與反向傳播

    • 梯度下降:是一種優化方法,用來最小化神經網絡輸出與目標值之間的差距(即損失)。通過計算梯度并更新參數,逐步調整權重和偏置,使網絡的預測越來越準確。
    • 反向傳播:在訓練過程中,通過反向傳播算法計算誤差的梯度,并利用梯度下降方法來更新每一層神經元的參數。反向傳播確保網絡能夠根據數據中的模式調整其內部結構。

ELM的模型結構和ANN一致,但是訓練參數(輸入層、隱含層)階段和輸出層權重計算方式不一樣,可查驗下表,核心就是輸入層、隱含層參數隨機固定,計算輸出層就把問題轉換為了簡單的線性問題。所以ELM算法比傳統神經網絡的準確度偏差,但是計算量低很多,可以用在一些需要即時計算的場景。

特性極限學習機(ELM)人工神經網絡(ANN)
參數訓練只訓練輸出層的權重,隱藏層權重隨機初始化且固定訓練所有層的權重和偏置,通過反向傳播調整
求解參數通過線性方法(如最小二乘法)直接求解輸出層權重通過梯度下降和反向傳播迭代求解所有參數

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

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

相關文章

在Ubuntu服務器上備份文件到自己的百度網盤

文章目錄 概述安裝bypy同步文件定時任務腳本 概述 之前自購了一臺阿里云服務器&#xff0c;系統鏡像為Ubuntu 22.04&#xff0c; 并且搭建了LNMP開發環境&#xff08;可以參考&#xff1a;《Ubuntu搭建PHP開發環境操作步驟(保姆級教程)》&#xff09;。由于項目運行中會產生附…

safe area helper插件

概述 顯示不同機型的必能顯示的區域 實現步驟 引入safearea&#xff0c;引入其中的safearea的csharp 為cancas加入gameobject gameobject中加入safearea腳本 將UI作為這個gameobject的子物體&#xff0c;就可以完成顯示

Unity 獲取鼠標點擊位置物體貼圖顏色

實現 Ray ray Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit)) {textureCoord hit.textureCoord;textureCoord.x * textureMat.width;textureCoord.y * textureMat.height;textureColor textureMat.GetPixel(Mathf.Flo…

基于深度學習的貓狗識別系統【深度學習課設】

&#x1f3c6; 作者簡介&#xff1a;席萬里 ? 個人網站&#xff1a;https://dahua.bloggo.chat/ ?? 一名后端開發小趴菜&#xff0c;同時略懂Vue與React前端技術&#xff0c;也了解一點微信小程序開發。 &#x1f37b; 對計算機充滿興趣&#xff0c;愿意并且希望學習更多的技…

05、GC基礎知識

JVM程序在跑起來之后&#xff0c;在數據的交互過程中&#xff0c;就會有一些數據是過期不用的&#xff0c;這些數據可以看做是垃圾&#xff0c;JVM中&#xff0c;這些垃圾是不用開發者管的&#xff0c;它自己會有一套垃圾回收系統自動回收這些內存垃圾&#xff0c;以備后面繼續…

什么是戰略思想?

古今中外&#xff0c;關于戰略是什么&#xff1f;有非常多的理論&#xff0c;也有不同的視角。 中國最早的涉及戰略的書籍據傳是黃帝所著的《握奇文》&#xff0c;后有較為系統的兵法戰略書籍為周朝姜太公&#xff08;亦稱姜尚、姜子牙等&#xff09;所著的《六韜》&#xff0c…

2024.12.15 TCP/IP 網絡模型有哪幾層?(二)

2024.12.15 TCP/IP 網絡模型有哪幾層?&#xff08;二&#xff09; 上節課我們學習了網絡模型有四部分構成&#xff0c;有應用層、傳輸層、網絡層、網絡接口層。 生成了 IP 頭部之后&#xff0c;接下來要交給網絡接口層(Link Layer)在 IP 頭部的前面加上 MAC 頭部&#xff0c…

51c深度學習~合集9

我自己的原文哦~ https://blog.51cto.com/whaosoft/12750420 #傅里葉特征 (Fourier Feature&#xff09;與核回歸 位置編碼背后的理論解釋 本文探討了位置編碼背后的理論基礎&#xff0c;特別是傅里葉特征&#xff08;Fourier Feature&#xff09;與核回歸&#xff08;Kern…

Flutter Navigator2.0的原理和Web端實踐

01 背景與動機 在Navigator 2.0推出之前&#xff0c;Flutter主要通過Navigator 1.0和其提供的 API&#xff08;如push(), pop(), pushNamed()等&#xff09;來管理頁面路由。然而&#xff0c;Navigator 1.0存在一些局限性&#xff0c;如難以實現復雜的頁面操作&#xff08;如移…

代碼隨想錄算法訓練營第三天 | 鏈表理論基礎 | 707.設計鏈表

要求太多&#xff0c;代碼量太大&#xff0c;實在難以完成 在以前聽說&#xff0c;好的程序員&#xff0c;可以在短時生成大量的代碼&#xff0c;本題只方法才只有6個&#xff0c;根本不算多 每天手敲代碼量太少&#xff0c;才是問題 #include <iostream>class MyLink…

數據冒險、控制冒險、結構冒險

計算機組成原理 數據冒險、控制冒險、結構冒險 對所有用戶&#xff08;所有程序員&#xff09;可見&#xff1a;PSW、PC、通用寄存器 PSW&#xff08;條件轉移需要用到&#xff0c;程序員使用CMP指令的時候也需要用到所以是對用戶可見&#xff09;PC&#xff08;跳轉指令需要…

基于32單片機的RS485綜合土壤傳感器檢測土壤PH、氮磷鉀的使用(超詳細)

1-3為RS485綜合土壤傳感器的基本內容 4-5為基于STM32F103C8T6單片機使用RS485傳感器檢測土壤PH、氮磷鉀并顯示在OLED顯示屏的相關配置內容 注意&#xff1a;本篇文件講解使用的是PH、氮磷鉀四合一RS485綜合土壤傳感器&#xff0c;但里面的講解內容適配市面上的所有多合一的RS…

SpringBoot【十一】mybatis-plus實現多數據源配置,開箱即用!

一、前言&#x1f525; 環境說明&#xff1a;Windows10 Idea2021.3.2 Jdk1.8 SpringBoot 2.3.1.RELEASE 正常情況下我們在開發系統的時候都是使用一個數據源&#xff0c;但是由于有些項目同步數據的時候不想造成數據庫io消耗壓力過大&#xff0c;便會一個項目對應多個數據源…

Node.js教程入門第一課:環境安裝

對于一個程序員來說&#xff0c;每學習一個新東西的時候&#xff0c;第一步基本上都是先進行環境的搭建&#xff01; 從本章節開始讓我們開始探索Node.js的世界吧! 什么是Node.js? 那么什么是Node.js呢&#xff1f;簡單的說Node.js 就是運行在服務端的 JavaScript JavaScript…

vim優化

1.編輯如下內容&#xff1a; cat > /root/.vimrc <<EOF set tabstop2 " 設置 Tab 為 2 個空格 set shiftwidth2 " 設置自動縮進為 2 個空格 set expandtab " 將 Tab 轉換為空格 " 基本設置 set number syntax on" 快捷鍵設置…

字符串性能對比

效率(1) : String.indexOf與String.contains效率測試_string contains效率-CSDN博客 結論是前者效率高&#xff0c;源碼里面conatins是使用indexof 在jdk8中contains直接調用的indexOf(其他版本沒有驗證),所以要說效率來說肯定是indexOf高,但contains也就多了一層方法棧,so 什…

移動網絡的原理

無線網絡是如何解決移動通信問題的 場景&#xff1a;用戶在一輛轎車內以150km/h的時速沿高速公路急速行駛時穿過多個無線接入網&#xff0c;用戶希望在整個旅程中保持一個與遠程應用的不間斷的TCP連接。 解決方案&#xff1a;移動節點的間接路由選擇方法可解決TCP鏈接不間斷的…

python學opencv|讀取圖像(十三)BGR圖像和HSV圖像互相轉換深入

【1】引言 前序學習過程中&#xff0c;我們偶然發現&#xff1a;如果原始圖像是png格式&#xff0c;將其從BGR轉向HSV&#xff0c;再從HSV轉回BGR后&#xff0c;圖像的效果要好于JPG格式。 文章鏈接為&#xff1a; python學opencv|讀取圖像&#xff08;十二&#xff09;BGR圖…

解決node.js的req.body為空的問題

從昨晚一直在試&#xff0c;明明之前用的封裝的axios發送請求給其他的后端&#xff08;springboot&#xff09;是可以的&#xff0c;但昨天用了新項目的后端&#xff08;node.js&#xff09;就不行。 之前用了代理&#xff0c;所以瀏覽器發送的post請求不會被攔截&#xff0c;…

【嵌入式】嵌入式面試題 36 問

1. volatile 是否可以修飾 const 是的&#xff0c;volatile 可以修飾 const。const 表示變量的值不能被修改&#xff0c;而 volatile 表示變量的值可能在程序之外被修改&#xff08;例如&#xff0c;由硬件修改&#xff09;。 將 volatile 用于 const 變量意味著該變量的值雖然…