1. 程式人生 > >機器學習(十七)——決策樹, 推薦系統進階

機器學習(十七)——決策樹, 推薦系統進階

PLSA

Probabilistic Latent Semantic Analysis是Thomas Hofmann於1999年在UCB讀博期間提出的演算法。

原文:

示意圖:

這裡寫圖片描述

PLSA將生成文件的過程,分為兩個步驟:

1.生成文件的主題。(doc->topic)

2.根據主題生成相關的詞.(topic->word)

第m篇文件dm中的每個詞的生成概率為:

p(w|dm)=z=1Kp(w|z)p(z|dm)=z=1Kφzwθmz

LDA

利用貝葉斯學派的觀點改造PLSA,可得:

這裡寫圖片描述

LDA生成模型包含兩個過程:

1.生成第m篇文件中的所有詞對應的topics。

αDirichletθmMultinomialzm

2.K個由topics生成words的獨立過程。

βDirichletφkMultinomialw(k)

因此,總共就是M+K個Dirichlet-Multinomial共軛結構。

LDA的Gibbs Sampling圖示:

這裡寫圖片描述

LDA模型的目標有兩個:

訓練模型:估計模型中的引數:φ1,,φKθ1,,θM

由於引數θm是和訓練語料中的每篇文件相關的,對於我們理解新的文件並無用處,所以工程上最終儲存LDA模型時,一般沒有必要保留。

使用模型

:對於新來的一篇文件docnew,我們能夠計算這篇文件的topic分佈θnew

從最終給出的演算法可以看出,雖然LDA用到了MCMC和Gibbs Sampling演算法,但最終目的並不是生成符合相應分佈的隨機數,而是求出模型引數φ的值,並用於預測。

參考

《Parameter estimation for text analysis》,Gregor Heinrich著

《Information Theory, Inference, and Learning Algorithms》,David J.C. MacKay著

關於MCMC和Gibbs Sampling的更多的內容,可參考《Neural Networks and Learning Machines》,Simon Haykin著。該書有中文版。

注:Sir David John Cameron MacKay,1967~2016,加州理工學院博士,導師John Hopfield,劍橋大學教授。英國能源與氣候變化部首席科學顧問,英國皇家學會會員。在機器學習領域和可持續能源領域有重大貢獻。

Simon Haykin,英國伯明翰大學博士,加拿大McMaster University教授。初為雷達和訊號處理專家,80年代中後期,轉而從事神經計算方面的工作。加拿大皇家學會會員。

決策樹

Decision Tree講的最好的,首推周志華的《機器學習》。這裡只對要點進行備忘。

當前樣本集合D中,第k類樣本所佔的比例為pk(k=1,2,,|y|),則D的資訊熵(information entropy)定義為:

Ent(D)=k=1|y|pklog2pk

假定離散屬性a有V個可能的取值,若使用a對D進行劃分,則第v個分支結點包含了D中所有在a上取值av的樣本,記為Dv。則資訊增益(information gain)為:

Gain(D,a)=Ent(D)v=1V|Dv||D|Ent(Dv)

增益率(gain ratio):

Gain_ratio(D,a)=Gain(D,a)IV(a)

其中

IV(a)=v=1V|

相關推薦

機器學習——決策, 推薦系統

PLSA Probabilistic Latent Semantic Analysis是Thomas Hofmann於1999年在UCB讀博期間提出的演算法。 原文: 示意圖: PLSA將生成文件的過程,分為兩個步驟: 1.生成文件的主題。(d

機器學習與深度學習系列連載: 第一部分 機器學習決策2Decision Tree

決策樹2 決策樹很容易出現過擬合問題,針對過擬合問題,我們採用以下幾種方法 劃分選擇 vs 剪枝 剪枝 (pruning) 是決策樹對付“過擬合”的 主要手段! 基本策略: 預剪枝 (pre-pruning): 提前終止某些分支的生長 後剪枝 (post-pr

機器學習 kaggle競賽之泰坦尼克號專案實戰-2

導航        想寫這篇部落格的由衷是做完幾個專案,有時對於圖的畫法和模型融合演算法原理理解還很膚淺,特此加深一下印象。 內容概覽 圖 pandas、matplotlib、seaborn 餅圖 直方圖

機器學習與深度學習系列連載: 第一部分 機器學習非監督度學習-2 Unsupervised Learning-4Generative Models

生成模型 Generative Models 用非監督學習生成結構化資料,是非監督模型的一個重要分支,本節重點介紹三個演算法: Pixel RNN ,VAE 和GAN(以後會重點講解原理) 1. Pixel RNN RNN目前還沒有介紹,,以後會重點講解,大家

機器學習之python學習

今天來學習python中的tuple、 這個資料結果用的還是比較少的。 當然了,你們也可以參考廖雪峰大神的python教學快速入門。 程式碼塊 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : SundayC

嵌入式核心及驅動開發之學習筆記 裝置的定義規則和獲取方法

概述 在Linux 2.6中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥著大量的垃圾程式碼,相當多數的程式碼只是在描述板級細節,而這些板級細節對於核心來講,不過是垃圾,如板上的platform裝置、resource、i2c_board_info、sp

python學習 擴展python

生成 實現 語言 擴展 運行速度 ava python學習 簡單 用c語言實現 c, c++, java比python快幾個數量級。 17.1 考慮哪個更重要 開發速度還是運行速度更重要。 17.2 非常簡單的途徑:Jython和IronPython Jython可以直接訪

C++語言學習——模板

china typename itl while ptr 特殊 實例化 需求 所有 C++語言學習(十七)——模板 一、模板簡介 泛型(Generic Programming)即是指具有在多種數據類型上皆可操作的含意。 泛型編程的代表作品STL是一種高效、泛型、可交互操作的

吳恩達機器學習機器學習流水線、上限分析

目錄 0. 前言 1. 流水線 2. 上限分析(Ceiling analysis) 學習完吳恩達老師機器學習課程的照片OCR,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 如果這篇文章對你有一點小小的幫助,請給個關注

JMeter學習JMeter測試Java 目的:對Java程式進行測試

目的:對Java程式進行測試   目錄 一、核心步驟 二、例項 三、JMeter Java Sampler介紹 四、自帶Java Request Sampler   一、核心步驟 1.建立一個Java工程; 2.將JMeter的lib目錄下

機器學習 電商O2O優惠券使用預測-2

介紹        這篇文章是想繼續總結一遍優惠券預測,寫寫感受並進行一個記錄總結,零零散散以作為記錄整理之用。 本篇是選了三點本人覺得專案中重要的寫了一下,其它內容暫時略過 第一部分:資料清洗資料分析程式碼

機器學習 關聯分析之Apriori演算法

前言        目前隨著資料量迅速增多,從海量資料中尋找有價值的資訊帶來的成本也在不斷增加,傳統的搜尋資料方式已經不能滿足我們的需要,我們先來通過一個演算法看一下演算法時間複雜度快慢帶來的影響,通過計算耗時我們會有個感性

機器學習 輕鬆理解模型評價指標

篇首語        相信大家都知道下面的圖片是啥意思,每個無論在啥公司、無論哪個行業都有自己的KPI評價指標,公司會根據公司情況設定公司戰略KPI、部門KPI、以及每個人的指標,對於員工也是比較關心自己的KPI因為關係著你

機器學習 讓你輕鬆理解K-means 聚類演算法

前言        你還記得菜市場賣菜的嗎?書店賣書的或者是平時去超市買東西時的物品,它們是不是都根據相似性擺放在一起了呢,飲料、啤酒、零食分佈在各自區域,像這樣各級事物的相似特點或特性組織在一起的方法,在機器學習裡面即成為

機器學習 SVM-支援向量機

春夜喜雨 好雨知時節,當春乃發生。 隨風潛入夜,潤物細無聲。 野徑雲俱黑,江船火獨明。 曉看紅溼處,花重錦官城。 前言         週末很多城市下開了雨,下雨中也不乏忙忙碌碌的人們,有的天不亮已經忙碌匆

python學習——補充內建函式、使用迭代器協議實現斐波那契數列、描述符、pycharm的問題

一、補充內建函式 #--------------------------isinstance/isinbclass-------------- class Foo: pass class Bar(Foo): pass b1=Bar() print(isinstance(b1,

深度學習

1、在殘差網路中利用1*1進行降維,即設計一個瓶頸層來使得網路更深可能不是一個好主意,網路的通道更多即網路更寬一些在實驗中可能更能利用GPU的運算資源。 2、一個訓練的技巧,當使用較小的學習率時使用較大的動量,使用較大的學習率時使用較小的動量,兩者的關係如圖所示: 3、如果損失函式的表

opencv學習:影象金子塔

邊緣檢測運算元 參考學習連結:https://blog.csdn.net/xiaowei_cqu/article/details/7829481 影象金子塔 參考學習連結:https://www.cnblogs.com/Matrix420/p/4214123.html open

webpack學習:使用 process.env.NODE_ENV 區別生產模式和開發模式

demo地址: https://github.com/Lkkkkkkg/webpack-demo 繼上一次分離生產模式和開發模式的配置: https://blog.csdn.net/qq593249106/article/details/84964816 合併程式碼 之前因為開發模式

webpack學習:快取

demo地址: https://github.com/Lkkkkkkg/webpack-demo 繼上一次使用 process.env.NODE_ENV 區別生產模式和開發模式: https://blog.csdn.net/qq593249106/article/details/849705