大數據-274 Spark MLib - 基礎介紹 機器學習算法 剪枝 后剪枝 ID3 C4.5 CART

點一下關注吧!!!非常感謝!!持續更新!!!

大模型篇章已經開始!

  • 目前已經更新到了第 22 篇:大語言模型 22 - MCP 自動操作 Figma+Cursor 自動設計原型

Java篇開始了!

  • MyBatis 更新完畢
  • 目前開始更新 Spring,一起深入淺出!

目前已經更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez(已更完)
  • 數據挖掘(已更完)
  • Prometheus(已更完)
  • Grafana(已更完)
  • 離線數倉(已更完)
  • 實時數倉(正在更新…)
  • Spark MLib (正在更新…)

在這里插入圖片描述

預剪枝和后剪枝

決策樹對訓練集有很好的分類能力,但是對于未知的測試集未必能有很好的分類能力,導致模型的泛化能力差,可能發生過擬合的情況,為了防止過擬合的情況出現,可以對決策樹進行剪枝,剪枝分為預剪枝和后剪枝。

預剪枝

預剪枝就是在構建決策樹的時候提前停止,比如指定樹的深度最大為3,那么訓練出來的決策樹的高度就是3,預剪枝主要是建立某些規則限制決策樹的生長,降低了過擬合的風險,降低了建樹的時間,但是有可能帶來欠擬合的問題。

后剪枝

后剪枝是一種全局的優化方法,在決策樹構建好之后,然后才開始進行剪枝。后剪枝的過程就是刪除一些子樹,這個葉子節點的標識類別通過大多數原則來確定,即屬于這個葉子節點下大多數樣本所屬的類別就是該葉子節點的標識。
選擇減掉哪些子樹時,可以計算沒有減掉子樹之前的誤差和減掉子樹之后的誤差,如果相差不大,可以將子樹減掉。
一般使用后剪枝得到的結果比較好。

算法總結

在這里插入圖片描述

  • 分裂標準(Split Criterion):選擇劃分屬性與劃分點
  • 樹生成(Growing):遞歸地對子集繼續分裂
  • 剪枝(Pruning):降低過擬合:預剪枝 / 事后剪枝
  • 葉節點預測:分類樹:投票 / 概率;回歸樹:均值 / 中位數

ID3、C4.5、CART 的區別主要體現在 分裂標準、支持的屬性類型、樹結構與剪枝方法。

ID3

存在的缺點:
● ID3 算法在選擇根節點和各內部節點中的分支屬性時,采用信息增益作為評價標準。信息增益的缺點是傾向于選擇取值較多的屬性,在有些情況下這類屬性可能不會提供太多有價值的信息
● ID3 算法只能對描述屬性為離散型屬性的數據集構造決策樹

核心思想

信息增益 (Information Gain):選擇能最大化熵下降(信息增益)的屬性來分裂,僅支持 離散屬性;連續屬性需先離散化。
請添加圖片描述

算法流程

  • 計算當前數據集 D 的熵 H(D)
  • 對每個屬性 a 計算 Gain(D,a)
  • 選 Gain 最大者分裂,對子集遞歸生成子樹
  • 當屬性耗盡或樣本純度足夠時停止

C4.5

那為什么 C4.5 好呢?
● 用信息增益率來選擇屬性
● 可以處理連續數值型屬性
● 采用了一種后剪枝的方法
● 對于缺失值的處理

優點:
● 產生的分類規則易于理解,準確率較高

缺點:
● 在構造數的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效
● 只適合與能夠駐留在內存的數據集,當訓練集大得無法再內存中時則程序無法運行

CART

CART算法相比C4.5算法的分類方法,采用了簡化的二叉樹模型,同時特征選擇采用了近似的基尼系數來簡化計算。

流程要點

  • 對每個特征枚舉所有切分點 → 計算基尼下降量 / 均方誤差下降量
  • 選最大下降量的「特征 + 切分點」做二分
  • 直到葉節點樣本少于閾值或純度滿足停止準則
  • 代價復雜度剪枝得到最終子樹

決策樹案例

package icu.wzk.logicimport org.apache.spark.mllib.tree.DecisionTree
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.{SparkConf, SparkContext}object LogicTest2 {def main(args: Array[String]): Unit = {val conf = new SparkConf().setMaster("local").setAppName("dt")val sc = new SparkContext(conf)sc.setLogLevel("warn")//讀取數據集val labeledPointData = MLUtils.loadLibSVMFile(sc, "./data/dt.data")val trainTestData = labeledPointData.randomSplit(Array(0.8, 0.2), seed = 1)val trainData = trainTestData(0)val testData = trainTestData(1)//訓練模型val categoriFeatureMap = Map[Int, Int](0 -> 4, 1 -> 4, 2 -> 3, 3 -> 3)val model = DecisionTree.trainClassifier(trainData, 2,categoriFeatureMap, "entropy", 3, 32)//預測val testRes = testData.map(data => {(model.predict(data.features), data.label)})testRes.take(10).foreach(println(_))//評價val errorRate = testRes.filter(x => x._1 != x._2).count().toDouble /testData.count()println("錯誤率:" + errorRate)//if-else展示println(model.toDebugString)sc.stop()}
}

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

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

相關文章

flutter常用動畫

Flutter 動畫基礎概念 術語解釋Animation表示動畫的值,通常是一個 double (0.0 ~ 1.0) 或其他數值。AnimationController管理動畫的時間進度和狀態。需要 Ticker (vsync) 來驅動。Tween定義動畫的取值范圍,如從 0.0 到 1.0,從紅色到藍色。Cu…

Python打卡DAY43

復習日 作業: kaggle找到一個圖像數據集,用cnn網絡進行訓練并且用grad-cam做可視化 進階:并拆分成多個文件 我選擇ouIntel Image Classification | Kagglezz,該數據集分為六類,包含建筑、森林、冰川、山脈、海洋和街道…

從多巴胺的誘惑到內啡肽的力量 | 個體成長代際教育的成癮困局與破局之道

注:本文為“多巴胺,內啡肽”相關文章合輯。 圖片清晰度受引文原圖所限。 略作重排,未整理去重。 如有內容異常,請看原文。 年少偏愛多巴胺,中年才懂內啡肽 摘要 :本文通過生活實例與科學研究相結合的方式…

【音視頻】H265 NALU分析

1 H265 概述 H264 與 H265 的區別 傳輸碼率:H264 由于算法優化,可以低于 2Mbps 的速度實現標清數字圖像傳送;H.265 High Profile 可實現低于 1.5Mbps 的傳輸帶寬下,實現 1080p 全高清視頻傳輸。 編碼架構:H.265/HEVC…

Python訓練營打卡 Day26

知識點回顧: 函數的定義變量作用域:局部變量和全局變量函數的參數類型:位置參數、默認參數、不定參數傳遞參數的手段:關鍵詞參數傳遞參數的順序:同時出現三種參數類型時 ——————————————————————…

PH熱榜 | 2025-05-29

1. Tapflow 2.0 標語:將你的文檔轉化為可銷售的指導手冊、操作手冊和工作流程。 介紹:Tapflow 2.0將各類知識(包括人工智能、設計、開發、營銷等)轉化為有條理且可銷售的產品。現在你可以導入文件,讓人工智能快速為你…

GitHub 趨勢日報 (2025年05月30日)

📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖 833 agenticSeek 789 prompt-eng-interactive-tutorial 466 ai-agents-for-beginn…

Cesium 8 ,在 Cesium 上實現雷達動畫和車輛動畫效果,并控制顯示和隱藏

目錄 ?前言 一、功能背景 1.1 核心功能概覽 1.2 技術棧與工具 二、車輛動畫 2.1 模型坐標 2.2 組合渲染 2.3 顯隱狀態 2.4 模型文件 三、雷達動畫 3.1 創建元素 3.2 動畫解析 3.3 坐標聯動 3.4 交互事件 四、完整代碼 4.1 屬性參數 4.2 邏輯代碼 加載車輛動畫…

相機--相機標定

教程 相機標定分類 相機標定分為內參標定和外參標定。 內參標定 目的 作用 原理 外參標定

JS手寫代碼篇---手寫類型判斷函數

9、手寫類型判斷函數 手寫完成這個函數:輸入一個對象(value),返回它的類型 js中的數據類型: 值類型:String、Number、Boolean、Null、Undefied、Symbol引用類型:Object、Array、Function、RegExp、Date 使用typeOf…

量子物理:初步認識量子物理

核心特點——微觀世界與宏觀世界的差異 量子物理(又稱量子力學)是物理學中描述微觀世界(原子、電子、光子等尺度)基本規律的理論框架。它與我們熟悉的經典物理(牛頓力學、電磁學等)有根本性的不同,因為微觀粒子的行為展現出許多奇特且反直覺的現象。 簡單來說,量子物…

springboot配置cors攔截器與cors解釋

文章目錄 cors?代碼 cors? CORS(跨域資源共享)的核心機制是 由后端服務器(bbb.com)決定是否允許前端(aaa.com)的跨域請求 當瀏覽器訪問 aaa.com 的頁面,并向 bbb.com/list 發起請求時&#…

國芯思辰| 同步降壓轉換器CN2020應用于智能電視,替換LMR33620

在智能電視不斷向高畫質、多功能、智能化發展的當下,其內部電源管理系統的性能至關重要。同步降壓轉換器可以為智能電視提供穩定、高效的運行。 國芯思辰CN2020是一款脈寬調制式同步降壓轉換器。內部集成兩個功率MOS管,在4.5~18V寬輸入電壓范圍內可以持…

API 版本控制:使用 ABP vNext 實現版本化 API 系統

🚀API 版本控制:使用 ABP vNext 實現版本化 API 系統 📚 目錄 🚀API 版本控制:使用 ABP vNext 實現版本化 API 系統一、背景切入 🧭二、核心配置規則 📋2.1 前置準備:NuGet 包與 usi…

Android高級開發第四篇 - JNI性能優化技巧和高級調試方法

文章目錄 Android高級開發第四篇 - JNI性能優化技巧和高級調試方法引言為什么JNI性能優化如此重要?第一部分:JNI性能基礎知識JNI調用的性能開銷何時使用JNI才有意義? 第二部分:核心性能優化技巧1. 減少JNI調用頻率2. 高效的數組操…

小白的進階之路系列之十----人工智能從初步到精通pytorch綜合運用的講解第三部分

本文將介紹Autograd基礎。 PyTorch的Autograd特性是PyTorch靈活和快速構建機器學習項目的一部分。它允許在一個復雜的計算中快速而簡單地計算多個偏導數(也稱為梯度)。這個操作是基于反向傳播的神經網絡學習的核心。 autograd的強大之處在于它在運行時動態地跟蹤你的計算,…

43. 遠程分布式測試實現

43. 遠程分布式測試實現詳解 一、遠程測試環境配置 1.1 遠程WebDriver服務定義 # Chrome瀏覽器遠程服務地址 chrome_url rhttp://localhost:5143# Edge瀏覽器遠程服務地址 edge_url rhttp://localhost:9438關鍵概念:每個URL對應一個獨立的WebDriver服務典型配置…

Python爬蟲(40)基于Selenium與ScrapyRT構建高并發動態網頁爬蟲架構:原理、實現與性能優化

目錄 一、引言二、技術背景1. 動態頁面處理痛點2. 架構設計目標 三、核心組件詳解1. Selenium Grid集群部署2. ScrapyRT服務化改造3. 智能等待策略 四、系統架構圖五、性能優化實踐1. 資源隔離策略2. 并發控制算法3. 監控體系 六、總結與展望🌈Python爬蟲相關文章&a…

【存儲基礎】SAN存儲基礎知識

文章目錄 1. 什么是SAN存儲?2. SAN存儲組網架構3. SAN存儲的主要協議SCSI光纖通道(FC)協議iSCSIFCoENVMe-oFIB 4. SAN存儲的關鍵技術Thin Provision:LUN空間按需分配Tier:分級存儲Cache:緩存機制QoS&#x…

TDengine 運維——巡檢工具(定期檢查)

背景 TDengine 在運行一段時間后需要針對運行環境和 TDengine 本身的運行狀態進行定期巡檢,本文檔旨在說明如何使用巡檢工具對 TDengine 的運行環境進行自動化檢查。 安裝工具使用方法 工具支持通過 help 參數查看支持的語法 Usage: taosinspect [OPTIONS]Check…