日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入理解LightGBM

發布時間:2023/12/14 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解LightGBM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 我的個人微信公眾號: Microstrong
  • 微信公眾號ID: MicrostrongAI
  • 微信公眾號介紹: Microstrong(小強)同學主要研究機器學習、深度學習、計算機視覺、智能對話系統相關內容,分享在學習過程中的讀書筆記!期待您的關注,歡迎一起學習交流進步!
  • 我的知乎主頁: https://www.zhihu.com/people/MicrostrongAI/activities
  • Github: https://github.com/Microstrong0305
  • 個人博客: https://blog.csdn.net/program_developer
  • 本文首發在我的微信公眾號里,地址:https://mp.weixin.qq.com/s/zejkifZnYXAfgTRrkMaEww,如有公式和圖片不清楚,可以在我的微信公眾號里閱讀。

本文主要內容概覽:

1. LightGBM簡介

GBDT (Gradient Boosting Decision Tree) 是機器學習中一個長盛不衰的模型,其主要思想是利用弱分類器(決策樹)迭代訓練以得到最優模型,該模型具有訓練效果好、不易過擬合等優點。GBDT不僅在工業界應用廣泛,通常被用于多分類、點擊率預測、搜索排序等任務;在各種數據挖掘競賽中也是致命武器,據統計Kaggle上的比賽有一半以上的冠軍方案都是基于GBDT。而LightGBM(Light Gradient Boosting Machine)是一個實現GBDT算法的框架,支持高效率的并行訓練,并且具有更快的訓練速度、更低的內存消耗、更好的準確率、支持分布式可以快速處理海量數據等優點。

1.1 LightGBM提出的動機

常用的機器學習算法,例如神經網絡等算法,都可以以mini-batch的方式訓練,訓練數據的大小不會受到內存限制。而GBDT在每一次迭代的時候,都需要遍歷整個訓練數據多次。如果把整個訓練數據裝進內存則會限制訓練數據的大小;如果不裝進內存,反復地讀寫訓練數據又會消耗非常大的時間。尤其面對工業級海量的數據,普通的GBDT算法是不能滿足其需求的。

LightGBM提出的主要原因就是為了解決GBDT在海量數據遇到的問題,讓GBDT可以更好更快地用于工業實踐。

1.2 XGBoost的缺點及LightGBM的優化

(1)XGBoost的缺點

在LightGBM提出之前,最有名的GBDT工具就是XGBoost了,它是基于預排序方法的決策樹算法。這種構建決策樹的算法基本思想是:首先,對所有特征都按照特征的數值進行預排序。其次,在遍歷分割點的時候用O(#data)O(\#data)O(#data)的代價找到一個特征上的最好分割點。最后,在找到一個特征的最好分割點后,將數據分裂成左右子節點。

這樣的預排序算法的優點是能精確地找到分割點。但是缺點也很明顯:首先,空間消耗大。這樣的算法需要保存數據的特征值,還保存了特征排序的結果(例如,為了后續快速的計算分割點,保存了排序后的索引),這就需要消耗訓練數據兩倍的內存。其次,時間上也有較大的開銷,在遍歷每一個分割點的時候,都需要進行分裂增益的計算,消耗的代價大。最后,對cache優化不友好。在預排序后,特征對梯度的訪問是一種隨機訪問,并且不同的特征訪問的順序不一樣,無法對cache進行優化。同時,在每一層長樹的時候,需要隨機訪問一個行索引到葉子索引的數組,并且不同特征訪問的順序也不一樣,也會造成較大的cache miss。

(2)LightGBM的優化

為了避免上述XGBoost的缺陷,并且能夠在不損害準確率的條件下加快GBDT模型的訓練速度,lightGBM在傳統的GBDT算法上進行了如下優化:

  • 基于Histogram的決策樹算法。
  • 單邊梯度采樣 Gradient-based One-Side Sampling(GOSS):使用GOSS可以減少大量只具有小梯度的數據實例,這樣在計算信息增益的時候只利用剩下的具有高梯度的數據就可以了,相比XGBoost遍歷所有特征值節省了不少時間和空間上的開銷。
  • 互斥特征捆綁 Exclusive Feature Bundling(EFB):使用EFB可以將許多互斥的特征綁定為一個特征,這樣達到了降維的目的。
  • 帶深度限制的Leaf-wise的葉子生長策略:大多數GBDT工具使用低效的按層生長 (level-wise) 的決策樹生長策略,因為它不加區分的對待同一層的葉子,帶來了很多沒必要的開銷。實際上很多葉子的分裂增益較低,沒必要進行搜索和分裂。LightGBM使用了帶有深度限制的按葉子生長 (leaf-wise) 算法。
  • 直接支持類別特征(Categorical Feature)
  • 支持高效并行
  • Cache命中率優化

下面我們就詳細介紹以上提到的lightGBM優化算法。

2. LightGBM的基本原理

2.1 基于Histogram的決策樹算法

(1)直方圖算法

Histogram algorithm應該翻譯為直方圖算法,直方圖算法的基本思想是:先把連續的浮點特征值離散化成 kkk 個整數,同時構造一個寬度為 kkk 的直方圖。在遍歷數據的時候,根據離散化后的值作為索引在直方圖中累積統計量,當遍歷一次數據后,直方圖累積了需要的統計量,然后根據直方圖的離散值,遍歷尋找最優的分割點。

圖:直方圖算法

直方圖算法簡單理解為:首先確定對于每一個特征需要多少個箱子(bin)并為每一個箱子分配一個整數;然后將浮點數的范圍均分成若干區間,區間個數與箱子個數相等,將屬于該箱子的樣本數據更新為箱子的值;最后用直方圖(#bins)表示。看起來很高大上,其實就是直方圖統計,將大規模的數據放在了直方圖中。

我們知道特征離散化具有很多優點,如存儲方便、運算更快、魯棒性強、模型更加穩定等。對于直方圖算法來說最直接的有以下兩個優點:

  • 內存占用更小: 直方圖算法不僅不需要額外存儲預排序的結果,而且可以只保存特征離散化后的值,而這個值一般用 888 位整型存儲就足夠了,內存消耗可以降低為原來的 18\frac{1}{8}81? 。也就是說XGBoost需要用 323232 位的浮點數去存儲特征值,并用 323232 位的整形去存儲索引,而 LightGBM只需要用 888 位去存儲直方圖,內存相當于減少為 18\frac{1}{8}81?

    圖:內存占用優化為預排序算法的1/8

  • 計算代價更小: 預排序算法XGBoost每遍歷一個特征值就需要計算一次分裂的增益,而直方圖算法LightGBM只需要計算 kkk 次( kkk 可以認為是常數),直接將時間復雜度從 O(#data?#feature)O(\#data * \#feature)O(#data?#feature) 降低到 O(k?#feature)O(k * \#feature)O(k?#feature) ,而我們知道#data>>k\#data >> k#data>>k

當然,Histogram算法并不是完美的。由于特征被離散化后,找到的并不是很精確的分割點,所以會對結果產生影響。但在不同的數據集上的結果表明,離散化的分割點對最終的精度影響并不是很大,甚至有時候會更好一點。原因是決策樹本來就是弱模型,分割點是不是精確并不是太重要;較粗的分割點也有正則化的效果,可以有效地防止過擬合;即使單棵樹的訓練誤差比精確分割的算法稍大,但在梯度提升(Gradient Boosting)的框架下沒有太大的影響。

(2)直方圖做差加速

LightGBM另一個優化是Histogram(直方圖)做差加速。一個葉子的直方圖可以由它的父親節點的直方圖與它兄弟的直方圖做差得到,在速度上可以提升一倍。通常構造直方圖時,需要遍歷該葉子上的所有數據,但直方圖做差僅需遍歷直方圖的k個桶。在實際構建樹的過程中,LightGBM還可以先計算直方圖小的葉子節點,然后利用直方圖做差來獲得直方圖大的葉子節點,這樣就可以用非常微小的代價得到它兄弟葉子的直方圖。

圖:直方圖做差

注意: XGBoost 在進行預排序時只考慮非零值進行加速,而 LightGBM 也采用類似策略:只用非零特征構建直方圖。

2.2 帶深度限制的 Leaf-wise 算法

在Histogram算法之上,LightGBM進行進一步的優化。首先它拋棄了大多數GBDT工具使用的按層生長 (level-wise) 的決策樹生長策略,而使用了帶有深度限制的按葉子生長 (leaf-wise) 算法。

XGBoost 采用 Level-wise 的增長策略,該策略遍歷一次數據可以同時分裂同一層的葉子,容易進行多線程優化,也好控制模型復雜度,不容易過擬合。但實際上Level-wise是一種低效的算法,因為它不加區分的對待同一層的葉子,實際上很多葉子的分裂增益較低,沒必要進行搜索和分裂,因此帶來了很多沒必要的計算開銷。

圖:按層生長的決策樹

LightGBM采用Leaf-wise的增長策略,該策略每次從當前所有葉子中,找到分裂增益最大的一個葉子,然后分裂,如此循環。因此同Level-wise相比,Leaf-wise的優點是:在分裂次數相同的情況下,Leaf-wise可以降低更多的誤差,得到更好的精度;Leaf-wise的缺點是:可能會長出比較深的決策樹,產生過擬合。因此LightGBM會在Leaf-wise之上增加了一個最大深度的限制,在保證高效率的同時防止過擬合。

圖:按葉子生長的決策樹

2.3 單邊梯度采樣算法

Gradient-based One-Side Sampling 應該被翻譯為單邊梯度采樣(GOSS)。GOSS算法從減少樣本的角度出發,排除大部分小梯度的樣本,僅用剩下的樣本計算信息增益,它是一種在減少數據量和保證精度上平衡的算法。

AdaBoost中,樣本權重是數據重要性的指標。然而在GBDT中沒有原始樣本權重,不能應用權重采樣。幸運的是,我們觀察到GBDT中每個數據都有不同的梯度值,對采樣十分有用。即梯度小的樣本,訓練誤差也比較小,說明數據已經被模型學習得很好了,直接想法就是丟掉這部分梯度小的數據。然而這樣做會改變數據的分布,將會影響訓練模型的精確度,為了避免此問題,提出了GOSS算法。

GOSS是一個樣本的采樣算法,目的是丟棄一些對計算信息增益沒有幫助的樣本留下有幫助的。根據計算信息增益的定義,梯度大的樣本對信息增益有更大的影響。因此,GOSS在進行數據采樣的時候只保留了梯度較大的數據,但是如果直接將所有梯度較小的數據都丟棄掉勢必會影響數據的總體分布。所以,GOSS首先將要進行分裂的特征的所有取值按照絕對值大小降序排序(XGBoost一樣也進行了排序,但是LightGBM不用保存排序后的結果),選取絕對值最大的 a?100%a*100\%a?100% 個數據。然后在剩下的較小梯度數據中隨機選擇 b?100%b*100 \%b?100% 個數據。接著將這 b?100%b*100\%b?100% 個數據乘以一個常數1?ab\frac{1-a}{b}b1?a? ,這樣算法就會更關注訓練不足的樣本,而不會過多改變原數據集的分布。最后使用這 (a+b)?100%(a+b)*100\%(a+b)?100% 個數據來計算信息增益。下圖是GOSS的具體算法。

圖:單邊梯度采樣算法

2.4 互斥特征捆綁算法

高維度的數據往往是稀疏的,這種稀疏性啟發我們設計一種無損的方法來減少特征的維度。通常被捆綁的特征都是互斥的(即特征不會同時為非零值,像one-hot),這樣兩個特征捆綁起來才不會丟失信息。如果兩個特征并不是完全互斥(部分情況下兩個特征都是非零值),可以用一個指標對特征不互斥程度進行衡量,稱之為沖突比率,當這個值較小時,我們可以選擇把不完全互斥的兩個特征捆綁,而不影響最后的精度。互斥特征捆綁算法(Exclusive Feature Bundling, EFB)指出如果將一些特征進行融合綁定,則可以降低特征數量。這樣在構建直方圖時的時間復雜度從 O(#data?#feature)O(\#data * \#feature)O(#data?#feature) 變為 O(#data?#bundle)O(\#data * \#bundle)O(#data?#bundle) ,這里 #bundle\#bundle#bundle 指特征融合綁定后特征包的個數,且 #bundle\#bundle#bundle 遠小于 #feature\#feature#feature

針對這種想法,我們會遇到兩個問題:

  • 怎么判定哪些特征應該綁在一起(build bundled)?
  • 怎么把特征綁為一個(merge feature)?

(1)解決哪些特征應該綁在一起

將相互獨立的特征進行綁定是一個 NP-Hard 問題,LightGBM的EFB算法將這個問題轉化為圖著色的問題來求解,將所有的特征視為圖的各個頂點,將不是相互獨立的特征用一條邊連接起來,邊的權重就是兩個相連接的特征的總沖突值,這樣需要綁定的特征就是在圖著色問題中要涂上同一種顏色的那些點(特征)。此外,我們注意到通常有很多特征,盡管不是100%100%100相互排斥,但也很少同時取非零值。 如果我們的算法可以允許一小部分的沖突,我們可以得到更少的特征包,進一步提高計算效率。經過簡單的計算,隨機污染小部分特征值將影響精度最多 O([(1?γ)n]?2/3)O([(1-\gamma)n]^{-2/3})O([(1?γ)n]?2/3)γ\gammaγ 是每個綁定中的最大沖突比率,當其相對較小時,能夠完成精度和效率之間的平衡。具體步驟可以總結如下:

  • 構造一個加權無向圖,頂點是特征,邊有權重,其權重與兩個特征間沖突相關;
  • 根據節點的度進行降序排序,度越大,與其它特征的沖突越大;
  • 遍歷每個特征,將它分配給現有特征包,或者新建一個特征包,使得總體沖突最小。
  • 算法允許兩兩特征并不完全互斥來增加特征捆綁的數量,通過設置最大沖突比率 γ\gammaγ 來平衡算法的精度和效率。EFB 算法的偽代碼如下所示:

    圖:貪心綁定算法

    算法3的時間復雜度是 O(#feature2)O(\#feature^2)O(#feature2) ,訓練之前只處理一次,其時間復雜度在特征不是特別多的情況下是可以接受的,但難以應對百萬維度的特征。為了繼續提高效率,LightGBM提出了一種更加高效的無圖的排序策略:將特征按照非零值個數排序,這和使用圖節點的度排序相似,因為更多的非零值通常會導致沖突,新算法在算法3基礎上改變了排序策略。

    (2)解決怎么把特征綁為一捆

    特征合并算法,其關鍵在于原始特征能從合并的特征中分離出來。綁定幾個特征在同一個bundle里需要保證綁定前的原始特征的值可以在bundle中識別,考慮到histogram-based算法將連續的值保存為離散的bins,我們可以使得不同特征的值分到bundle中的不同bin(箱子)中,這可以通過在特征值中加一個偏置常量來解決。比如,我們在bundle中綁定了兩個特征A和B,A特征的原始取值為區間 [0,10)[0,10)[0,10) ,B特征的原始取值為區間[0,20)[0,20)[0,20),我們可以在B特征的取值上加一個偏置常量101010,將其取值范圍變為[10,30)[10,30)[10,30),綁定后的特征取值范圍為 [0,30)[0, 30)[0,30),這樣就可以放心的融合特征A和B了。具體的特征合并算法如下所示:

    圖:特征合并算法

    3. LightGBM的工程優化

    我們將論文《Lightgbm: A highly efficient gradient boosting decision tree》中沒有提到的優化方案,而在其相關論文《A communication-efficient parallel algorithm for decision tree》中提到的優化方案,放到本節作為LightGBM的工程優化來向大家介紹。

    3.1 直接支持類別特征

    實際上大多數機器學習工具都無法直接支持類別特征,一般需要把類別特征,通過 one-hot 編碼,轉化到多維的0/10/10/1特征,降低了空間和時間的效率。但我們知道對于決策樹來說并不推薦使用 one-hot 編碼,尤其當類別特征中類別個數很多的情況下,會存在以下問題:

    • 會產生樣本切分不平衡問題,導致切分增益非常小(即浪費了這個特征)。使用 one-hot編碼,意味著在每一個決策節點上只能使用one vs rest(例如是不是狗,是不是貓等)的切分方式。例如,動物類別切分后,會產生是否狗,是否貓等一系列特征,這一系列特征上只有少量樣本為 111,大量樣本為 000,這時候切分樣本會產生不平衡,這意味著切分增益也會很小。較小的那個切分樣本集,它占總樣本的比例太小,無論增益多大,乘以該比例之后幾乎可以忽略;較大的那個拆分樣本集,它幾乎就是原始的樣本集,增益幾乎為零。比較直觀的理解就是不平衡的切分和不切分沒有區別。

    • 會影響決策樹的學習。因為就算可以對這個類別特征進行切分,獨熱編碼也會把數據切分到很多零散的小空間上,如下圖左邊所示。而決策樹學習時利用的是統計信息,在這些數據量小的空間上,統計信息不準確,學習效果會變差。但如果使用下圖右邊的切分方法,數據會被切分到兩個比較大的空間,進一步的學習也會更好。下圖右邊葉子節點的含義是X=AX=AX=A或者X=CX=CX=C放到左孩子,其余放到右孩子。

      圖:左圖為基于 one-hot 編碼進行分裂,右圖為 LightGBM 基于 many-vs-many 進行分裂

    而類別特征的使用在實踐中是很常見的。且為了解決one-hot編碼處理類別特征的不足,LightGBM優化了對類別特征的支持,可以直接輸入類別特征,不需要額外的0/10/10/1展開。LightGBM采用 many-vs-many 的切分方式將類別特征分為兩個子集,實現類別特征的最優切分。假設某維特征有 kkk 個類別,則有 2(k?1)?12^{(k-1)} - 12(k?1)?1 種可能,時間復雜度為 O(2k)O(2^k)O(2k) ,LightGBM 基于 Fisher的《On Grouping For Maximum Homogeneity》論文實現了 O(klogk)O(klogk)O(klogk) 的時間復雜度。

    算法流程如下圖所示,在枚舉分割點之前,先把直方圖按照每個類別對應的label均值進行排序;然后按照排序的結果依次枚舉最優分割點。從下圖可以看到, Sum(y)Count(y)\frac{Sum(y)}{Count(y)}Count(y)Sum(y)? 為類別的均值。當然,這個方法很容易過擬合,所以LightGBM里面還增加了很多對于這個方法的約束和正則化。

    圖:LightGBM求解類別特征的最優切分算法

    在Expo數據集上的實驗結果表明,相比0/10/10/1展開的方法,使用LightGBM支持的類別特征可以使訓練速度加速888倍,并且精度一致。更重要的是,LightGBM是第一個直接支持類別特征的GBDT工具。

    3.2 支持高效并行

    (1)特征并行

    特征并行的主要思想是不同機器在不同的特征集合上分別尋找最優的分割點,然后在機器間同步最優的分割點。XGBoost使用的就是這種特征并行方法。這種特征并行方法有個很大的缺點:就是對數據進行垂直劃分,每臺機器所含數據不同,然后使用不同機器找到不同特征的最優分裂點,劃分結果需要通過通信告知每臺機器,增加了額外的復雜度。

    LightGBM 則不進行數據垂直劃分,而是在每臺機器上保存全部訓練數據,在得到最佳劃分方案后可在本地執行劃分而減少了不必要的通信。具體過程如下圖所示。

    圖:特征并行

    (2)數據并行

    傳統的數據并行策略主要為水平劃分數據,讓不同的機器先在本地構造直方圖,然后進行全局的合并,最后在合并的直方圖上面尋找最優分割點。這種數據劃分有一個很大的缺點:通訊開銷過大。如果使用點對點通信,一臺機器的通訊開銷大約為 O(#machine?#feature?#bin)O(\#machine * \#feature *\#bin )O(#machine?#feature?#bin) ;如果使用集成的通信,則通訊開銷為 O(2?#feature?#bin)O(2 * \#feature *\#bin )O(2?#feature?#bin)

    LightGBM在數據并行中使用分散規約 (Reduce scatter) 把直方圖合并的任務分攤到不同的機器,降低通信和計算,并利用直方圖做差,進一步減少了一半的通信量。具體過程如下圖所示。

    圖:數據并行

    (3)投票并行

    基于投票的數據并行則進一步優化數據并行中的通信代價,使通信代價變成常數級別。在數據量很大的時候,使用投票并行的方式只合并部分特征的直方圖從而達到降低通信量的目的,可以得到非常好的加速效果。具體過程如下圖所示。

    大致步驟為兩步:

  • 本地找出 Top K 特征,并基于投票篩選出可能是最優分割點的特征;
  • 合并時只合并每個機器選出來的特征。

    圖:投票并行
  • 3.3 Cache命中率優化

    XGBoost對cache優化不友好,如下圖所示。在預排序后,特征對梯度的訪問是一種隨機訪問,并且不同的特征訪問的順序不一樣,無法對cache進行優化。同時,在每一層長樹的時候,需要隨機訪問一個行索引到葉子索引的數組,并且不同特征訪問的順序也不一樣,也會造成較大的cache miss。為了解決緩存命中率低的問題,XGBoost 提出了緩存訪問算法進行改進。

    圖:隨機訪問會造成cache miss

    而 LightGBM 所使用直方圖算法對 Cache 天生友好:

    • 首先,所有的特征都采用相同的方式獲得梯度(區別于XGBoost的不同特征通過不同的索引獲得梯度),只需要對梯度進行排序并可實現連續訪問,大大提高了緩存命中率;
    • 其次,因為不需要存儲行索引到葉子索引的數組,降低了存儲消耗,而且也不存在 Cache Miss的問題。

      圖:LightGBM增加緩存命中率

    4. LightGBM的優缺點

    4.1 優點

    這部分主要總結下 LightGBM 相對于 XGBoost 的優點,從內存和速度兩方面進行介紹。

    (1)速度更快

    • LightGBM 采用了直方圖算法將遍歷樣本轉變為遍歷直方圖,極大的降低了時間復雜度;
    • LightGBM 在訓練過程中采用單邊梯度算法過濾掉梯度小的樣本,減少了大量的計算;
    • LightGBM 采用了基于 Leaf-wise 算法的增長策略構建樹,減少了很多不必要的計算量;
    • LightGBM 采用優化后的特征并行、數據并行方法加速計算,當數據量非常大的時候還可以采用投票并行的策略;
    • LightGBM 對緩存也進行了優化,增加了緩存命中率;

    (2)內存更小

    • XGBoost使用預排序后需要記錄特征值及其對應樣本的統計值的索引,而 LightGBM 使用了直方圖算法將特征值轉變為 bin 值,且不需要記錄特征到樣本的索引,將空間復雜度從 O(2?#data)O(2*\#data)O(2?#data) 降低為 O(#bin)O(\#bin)O(#bin) ,極大的減少了內存消耗;
    • LightGBM 采用了直方圖算法將存儲特征值轉變為存儲 bin 值,降低了內存消耗;
    • LightGBM 在訓練過程中采用互斥特征捆綁算法減少了特征數量,降低了內存消耗。

    4.2 缺點

    • 可能會長出比較深的決策樹,產生過擬合。因此LightGBM在Leaf-wise之上增加了一個最大深度限制,在保證高效率的同時防止過擬合;
    • Boosting族是迭代算法,每一次迭代都根據上一次迭代的預測結果對樣本進行權重調整,所以隨著迭代不斷進行,誤差會越來越小,模型的偏差(bias)會不斷降低。由于LightGBM是基于偏差的算法,所以會對噪點較為敏感;
    • 在尋找最優解時,依據的是最優切分變量,沒有將最優解是全部特征的綜合這一理念考慮進去;

    5. LightGBM實例

    本篇文章所有數據集和代碼均在我的GitHub中,地址:https://github.com/Microstrong0305/WeChat-zhihu-csdnblog-code/tree/master/Ensemble%20Learning/LightGBM

    5.1 安裝LightGBM依賴包

    pip install lightgbm

    5.2 LightGBM分類和回歸

    LightGBM有兩大類接口:LightGBM原生接口 和 scikit-learn接口 ,并且LightGBM能夠實現分類和回歸兩種任務。

    (1)基于LightGBM原生接口的分類

    import lightgbm as lgb from sklearn import datasets from sklearn.model_selection import train_test_split import numpy as np from sklearn.metrics import roc_auc_score, accuracy_score# 加載數據 iris = datasets.load_iris()# 劃分訓練集和測試集 X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3)# 轉換為Dataset數據格式 train_data = lgb.Dataset(X_train, label=y_train) validation_data = lgb.Dataset(X_test, label=y_test)# 參數 params = {'learning_rate': 0.1,'lambda_l1': 0.1,'lambda_l2': 0.2,'max_depth': 4,'objective': 'multiclass', # 目標函數'num_class': 3, }# 模型訓練 gbm = lgb.train(params, train_data, valid_sets=[validation_data])# 模型預測 y_pred = gbm.predict(X_test) y_pred = [list(x).index(max(x)) for x in y_pred] print(y_pred)# 模型評估 print(accuracy_score(y_test, y_pred))

    (2)基于Scikit-learn接口的分類

    from lightgbm import LGBMClassifier from sklearn.metrics import accuracy_score from sklearn.model_selection import GridSearchCV from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.externals import joblib# 加載數據 iris = load_iris() data = iris.data target = iris.target# 劃分訓練數據和測試數據 X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.2)# 模型訓練 gbm = LGBMClassifier(num_leaves=31, learning_rate=0.05, n_estimators=20) gbm.fit(X_train, y_train, eval_set=[(X_test, y_test)], early_stopping_rounds=5)# 模型存儲 joblib.dump(gbm, 'loan_model.pkl') # 模型加載 gbm = joblib.load('loan_model.pkl')# 模型預測 y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration_)# 模型評估 print('The accuracy of prediction is:', accuracy_score(y_test, y_pred))# 特征重要度 print('Feature importances:', list(gbm.feature_importances_))# 網格搜索,參數優化 estimator = LGBMClassifier(num_leaves=31) param_grid = {'learning_rate': [0.01, 0.1, 1],'n_estimators': [20, 40] } gbm = GridSearchCV(estimator, param_grid) gbm.fit(X_train, y_train) print('Best parameters found by grid search are:', gbm.best_params_)

    (3)基于LightGBM原生接口的回歸

    對于LightGBM解決回歸問題,我們用Kaggle比賽中回歸問題:House Prices: Advanced Regression Techniques,地址:https://www.kaggle.com/c/house-prices-advanced-regression-techniques 來進行實例講解。

    該房價預測的訓練數據集中一共有818181列,第一列是Id,最后一列是label,中間797979列是特征。這797979列特征中,有434343列是分類型變量,333333列是整數變量,333列是浮點型變量。訓練數據集中存在缺失值。

    import pandas as pd from sklearn.model_selection import train_test_split import lightgbm as lgb from sklearn.metrics import mean_absolute_error from sklearn.preprocessing import Imputer# 1.讀文件 data = pd.read_csv('./dataset/train.csv')# 2.切分數據輸入:特征 輸出:預測目標變量 y = data.SalePrice X = data.drop(['SalePrice'], axis=1).select_dtypes(exclude=['object'])# 3.切分訓練集、測試集,切分比例7.5 : 2.5 train_X, test_X, train_y, test_y = train_test_split(X.values, y.values, test_size=0.25)# 4.空值處理,默認方法:使用特征列的平均值進行填充 my_imputer = Imputer() train_X = my_imputer.fit_transform(train_X) test_X = my_imputer.transform(test_X)# 5.轉換為Dataset數據格式 lgb_train = lgb.Dataset(train_X, train_y) lgb_eval = lgb.Dataset(test_X, test_y, reference=lgb_train)# 6.參數 params = {'task': 'train','boosting_type': 'gbdt', # 設置提升類型'objective': 'regression', # 目標函數'metric': {'l2', 'auc'}, # 評估函數'num_leaves': 31, # 葉子節點數'learning_rate': 0.05, # 學習速率'feature_fraction': 0.9, # 建樹的特征選擇比例'bagging_fraction': 0.8, # 建樹的樣本采樣比例'bagging_freq': 5, # k 意味著每 k 次迭代執行bagging'verbose': 1 # <0 顯示致命的, =0 顯示錯誤 (警告), >0 顯示信息 }# 7.調用LightGBM模型,使用訓練集數據進行訓練(擬合) # Add verbosity=2 to print messages while running boosting my_model = lgb.train(params, lgb_train, num_boost_round=20, valid_sets=lgb_eval, early_stopping_rounds=5)# 8.使用模型對測試集數據進行預測 predictions = my_model.predict(test_X, num_iteration=my_model.best_iteration)# 9.對模型的預測結果進行評判(平均絕對誤差) print("Mean Absolute Error : " + str(mean_absolute_error(predictions, test_y)))

    (4)基于Scikit-learn接口的回歸

    import pandas as pd from sklearn.model_selection import train_test_split import lightgbm as lgb from sklearn.metrics import mean_absolute_error from sklearn.preprocessing import Imputer# 1.讀文件 data = pd.read_csv('./dataset/train.csv')# 2.切分數據輸入:特征 輸出:預測目標變量 y = data.SalePrice X = data.drop(['SalePrice'], axis=1).select_dtypes(exclude=['object'])# 3.切分訓練集、測試集,切分比例7.5 : 2.5 train_X, test_X, train_y, test_y = train_test_split(X.values, y.values, test_size=0.25)# 4.空值處理,默認方法:使用特征列的平均值進行填充 my_imputer = Imputer() train_X = my_imputer.fit_transform(train_X) test_X = my_imputer.transform(test_X)# 5.調用LightGBM模型,使用訓練集數據進行訓練(擬合) # Add verbosity=2 to print messages while running boosting my_model = lgb.LGBMRegressor(objective='regression', num_leaves=31, learning_rate=0.05, n_estimators=20,verbosity=2) my_model.fit(train_X, train_y, verbose=False)# 6.使用模型對測試集數據進行預測 predictions = my_model.predict(test_X)# 7.對模型的預測結果進行評判(平均絕對誤差) print("Mean Absolute Error : " + str(mean_absolute_error(predictions, test_y)))

    5.3 LightGBM調參

    在上一部分中,LightGBM模型的參數有一部分進行了簡單的設置,但大都使用了模型的默認參數,但默認參數并不是最好的。要想讓LightGBM表現的更好,需要對LightGBM模型進行參數微調。下圖展示的是回歸模型需要調節的參數,分類模型需要調節的參數與此類似。

    圖:LightGBM回歸模型調參

    6. 關于LightGBM若干問題的思考

    6.1 LightGBM與XGBoost的聯系和區別有哪些?

    (1)LightGBM使用了基于histogram的決策樹算法,這一點不同于XGBoost中的貪心算法和近似算法,histogram算法在內存和計算代價上都有不小優勢。1)內存上優勢:很明顯,直方圖算法的內存消耗為 (#data?#features?1Bytes)(\#data* \#features * 1Bytes)(#data?#features?1Bytes) (因為對特征分桶后只需保存特征離散化之后的值),而XGBoost的貪心算法內存消耗為: (2?#data?#features?4Bytes)(2 * \#data * \#features* 4Bytes)(2?#data?#features?4Bytes) ,因為XGBoost既要保存原始feature的值,也要保存這個值的順序索引,這些值需要323232位的浮點數來保存。2)計算上的優勢:預排序算法在選擇好分裂特征計算分裂收益時需要遍歷所有樣本的特征值,時間為O(#data?#feature)O(\#data * \#feature)O(#data?#feature),而直方圖算法只需要遍歷桶就行了,時間為O(#bin?#feature)O(\#bin * \#feature)O(#bin?#feature)

    (2)XGBoost采用的是level-wise的分裂策略,而LightGBM采用了leaf-wise的策略,區別是XGBoost對每一層所有節點做無差別分裂,可能有些節點的增益非常小,對結果影響不大,但是XGBoost也進行了分裂,帶來了不必要的開銷。leaft-wise的做法是在當前所有葉子節點中選擇分裂收益最大的節點進行分裂,如此遞歸進行,很明顯leaf-wise這種做法容易過擬合,因為容易陷入比較高的深度中,因此需要對最大深度做限制,從而避免過擬合。

    (3)XGBoost在每一層都動態構建直方圖,因為XGBoost的直方圖算法不是針對某個特定的特征,而是所有特征共享一個直方圖(每個樣本的權重是二階導),所以每一層都要重新構建直方圖,而LightGBM中對每個特征都有一個直方圖,所以構建一次直方圖就夠了。

    (4)LightGBM使用直方圖做差加速,一個子節點的直方圖可以通過父節點的直方圖減去兄弟節點的直方圖得到,從而加速計算。

    (5)LightGBM支持類別特征,不需要進行獨熱編碼處理。

    (6)LightGBM優化了特征并行和數據并行算法,除此之外還添加了投票并行方案。

    (7)LightGBM采用基于梯度的單邊采樣來減少訓練樣本并保持數據分布不變,減少模型因數據分布發生變化而造成的模型精度下降。

    (8)特征捆綁轉化為圖著色問題,減少特征數量。

    7. Reference

    由于參考的文獻較多,我把每篇參考文獻按照自己的學習思路,進行了詳細的歸類和標注。

    LightGBM論文解讀:

    【1】Ke G, Meng Q, Finley T, et al. Lightgbm: A highly efficient gradient boosting decision tree[C]//Advances in Neural Information Processing Systems. 2017: 3146-3154.

    【2】Taifeng Wang分享LightGBM的視頻,地址:https://v.qq.com/x/page/k0362z6lqix.html

    【3】開源|LightGBM:三天內收獲GitHub 1000+ 星,地址:https://mp.weixin.qq.com/s/M25d_43gHkk3FyG_Jhlvog

    【4】Lightgbm源論文解析:LightGBM: A Highly Efficient Gradient Boosting Decision Tree,地址:https://blog.csdn.net/anshuai_aw1/article/details/83048709

    【5】快的不要不要的lightGBM - 王樂的文章 - 知乎 https://zhuanlan.zhihu.com/p/31986189

    【6】『 論文閱讀』LightGBM原理-LightGBM: A Highly Efficient Gradient Boosting Decision Tree,地址:https://blog.csdn.net/shine19930820/article/details/79123216

    LightGBM算法講解:

    【7】【機器學習】決策樹(下)——XGBoost、LightGBM(非常詳細) - 阿澤的文章 - 知乎 https://zhuanlan.zhihu.com/p/87885678

    【8】入門 | 從結構到性能,一文概述XGBoost、Light GBM和CatBoost的同與不同,地址:https://mp.weixin.qq.com/s/TD3RbdDidCrcL45oWpxNmw

    【9】CatBoost vs. Light GBM vs. XGBoost,地址:https://towardsdatascience.com/catboost-vs-light-gbm-vs-xgboost-5f93620723db

    【10】機器學習算法之LightGBM,地址:https://www.biaodianfu.com/lightgbm.html

    LightGBM工程優化:

    【11】Meng Q, Ke G, Wang T, et al. A communication-efficient parallel algorithm for decision tree[C]//Advances in Neural Information Processing Systems. 2016: 1279-1287.

    【12】Zhang H, Si S, Hsieh C J. GPU-acceleration for Large-scale Tree Boosting[J]. arXiv preprint arXiv:1706.08359, 2017.

    【13】LightGBM的官方GitHub代碼庫,地址:https://github.com/microsoft/LightGBM

    【14】關于sklearn中的決策樹是否應該用one-hot編碼? - 柯國霖的回答 - 知乎 https://www.zhihu.com/question/266195966/answer/306104444

    LightGBM實例:

    【15】LightGBM使用,地址:https://bacterous.github.io/2018/09/13/LightGBM%E4%BD%BF%E7%94%A8/

    【16】LightGBM兩種使用方式 ,地址:https://www.cnblogs.com/chenxiangzhen/p/10894306.html

    LightGBM若干問題的思考:

    【17】GBDT、XGBoost、LightGBM的區別和聯系,地址:https://www.jianshu.com/p/765efe2b951a

    【18】xgboost和lightgbm的區別和適用場景,地址:https://www.nowcoder.com/ta/review-ml/review?page=101

    總結

    以上是生活随笔為你收集整理的深入理解LightGBM的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产亚洲激情视频在线 | 91亚色视频在线观看 | 久久久久亚洲天堂 | 国产亚洲永久域名 | 五月婷网站 | 99久久日韩精品视频免费在线观看 | 国产美女网站在线观看 | av黄色免费网站 | 午夜av片| 日韩精品在线免费播放 | 国产精品九九九九九九 | 国产精品久久久久久妇 | 麻豆成人小视频 | 久久综合影音 | av7777777 | 在线视频免费观看 | 国产精品一区二区你懂的 | 成人一区二区三区在线 | 又粗又长又大又爽又黄少妇毛片 | 国内一级片在线观看 | av日韩国产 | 美女视频是黄的免费观看 | 国产麻豆精品久久 | 久久涩涩网站 | 国产精品一区二区免费视频 | 人人舔人人干 | 91精品国产成人www | 国产午夜精品久久久久久久久久 | 亚洲一区二区三区在线看 | 国产69精品久久久久99尤 | 美女露久久| av电影在线观看完整版一区二区 | 免费看一级特黄a大片 | 99这里只有久久精品视频 | 热久在线 | 97碰碰精品嫩模在线播放 | 色wwwww | 久久久91精品国产一区二区三区 | 在线观看黄网 | 黄色成人91 | 久久综合欧美精品亚洲一区 | 免费观看一级特黄欧美大片 | 在线黄色国产 | 国产精品成人av电影 | 久久婷婷视频 | 亚洲精品在线观看免费 | 夜添久久精品亚洲国产精品 | 精品一区二区精品 | 日韩欧美视频在线 | 国产日韩精品一区二区在线观看播放 | av在线免费播放网站 | 国产一级三级 | 高清视频一区二区三区 | 97精品国产97久久久久久 | 亚洲男男gⅴgay双龙 | 在线观看中文 | 在线观看国产 | 最新国产在线 | 国产高清在线观看 | 欧美激情xxxx性bbbb | 欧美一级欧美一级 | 奇米影视四色8888 | 91香蕉国产 | 久久成人国产精品一区二区 | 亚洲乱码中文字幕综合 | 国产精品激情在线观看 | 国产亚洲激情视频在线 | 日韩视频在线不卡 | 亚洲精品久久久久久久蜜桃 | 午夜精品成人一区二区三区 | 日日操天天爽 | 日韩欧美一区二区三区视频 | 91热| 在线观看国产永久免费视频 | 亚洲精品国精品久久99热一 | 97热视频 | 中文字幕免费高清 | 国产91免费观看 | 中文字幕亚洲精品日韩 | 亚洲黄色区 | 亚洲一区黄色 | 亚洲精品视频网 | 国产在线1区 | 91看片淫黄大片在线播放 | 伊色综合久久之综合久久 | 成人资源站 | 日韩在线视频线视频免费网站 | 久久久久久久av麻豆果冻 | 色婷婷骚婷婷 | 69国产盗摄一区二区三区五区 | 国产成人精品免高潮在线观看 | 久久午夜色播影院免费高清 | 中文字幕免费久久 | 99热 精品在线 | 天天爽夜夜爽精品视频婷婷 | 九九九在线观看视频 | 91高清完整版在线观看 | 91亚洲精品久久久蜜桃网站 | 综合色伊人 | 久久这里 | 国产精品18久久久久久不卡孕妇 | 国产精品va在线观看入 | 91人人澡 | 丁香高清视频在线看看 | 公与妇乱理三级xxx 在线观看视频在线观看 | 2017狠狠干 | 九九热精品在线 | 夜添久久精品亚洲国产精品 | 激情综合中文娱乐网 | 欧美成人性战久久 | a黄色大片| 1024手机看片国产 | 日韩精品久久一区二区 | 久久狠狠亚洲综合 | 午夜久久视频 | 免费在线观看av片 | 超碰久热 | 麻豆va一区二区三区久久浪 | 欧美性另类 | 国产视频一区二区三区在线 | 99热这里只有精品在线观看 | 免费观看黄色av | 成人午夜黄色影院 | 久av在线 | a在线免费 | 97品白浆高清久久久久久 | www免费| 99性视频| free,性欧美 九九交易行官网 | 国产成人在线精品 | 欧美色精品天天在线观看视频 | 伊人视频 | 久久精品国产成人 | 国产美女免费视频 | www色av| 在线免费国产视频 | 日韩精品亚洲专区在线观看 | 日韩超碰在线 | 伊人成人精品 | 成人四虎影院 | 日韩av成人在线 | 在线观看中文字幕一区二区 | 国产精品久久久久久模特 | 四虎国产视频 | 天天综合网入口 | 日韩在线观看视频中文字幕 | 久久午夜网 | 国产精品久久久久久久午夜 | 99这里只有久久精品视频 | 人人射人人澡 | 五月婷婷中文字幕 | 久久精品久久久精品美女 | 1区2区3区在线观看 三级动图 | 亚洲午夜剧场 | 久久免费福利视频 | 免费日韩在线 | 天天操,夜夜操 | 婷婷综合伊人 | 国产高清视频在线观看 | 国产精品国产三级国产不产一地 | 亚洲一二视频 | 三级在线视频观看 | 亚洲国产成人高清精品 | 欧美日韩高清一区二区 国产亚洲免费看 | 中文字幕乱码视频 | av成人免费网站 | 九九精品在线观看 | 亚洲天堂网视频在线观看 | 欧美日韩精品二区第二页 | 欧美在线aaa | 成人免费一级片 | 激情电影在线观看 | 国产五月天婷婷 | 国产一二区免费视频 | 有码中文字幕在线观看 | 日韩欧美xx | 日本激情中文字幕 | 精品国产1区2区 | 成人免费视频网站 | 天天爽综合网 | 欧美日高清视频 | 国产91在| av日韩av| 国产手机精品视频 | 免费在线色视频 | 久久精品这里都是精品 | 亚洲精品国产麻豆 | 婷婷日| 日韩最新在线视频 | 亚洲综合少妇 | 国产精品免费麻豆入口 | 狠狠网 | 国产一区在线免费观看视频 | 婷婷丁香色 | 黄色电影在线免费观看 | 99久久er热在这里只有精品15 | 日韩午夜小视频 | 国产区免费 | 国产精品免费成人 | 在线观看视频国产一区 | 天天天天天天天操 | 亚洲精品2区 | av片在线观看免费 | 成人禁用看黄a在线 | 久久免费看a级毛毛片 | 欧美一级片免费观看 | 高清不卡毛片 | 亚洲天天在线 | 麻豆视频入口 | 美女性爽视频国产免费app | 日本三级人妇 | 97超碰总站 | 国产91免费在线 | 国产成人高清 | 在线观看国产日韩欧美 | 日本久久影视 | 久久国产剧场电影 | 亚洲一级电影 | 久久99热这里只有精品国产 | 经典三级一区 | 国产一区精品在线 | 最新av电影网址 | 美女搞黄国产视频网站 | www成人精品 | 亚洲综合网站在线观看 | av在线一级| 西西www4444大胆在线 | 激情综合婷婷 | 在线91精品| 国产精品粉嫩 | 美女视频黄网站 | 免费看黄的 | 亚洲欧美国产精品久久久久 | 免费又黄又爽 | 亚洲精品在线视频观看 | 国产精品 中文在线 | 激情小说 五月 | 免费看黄色91 | 亚洲www天堂com | 久久免费视频网站 | 久久久国产99久久国产一 | 亚洲国产日韩欧美在线 | 亚洲男女精品 | 九九热99视频 | 亚洲天堂首页 | 天天操天天干天天摸 | 男女视频久久久 | 免费观看性生活大片 | 一区二区三区精品在线 | 999久久久久久久久 69av视频在线观看 | 亚洲乱码在线观看 | 国产精品美女久久久 | 午夜.dj高清免费观看视频 | 精品欧美小视频在线观看 | 91九色porny蝌蚪视频 | 日韩精品一区二区三区中文字幕 | 波多野结衣在线视频免费观看 | 亚洲v欧美v国产v在线观看 | 久久精品综合视频 | 欧美国产日韩一区二区三区 | 天天色综合三 | 天天碰天天操视频 | 亚洲国产视频a | 亚洲成色777777在线观看影院 | 亚洲精品88欧美一区二区 | 亚洲欧美日韩国产精品一区午夜 | 久久看免费视频 | 免费观看午夜视频 | 天天夜夜操| 国产精品午夜8888 | 四虎影视成人永久免费观看视频 | av在线一级| 亚州精品天堂中文字幕 | 国产视频精品网 | 九色视频网址 | 亚洲专区视频在线观看 | 精品免费一区二区三区 | 欧美激情精品一区 | 亚洲劲爆av| 国产传媒中文字幕 | 一区三区视频 | 国产理论片在线观看 | 日本99久久| 国产麻豆剧果冻传媒视频播放量 | 免费视频久久 | 亚洲精品99久久久久久 | 中文视频在线看 | 亚洲国产精品va在线看黑人 | 亚洲专区欧美专区 | 在线电影 一区 | 欧美最猛性xxx | 99高清视频有精品视频 | 久久69av | 99婷婷狠狠成为人免费视频 | 91福利国产在线观看 | 国产做爰视频 | 亚洲h在线播放在线观看h | 欧美国产亚洲精品久久久8v | 欧美激情精品久久久久 | 欧美综合色 | 国产精品久久久久亚洲影视 | 亚洲成人网在线 | 日韩一级精品 | 精品国产精品国产偷麻豆 | 国产精品成人自产拍在线观看 | 国产精品免费大片视频 | 精品色999 | 国产精品电影在线 | 99成人精品| 国产五月婷 | 日日操日日插 | 国产私拍在线 | 国产精品初高中精品久久 | 麻豆一精品传二传媒短视频 | 中文字幕一区二区在线观看 | 国产91精品一区二区 | 91黄在线看| 久久精品国产一区二区 | 午夜影院日本 | 五月婷香蕉久色在线看 | 日韩成人看片 | 四虎影视8848aamm | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 337p日本大胆噜噜噜噜 | 亚洲天堂视频在线 | 手机在线中文字幕 | 日韩18p| 亚洲一一在线 | 国产精品自产拍在线观看蜜 | 奇米网444| 久久久久国| 天天弄天天操 | 97视频在线观看免费 | 午夜骚影 | 香蕉影院在线播放 | 一区二区三区高清不卡 | 精品亚洲欧美一区 | 日韩网站免费观看 | 成全免费观看视频 | 97国产精品视频 | 综合久久久久 | 美国av大片 | 九九久久在线看 | 久久久免费在线观看 | 中文字幕在线观看网 | 一级免费片| av不卡中文字幕 | 国产一级二级三级在线观看 | 久久久www成人免费精品张筱雨 | 久久狠狠干 | 天天操天天色综合 | 六月丁香在线视频 | 亚洲九九九在线观看 | 国产精品麻豆三级一区视频 | 国产乱码精品一区二区三区介绍 | 黄色成人在线观看 | 九九热精品视频在线观看 | 在线综合色 | 麻豆视屏| 久久国产精品小视频 | 狠狠搞,com| 91亚洲国产成人久久精品网站 | 中文字幕中文字幕中文字幕 | 国产免费亚洲高清 | 成人免费中文字幕 | 日韩欧美视频在线免费观看 | 亚洲年轻女教师毛茸茸 | 国产一级在线视频 | 国产精品久久 | 91亚洲欧美激情 | 最新日韩视频 | 成人黄色小视频 | 日韩精品免费在线观看 | 中文字幕国产 | 日日摸日日添日日躁av | 国产精品一区在线观看你懂的 | 欧美精品久久久久久久久免 | 麻豆传媒视频在线 | 99婷婷| 亚洲人成网站精品片在线观看 | 九九久久成人 | 久草在线免费资源 | 日韩网站一区二区 | 国产视频一区二区三区在线 | 草久久精品 | 99资源网| 久久久久看片 | 亚洲最大成人网4388xx | av一区二区三区在线 | 亚洲aaa毛片 | 精品免费99久久 | 久久久高清免费视频 | 国产欧美在线一区 | 天天天操天天天干 | av电影在线免费观看 | 亚洲成人av电影 | 中文字幕日韩av | 日日干网 | 成年人免费在线 | 亚洲精品一区中文字幕乱码 | 久久精品久久精品久久39 | 一区二区丝袜 | 国产精品久久久久久久久久免费 | 久久爽久久爽久久av东京爽 | 又长又大又黑又粗欧美 | 国产三级香港三韩国三级 | 一区二区不卡在线观看 | 综合网婷婷 | 激情av一区二区 | 美腿丝袜一区二区三区 | 国产中文字幕国产 | 久草在线一免费新视频 | 8x成人在线| 国产在线免费av | 久久久久免费视频 | 亚洲欧美视频一区二区三区 | 久久久久久免费毛片精品 | 国产在线观看地址 | 一区二区精品视频 | 99国产在线视频 | 国产精品网红直播 | 国产精品嫩草影视久久久 | 91在线视频网址 | 亚洲一区视频在线播放 | 亚洲激情精品 | www色综合| 精品在线播放视频 | 成人一级黄色片 | 亚洲91在线 | 国产精品自产拍在线观看中文 | 成人午夜免费剧场 | av电影免费看 | 免费在线精品视频 | 久久久久亚洲精品中文字幕 | 国产专区视频在线 | 九九视频免费观看视频精品 | 99热精品国产一区二区在线观看 | 色999五月色 | 精品高清美女精品国产区 | 人人搞人人搞 | 久久精品三 | 国产成人一区二区三区在线观看 | 99久热在线精品视频成人一区 | 国产免费又爽又刺激在线观看 | 国产综合香蕉五月婷在线 | 婷婷丁香国产 | 欧美夫妻生活视频 | 欧美黄色软件 | 欧美激情第八页 | 国产精品一区专区欧美日韩 | 久久久久久久久久久久99 | 91视频 - 88av | 91精品蜜桃 | 日韩av五月天| 久久激情视频 | 国产精选在线观看 | 久久精品一区八戒影视 | 久草久热 | 91精品伦理| 亚洲婷婷综合色高清在线 | 国产精品美女999 | 国产亚洲综合性久久久影院 | 久久综合色一综合色88 | 亚洲欧美色婷婷 | 91在线观看高清 | 99久久婷婷国产综合精品 | 亚洲 av网站 | 国产成人一区在线 | 国产精品美女毛片真酒店 | 在线免费观看视频你懂的 | 91精品国产92久久久久 | 探花视频在线观看免费 | 在线观看激情av | 亚洲精品乱码久久 | 五月激情五月激情 | 日韩一区二区三免费高清在线观看 | 国产日韩欧美自拍 | 中文字幕在线免费 | 亚洲va天堂va欧美ⅴa在线 | 中文字幕在线视频一区二区 | 91精品国产麻豆国产自产影视 | 国产精品一区二区三区免费看 | 中文字幕在线免费观看 | 色先锋资源网 | 亚洲最大免费成人网 | 91chinese在线| 国产999精品| 特黄特黄的视频 | 中文字幕日韩免费视频 | 人人澡av| 久草在线视频在线观看 | 久久伊人婷婷 | 午夜私人影院 | 99精品在线观看 | 日日碰狠狠添天天爽超碰97久久 | 黄色电影小说 | 韩日精品中文字幕 | 国产98色在线 | 日韩 | 黄色网www | 在线香蕉视频 | 99国产成+人+综合+亚洲 欧美 | 欧美日韩国产精品一区二区 | 久久激情视频 久久 | 又色又爽又黄高潮的免费视频 | 看片在线亚洲 | 亚洲午夜精品电影 | 久草在线免费在线观看 | 午夜av免费看 | 亚洲精品欧洲精品 | 91最新视频在线观看 | 日韩av电影网站在线观看 | 五月婷婷综合网 | 最近中文国产在线视频 | 正在播放日韩 | 日韩欧美视频免费观看 | 久久婷婷亚洲 | 亚洲精品天天 | 久久伦理网 | 日韩欧美在线一区二区 | 日韩免费中文字幕 | 国产在线欧美日韩 | 久久你懂的| 97人人添人澡人人爽超碰动图 | 18性欧美xxxⅹ性满足 | 在线国产能看的 | 国产综合香蕉五月婷在线 | 亚洲国产精品推荐 | 国色天香永久免费 | 日日日网| 中文字幕一区二区三区乱码在线 | 91.麻豆视频 | 国内精品久久久久久久97牛牛 | 成人av影视观看 | 天天操天天色综合 | 国产午夜精品一区 | 超碰97在线资源站 | 成人av电影在线 | 亚洲在线免费视频 | 国产一区二区网址 | 在线视频欧美亚洲 | 伊人中文网 | 国产成人av电影在线观看 | 日韩av福利在线 | 成人精品一区二区三区中文字幕 | 亚洲精品综合一二三区在线观看 | 黄色片视频免费 | 色婷婷视频网 | 日韩国产在线观看 | 国产黑丝袜在线 | 日韩精品在线免费播放 | 国产精品免费看久久久8精臀av | 亚洲国产资源 | 爱色婷婷| 99久精品视频 | 久久久久免费精品视频 | 亚洲成人高清在线 | 久久香蕉电影 | 波多野结衣精品 | 91热这里只有精品 | 亚洲三级黄色 | 五月婷在线观看 | 亚洲成人高清在线 | 在线电影 一区 | 久久久在线观看 | 国产精品成人一区二区 | 国产在线自 | 久草在线视频首页 | 国产精品亚洲人在线观看 | 丁香影院在线 | 中文字幕精品一区二区精品 | 狠狠干激情 | 天天天干天天天操 | 99在线观看视频 | 日本久草电影 | 18做爰免费视频网站 | 久草在线视频中文 | 天堂中文在线视频 | 国产色小视频 | 天天操天天拍 | av一区二区三区在线 | av超碰在线| 亚洲国产成人精品久久 | 亚洲影视资源 | av资源免费观看 | 国产男女免费完整视频 | 日p视频在线观看 | 日韩国产精品一区 | 综合色天天 | 日韩精品一区二 | av888av.com| 国产成人一区二区在线观看 | 日韩电影一区二区三区 | 久久tv视频 | 91视频久久久 | 国产免费大片 | 国产精品久久久久久a | 97电影院网| 在线黄色av电影 | 国产一级精品视频 | 午夜精品久久久久久 | 天天操天天操天天操天天 | 99性视频| 91亚洲国产| 人成免费网站 | 午夜成人免费影院 | 精品国产乱码一区二区三区在线 | 精品国产综合区久久久久久 | 99视频国产在线 | 天天综合导航 | 久久久免费精品国产一区二区 | 亚洲精品视频在线播放 | 国产一区二区三区免费观看视频 | 国产精品va在线播放 | 日韩性色| 国产高清视频在线 | 亚洲色图27p | 一区二区久久 | 日韩av网站在线播放 | 精品久久久久久亚洲综合网站 | 日本韩国精品一区二区在线观看 | 毛片无卡免费无播放器 | 又黄又爽又无遮挡的视频 | 激情图片qvod| 免费观看久久久 | 97国产| 中文网丁香综合网 | 日韩av免费一区二区 | 国产91精品一区二区绿帽 | 97国产精品视频 | 超碰av在线播放 | 国产97超碰| 亚洲欧美久久 | 精品亚洲欧美无人区乱码 | 国产亚洲免费观看 | 99精品国产高清在线观看 | 黄色片亚洲| 日韩爱爱片 | 久草网站在线 | 亚洲二区精品 | 日日天天 | av超碰在线 | 四虎影视国产精品免费久久 | 欧美视频国产视频 | 二区视频在线 | 日本黄色大片免费看 | 天天操综合网 | 久久久久久高潮国产精品视 | 中文字幕免费久久 | 天天爽夜夜爽人人爽一区二区 | av网站在线观看播放 | 精品视频免费 | 亚洲精品视频在线观看免费 | 97操碰 | 99久免费精品视频在线观看 | 国产直播av| av在线网站免费观看 | 亚洲欧美婷婷六月色综合 | 欧美日韩一级久久久久久免费看 | 91视视频在线直接观看在线看网页在线看 | 福利视频入口 | 在线免费日韩 | 日韩免费三区 | 中文免费观看 | 成人视屏免费看 | 精品亚洲欧美无人区乱码 | 色婷婷www | 国产最顶级的黄色片在线免费观看 | 欧美在线不卡一区 | www亚洲精品 | 免费看高清毛片 | 99理论片 | 亚洲国产欧洲综合997久久, | 干av在线| 免费毛片aaaaaa | 欧美精品做受xxx性少妇 | 色综合久久88色综合天天6 | 丁香六月网 | 视频福利在线观看 | 国产一区在线播放 | 中文在线字幕观看电影 | 天天操天天射天天爽 | 久久午夜免费视频 | 91精品一 | 久久综合久久综合这里只有精品 | 久久久久高清毛片一级 | 综合激情 | 九九久久久久久久久激情 | 国产精品免费久久久久久久久久中文 | 色爱区综合激月婷婷 | 天天综合天天做天天综合 | 麻豆免费观看视频 | 成人av手机在线 | 色综合亚洲精品激情狠狠 | 欧美一区视频 | 国产精品私拍 | 免费看黄视频 | 999久久久久久久久 69av视频在线观看 | 免费福利视频导航 | 一区二区精品国产 | 国产精品永久免费视频 | 亚洲一区精品人人爽人人躁 | 五月综合色 | 日韩a级黄色片 | 亚洲专区在线播放 | 天天操天天拍 | 色99视频 | 国产手机精品视频 | 97色婷婷成人综合在线观看 | 久久精品女人毛片国产 | 九色视频自拍 | 在线免费观看的av网站 | 成人九九视频 | 国产精品中文久久久久久久 | 日日躁夜夜躁xxxxaaaa | 九九久久久久久久久激情 | 亚洲色图av | 色综合久久88色综合天天人守婷 | 成人av网页 | 国产va在线观看免费 | 国产xxxx做受性欧美88 | 夜添久久精品亚洲国产精品 | 免费观看国产精品 | 国产色道 | 香蕉视频免费在线播放 | 国色综合| 久久精品一区二区三 | 最近中文字幕久久 | 成人午夜精品久久久久久久3d | 精品国产福利在线 | 久久久久久久久毛片精品 | 久久久久成人精品免费播放动漫 | 久久久久免费精品国产小说色大师 | 天天做综合网 | 欧美巨大 | 精品一区二区免费 | 中文字幕在线观看资源 | 成人影视免费看 | 日韩字幕 | 99在线视频精品 | 日韩免费福利 | 六月婷色 | 免费视频a | 日本少妇高清做爰视频 | 色多多污污在线观看 | 808电影免费观看三年 | 国产精品成人久久久久久久 | 91香蕉视频黄色 | 中文字幕av免费在线观看 | 深爱激情五月网 | 91在线porny国产在线看 | 国产视频在线播放 | 久久精品国产精品 | 久久久久久国产精品999 | 精品一区二区三区电影 | 97超视频免费观看 | 在线观看免费日韩 | 国产高h视频| a v在线视频| 91日韩在线专区 | 免费日韩电影 | 99热这里只有精品1 av中文字幕日韩 | 91免费视频网站在线观看 | a级黄色片视频 | 午夜精品视频一区 | 在线亚洲成人 | 精品国产1区2区3区 国产欧美精品在线观看 | 亚洲丁香日韩 | 91精品久久久久久综合五月天 | 久久国产精品免费视频 | 日日爱999 | 亚洲午夜久久久久久久久久久 | 国产精品久久久久av福利动漫 | 在线一区av | 久久国产影院 | 国产精品欧美久久久久无广告 | 91精品久久久久久综合乱菊 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | www日韩在线 | 中文字幕色在线视频 | 99精品色 | av 一区二区三区四区 | 免费看一级特黄a大片 | 亚洲黄色在线免费观看 | 在线观看一区视频 | 久久99精品国产一区二区三区 | 久久在线精品视频 | 天天操天天射天天舔 | 亚洲国产成人高清精品 | 成人免费精品 | 日韩av片在线 | 一区二区欧美激情 | 97超碰免费在线 | 9ⅰ精品久久久久久久久中文字幕 | 亚洲精品在线播放视频 | 九九热99视频 | 99热播精品 | 丰满少妇麻豆av | 久久99欧美| 国产精品久久久777 成人手机在线视频 | 欧洲亚洲激情 | 久操视频在线观看 | 麻豆免费精品视频 | 黄色小网站免费看 | 国产区av在线 | 在线观看中文字幕亚洲 | 久久伊人精品一区二区三区 | 少妇bbr搡bbb搡bbb| 丁香六月色| 婷婷中文字幕在线观看 | 五月天欧美精品 | 三日本三级少妇三级99 | 国产日韩欧美在线免费观看 | 国产啊v在线 | 久久丝袜视频 | 美女啪啪图片 | 天堂素人在线 | 91成人天堂久久成人 | 亚洲精品成人免费 | 色99视频| www.在线观看av| 91福利视频一区 | 六月丁香激情综合色啪小说 | 国产精品久久久久久久久久久久久 | 五月在线| 久久精彩视频 | 久久久久一区 | 狠狠狠干狠狠 | 91av亚洲| 国产麻豆精品免费视频 | 亚洲成av人电影 | 久久久久久久久久福利 | 五月天伊人网 | 亚洲一级片免费观看 | 欧美久久久一区二区三区 | 国产无限资源在线观看 | 亚洲成av人电影 | www.国产毛片 | 日韩欧美在线一区 | 在线观看黄污 | 人人干在线 | 国产麻豆视频免费观看 | 91手机电影 | 久久久国产99久久国产一 | 中文字幕一区二区三区乱码不卡 | 美女黄频网站 | 国产白浆在线观看 | 国产精品女同一区二区三区久久夜 | 视频一区在线免费观看 | 色999精品 | 亚洲涩涩一区 | 伊人一级 | 全黄色一级片 | 欧美aa级| 欧美一级裸体视频 | 亚洲黄在线观看 | 亚洲人人射 | 精品人妖videos欧美人妖 | 激情 亚洲 | 亚洲成人av片 | 国产精品久久久久国产精品日日 | 国产欧美精品xxxx另类 | 国产精品久久久久久久久久久久午夜 | 97人人精品 | av中文在线影视 | 国产在线91在线电影 | 国产亚洲精品xxoo | 欧美激情精品 | 激情av在线资源 | 久久国产成人午夜av影院潦草 | www.av在线播放 | 色婷婷av在线 | 亚洲精品视频在 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 久久官网 | 黄色亚洲大片免费在线观看 | 国产视频资源在线观看 | 亚洲在线资源 | 国产视频一区在线免费观看 | 国产精品高潮久久av | 国产一区二区三区四区在线 | 欧美日韩性视频在线 | 日韩中字在线观看 | 久久精品视频在线看 | 黄色一级大片在线免费看国产一 | 丁香婷婷在线 | 黄色毛片视频免费观看中文 | 五月天堂色 | 久久不色 | 国产精品午夜在线 | 中文字幕色综合网 | 久久爱www. | 日本韩国中文字幕 | 久久99精品久久久久婷婷 | 久久久污| 欧美亚洲国产日韩 | 亚洲在线观看av | а中文在线天堂 | 97超级碰碰碰碰久久久久 | 精品国产精品一区二区夜夜嗨 | 欧美精品国产综合久久 | 丰满少妇高潮在线观看 | 久久久久久久久精 | 日韩影视在线观看 | 不卡电影一区二区三区 | 人人插人人费 | 天天干天天综合 | 亚洲精品高清一区二区三区四区 | 91精品国产92久久久久 | 婷婷国产精品 | 91视频啊啊啊 | 国产一级黄 | 激情av网址 | 欧美一区二区三区在线观看 | 成人h动漫在线看 | www99精品 | 欧美 日韩 久久 | 国产精品二区三区 | 免费观看一区二区三区视频 | 中文字幕首页 | 91丨九色丨丝袜 | 91九色自拍 | 久久1区| 麻豆观看 | 久久综合狠狠综合久久激情 | 国产精品日韩欧美一区二区 | 久久视频这里只有精品 | 97色噜噜| 午夜精品久久久久久久久久久久久久 | 中文区中文字幕免费看 | 久久这里有 | 午夜影院三级 | 亚洲视频免费在线观看 | 中文电影网 | 国产小视频91| 精产嫩模国品一二三区 | 激情影音 | 欧美一级免费黄色片 | 亚洲久久视频 | 国产精彩视频一区 | 国产成人综合精品 | 国产精品丝袜久久久久久久不卡 | 亚洲夜夜网 | 丁香六月欧美 | 激情综合中文娱乐网 | 色av网站 | 天天射天天舔天天干 | 婷婷伊人综合 | 国产精品9999 | 日韩综合第一页 | 欧美地下肉体性派对 | 国内精品视频在线 | 性色av香蕉一区二区 | 色激情五月 | 日日夜夜网 | 久久国产精品一区二区三区 | 最新国产在线 | 欧美一区在线观看视频 | 丝袜制服天堂 | 日韩在线观看一区二区三区 | 白丝av免费观看 | 五月花丁香婷婷 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久亚洲欧美 | 欧美一级电影在线观看 | 亚洲精品午夜久久久久久久久久久 | 久久久www免费电影网 | 中文字幕在线观看网站 | 免费观看第二部31集 | 精品国产_亚洲人成在线 | 欧美日韩精品在线播放 | 久久午夜精品 | 九九久久久久久久久激情 | 懂色av一区二区三区蜜臀 | 美女黄网久久 | 久久精品—区二区三区 | 天天舔夜夜操 | 亚洲国产精品久久久久久 | 色成人亚洲网 | 有码中文字幕在线观看 | 992tv人人草 黄色国产区 | 午夜国产福利在线 | 黄色一区二区在线观看 | 在线免费高清视频 | 日韩一区二区在线免费观看 | 在线欧美国产 | 91视频在线观看下载 | 天天躁日日躁狠狠躁 | 日韩激情av在线 | 精品久久久久久一区二区里番 | 91超在线 | 欧美色久 | 欧美久久久久久久久久 | 91香蕉视频720p| 久草在线播放视频 | 亚洲涩涩一区 | 国产最新福利 | 欧美日韩三级在线观看 | 91精品免费看 |