統(tǒng)計機器學習-決策樹

決策樹是一種基本的分類與回歸方法。ID3和C4.5決策樹可以用于分類记某,CART(分類與回歸樹)既可以用于分類偎痛,也可以用于回歸旱捧。決策樹的學習通常包括3個步驟:特征選擇、決策樹的生成和決策樹的修剪踩麦。這里主要介紹分類決策樹枚赡。附上機器學習實戰(zhàn)的書中決策樹代碼

定義

分類決策樹模型是一種描述對實例進行分類的樹形結構谓谦,決策樹由結點和有向邊組成贫橙。結點由兩種類型:內部結點和葉結點。內部結點表示一個特征或屬性反粥,葉結點表示一個類卢肃。

由決策樹的根結點到葉結點的每一條路徑構建一條規(guī)則:路徑上內部結點的特征對應著規(guī)則的條件,而葉結點的類對應著規(guī)則的結論星压。決策樹的路徑對應的規(guī)則互斥且完備践剂,每一個實例都只被一條路徑所覆蓋鬼譬。

決策樹還能表示給定特征條件X下類Y的條件概率分布P(Y|X)娜膘。

決策樹的學習

決策樹學習,假設給定訓練數據集
D= \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}
其中优质,x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T為輸入實例(特征向量)竣贪,n為特征個數,y_i\in \{1,2,\cdots,K\}為類標記巩螃,i=1,2,\cdots,N演怎,N為樣本容量,學習的目的是根據給定的訓練數據集構建一個決策樹模型避乏,使它能夠對實例進行正確的分類爷耀。

決策樹學習的算法通常是一個遞歸的選擇最優(yōu)特征,并根據該特征對訓練數據進行分割拍皮,使得對各個子數據集有一個最好的分類的過程歹叮,這一過程對應著對特征空間的劃分,也對應著決策樹的構建铆帽。在構建完成后咆耿,決策樹對訓練數據有了很好的劃分,但是一般不具備很好的泛化能力爹橱,容易出現過擬合萨螺,于是可以通過剪枝算法剪去一些子樹來提高泛化能力。剪枝的結果不是唯一的,需要選擇一個最優(yōu)的決策樹最為最終的模型慰技。這一最優(yōu)化問題是NP完全問題椭盏,通常采用啟發(fā)式算法求解,得到的決策樹是次最優(yōu)的惹盼。

NP完全問題=NPC問題庸汗,這種問題存在的現象就是生成問題的一個解比驗證一個給定解花費的時間多得多。

特征選擇

特征選擇在于選取對訓練數據具有分類能力的特征手报。這樣可以提高決策樹學習的效率蚯舱。通常特征選擇的準則是信息增益或信息增益比。

信息增益

首先定義熵和條件熵

熵是表示隨機變量不確定性的度量掩蛤,設X是一個取有限個值的離散隨機變量枉昏,其概率分布為
P(X=x_i)=p_i,\ \ i=1,2,\cdots,n
則隨機變量的熵定義為
H(X)=-\sum_{i=1}^np_ilogp_i\tag1
當隨機變量越確定時,熵越小揍鸟。例如0,1分布兄裂,P(X=1)=p的熵隨概率p的曲線:

hp

p=0.5時,最不確定0還是1阳藻,此時熵最大晰奖。

條件熵

設隨機變量(X,Y),其聯合概率分布為
P(X=x_i,Y=y_j)=p_{ij},\ \ i=1,2,\cdots,n;\ \ j=1,2,\cdots,m
條件熵H(Y|X)表示在一直隨機變量X的條件下隨機變量Y的不確定性腥泥。隨機變量X給定的條件下隨機變量Y的條件熵H(Y|X)匾南,定義為X給定條件下Y的條件概率分布的熵對X的期望
H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i)
當熵和條件熵中的概率有數據估計(特別是極大似然估計)得到時,所對應的熵與條件熵分別稱為經驗熵和經驗條件熵蛔外,此時蛆楞,如果有0概率,令0\log0=0夹厌。

信息增益定義

特征A對訓練數據集D的信息增益g(D,A)豹爹,定義為集合D的經驗熵H(D)與特征A給定條件下D的經驗條件熵H(D|A)之差,即
g(D,A)=H(D)-H(D|A)\tag2
表示通過特征A劃分矛纹,數據集D分類不確定性減少的程度臂聋。

信息增益的算法

輸入:訓練數據集D和特征A

輸出:特征A對訓練數據集D的信息增益g(D,A)或南。

(1)計算數據集D的經驗熵
H(D)=-\sum_{k=1}^K\frac{|C_k|}{|D|}\log_2\frac{|C_k|}{|D|}
其中|C_k|是訓練集中屬于C_k類的樣本個數孩等,|D|是訓練集樣本總數

(2)計算特征A對數據集D的經驗條件熵H(D|A)
H(D|A)=\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i)=-\sum_{i=1}^n\frac{|D_i|}{|D|}\sum_{k=1}^K\frac{|D_{ik}|}{|D_i|}\log_2\frac{|D_{ik}|}{|D_i|}
其中D_i是訓練集D根據特征A的第i個取值劃分得到的子集,\sum D_i=D迎献,D_{ik}是子集D_i中屬于C_k類的樣本的集合

(3)計算信息增益
g(D,A)=H(D)-H(D|A)

信息增益比

以信息增益作為劃分訓練數據集的特征瞎访,存在偏向于選擇取值較多的特征的問題,使用信息增益比可以對這一問題進行校正吁恍。

信息增益比定義

特征A對訓練數據集D的信息增益比g_R(D,A)定義為其信息增益g(D,A)與訓練數據集D關于特征A的值的熵H_A(D)之比扒秸,即
g_R(D,A)=\frac{g(D,A)}{H_A(D)}
其中播演,H_A(D)=-\sum_{i=1}^n\frac{|D_i|}{|D|}\log_2\frac{|D_i|}{|D|}n是特征A取值的個數伴奥。熵H(D)是針對數據集D的分類Y的写烤,這里H_A(D)是針對數據集D的特征A的。

決策樹的生成

ID3的生成算法

輸入:訓練數據集D拾徙,特征集A洲炊,閾值\varepsilon

輸出:決策樹T尼啡。

(1)若D中所有實例屬于同一類C_k暂衡,則T為單結點樹,并將類C_k作為該結點的類標記崖瞭,返回T狂巢;

(2)若A=\varnothing,則T為單結點樹书聚,并將D中實例數最大的類C_k作為該結點的類標記唧领,返回T

(3)否則雌续,按信息增益算法計算A中各特征對D的信息增益斩个,選擇信息增益最大的特征A_g

(4)如果A_g的信息增益小于閾值\varepsilon驯杜,則置T為單結點樹受啥,并將D中實例數最大的類C_k作為該結點的類標記,返回T艇肴;

(5)否則腔呜,對A_g的每一個可能值a_i叁温,依A_g=a_iD分割為若干非空子集D_i再悼,將D_i中實例數最大的類作為標記,構建子結點膝但,由結點及其子結點夠成樹T冲九,返回T

(6)對第i個子結點跟束,以D_i為訓練集莺奸,以A- \{A_g\}為特征集忍啤,遞歸的調用步(1)-(5)跺撼,得到子樹T_i,返回T_i聪建。

C4.5的生成算法

輸入:訓練數據集D略贮,特征集A甚疟,閾值\varepsilon仗岖;

輸出:決策樹T

(1)若D中所有實例屬于同一類C_k览妖,則T為單結點樹轧拄,并將類C_k作為該結點的類標記,返回T讽膏;

(2)若A=\varnothing檩电,則T為單結點樹,并將D中實例數最大的類C_k作為該結點的類標記府树,返回T俐末;

(3)否則,按公式(2)計算A中各特征對D的信息增益比奄侠,選擇信息增益比最大的特征A_g鹅搪;

(4)如果A_g的信息增益小于閾值\varepsilon,則置T為單結點樹遭铺,并將D中實例數最大的類C_k作為該結點的類標記丽柿,返回T

(5)否則魂挂,對A_g的每一個可能值a_i甫题,依A_g=a_iD分割為若干非空子集D_i,將D_i中實例數最大的類作為標記涂召,構建子結點坠非,由結點及其子結點夠成樹T,返回T果正;

(6)對第i個子結點炎码,以D_i為訓練集,以A- \{A_g\}為特征集秋泳,遞歸的調用步(1)-(5)潦闲,得到子樹T_i,返回T_i迫皱。

兩個算法的區(qū)別僅在于ID3使用信息增益最大為標準選擇劃分特征歉闰,而C4.5使用信息增益比最大為標準選擇劃分特征。

決策樹的剪枝

生成算法產生的決策樹對訓練數據有很好的劃分卓起,但是容易出現過擬合和敬,這時候就需要對生成的決策樹進行剪枝,提高模型的泛化能力戏阅。

剪枝通過極小化決策樹整體的損失函數或代價函數來實現昼弟。設樹T的葉結點個數為|T|t是樹T的葉結點奕筐,該葉結點有N_t個樣本點舱痘,其中k類的樣本點有N_{tk}個蚕键,k=1,2,\cdots,KH_t(T)為葉結點t上的經驗熵衰粹,\alpha\geq0為參數锣光,則決策樹學習的損失函數可以定義為
C_\alpha(T)=\sum_{t=1}^{|T|}N_tH_t(T)+\alpha|T|\tag3
其中經驗熵為
H_t(T)=-\sum_k\frac{N_{tk}}{N_t}\log\frac{N_{tk}}{N_t}\tag4
在損失函數,將公式(3)中右端第一項記做
C(T)=\sum_{t=1}^{|T|}N_tH_t(T)=-\sum_{t=1}^{|T|}\sum_{k=1}^KN_{tk}\log\frac{N_{tk}}{N_t}\tag5
這時有
C_\alpha(T)=C(T)+\alpha|T|\tag6
上式中C(T)表示模型對訓練數據的預測誤差铝耻,|T|表示模型復雜度誊爹。參數\alpha控制兩者之間的影響,較大的\alpha促使選擇簡單的模型瓢捉,較小的\alpha促使選擇復雜的模型频丘,\alpha=0表示不考慮模型復雜度。該損失函數的極小化等價于正則化的極大似然估計泡态。

樹的剪枝算法

輸入:生成算法產生的整個樹T搂漠,參數\alpha

輸出:修剪后的子樹T_\alpha某弦。

(1)計算每個結點的經驗熵

(2)遞歸的從樹的葉結點向上回縮桐汤。設一組葉結點回縮到父結點之前與之后的整體樹分別為T_BT_A,其對應的損失函數值分別是C_\alpha(T_B)C_\alpha(T_A)靶壮,如果
C_\alpha(T_A)\leq C_\alpha(T_B)
則進行剪枝怔毛,即將父結點變?yōu)樾碌娜~結點。

(3)返回(2)腾降,直至不能繼續(xù)位置拣度,得到損失函數最小的子樹T_\alpha

剪枝算法可以通過動態(tài)規(guī)劃的算法實現螃壤。

CART算法

CART是分類與回歸樹的簡寫抗果,即既可以實現分類,也可以實現回歸的樹奸晴。CART是二叉樹冤馏,內部結點有兩個分支,左邊是“是”蚁滋,右邊是“否”宿接,對特征進行遞歸的二分赘淮。

CART算法由以下兩步組成:

(1)決策樹生成:基于訓練數據集生成決策樹辕录,生成的決策樹要盡量大;

(2)決策樹剪枝:用驗證數據集對已生成的樹進行剪枝并選擇最優(yōu)子樹梢卸,這時用損失函數最小作為剪枝的標準走诞。

CART生成

回歸樹生成

假設XY分別為輸入和輸出變量,并且Y是連續(xù)變量蛤高,給定訓練數據集
D= \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}
考慮如何生成回歸樹蚣旱。

一個回歸樹對應著輸入空間(即特征空間)的一個劃分以及在劃分的單元的輸出值碑幅。假設已將輸入空間劃分為M個單元R_1,R_2,\cdots,R_M,并且在每個單元R_m有一個固定的輸出值c_m塞绿,于是回歸樹模型可表示為
f(x)=\sum_{m=1}^Mc_mI(x\in R_m)
當輸入空間的劃分確定時沟涨,可以用平方誤差\sum_{x_i\in R_m}(y_i-f(x_i))來表示回歸樹對訓練數據的預測誤差,用平方誤差最小的準則求解每個單元上的最優(yōu)輸出值异吻。易知裹赴,單元R_m上的c_m的最優(yōu)值\hat c_mR_m上的所有輸入實例x_i對應的輸出y_i的均值,即
\hat c_m=\mathrm{ave}(y_i|x_i\in R_m)
問題是怎樣對輸入空間進行劃分诀浪。這里采用啟發(fā)式的方法棋返,選擇第j個變量x^{(j)}和它的取值s,作為切分變量和切分點并定義兩個區(qū)域:
R_1(j,s)= \{x|x^{(j)}\leq s\}\ \ 和\ \ R_1(j,s)= \{x|x^{(j)}\gt s\}
然后尋找最優(yōu)切分變量j和最優(yōu)切分點s雷猪。具體的睛竣,求解
\min_{j,s}\bigg[\min_{c_1}\sum_{x_i\in R_1(j,s)}(y_i-c_1)^2+\min_{c_2}\sum_{x_i\in R_2(j,s)}(y_i-c_2)^2\bigg]
對固定輸入變量j可以找到最優(yōu)切分點s
\hat c_1=\mathrm{ave}(y_i|x_i\in R_1(j,s))\ \ 和\ \ \hat c_2=\mathrm{ave}(y_i|x_i\in R_2(j,s))
遍歷所有輸入變量求摇,找到最優(yōu)的切分變量j射沟,構成一個對(j,s),以此將輸入空間劃分為兩個區(qū)域与境。接著躏惋,對每個區(qū)域重復上述劃分過程,直到滿足停止條件(例如結點中的樣本個數小于預定閾值)為止嚷辅。這樣就生成一顆回歸樹簿姨,這樣的回歸樹通常稱為最小二乘回歸樹。

最小二乘回歸樹生成算法

輸入:訓練數據集D簸搞;

輸出:回歸樹f(x)扁位。

在訓練數據集所在的輸入空間中,遞歸的將每個區(qū)域劃分為兩個子區(qū)域并決定每個子區(qū)域上的輸出值趁俊,構建二叉決策樹:

(1)選擇最優(yōu)切分變量j與切分點s域仇,求解
\min_{j,s}\bigg[\min_{c_1}\sum_{x_i\in R_1(j,s)}(y_i-c_1)^2+\min_{c_2}\sum_{x_i\in R_2(j,s)}(y_i-c_2)^2\bigg]\tag7
遍歷變量j,對固定的切分變量j掃描切分點s寺擂,選擇使公式(7)達到最小的值的對(j,s)

(2)用選定的對(j,s)劃分區(qū)域并決定相應的輸出值:
R_1(j,s)= \{x|x^{(j)}\leq s\},\ \ R_2(j,s)= \{x|x^{(j)}\gt s\}

\hat c_m=\frac1{N_m}\sum_{x_i\in R_m(j,s)}y_i,\ \ x\in R_m,\ \ m=1,2

(3)繼續(xù)對兩個子區(qū)域調用步驟(1)暇务,(2),直至滿足停止條件怔软。

(4)將輸入空間劃分為M個區(qū)域R_1,R_2,\cdots,R_M垦细,生成決策樹:
f(x)=\sum_{m=1}^Mc_mI(x\in R_m)

分類樹的生成

分類樹用基尼指數選擇最優(yōu)特征,同時決定該特征的最優(yōu)二值切分點挡逼。

基尼指數的定義

分類問題中括改,假設有K個類,樣本點屬于第k類的概率為p_k家坎,則概率分布的基尼指數定義為
\mathrm{Gini}(p)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^Kp_k^2\tag8
對于給定樣本集D嘱能,其基尼指數為
\mathrm{Gini}(D)=1-\sum_{k=1}^K\bigg(\frac{|C_k|}{|D|}\bigg)\tag9
這里吝梅,C_kD中屬于第k類的樣本子集。

如果樣本集合D根據特征A是否取某一可能值a被分割成D_1D_2兩部分惹骂,則在特征A的條件下苏携,集合D的基尼指數定義為
\mathrm{Gini}(D,A)=\frac{|D_1|}{|D|}\mathrm{Gini}(D_1)+\frac{|D_2|}{|D|}\mathrm{Gini}(D_2)
基尼指數\mathrm{Gini}(D)表示集合D的不確定性,基尼指數越大对粪,不確定性越高兜叨,和熵有相似的性質●媒模基尼指數\mathrm{Gini}(D,A)表示按特征A=a劃分后的不確定性国旷。

CART生成算法

輸入:訓練數據集D,停止計算的條件茫死;

輸出:CART決策樹跪但。

根據訓練數據集,從根結點開始峦萎,遞歸的對每個結點進行以下操作屡久,構建二叉決策樹:

(1)設結點的訓練數據集為D,計算現有特征對該數據集的基尼指數爱榔。此時對每一個特征A被环,對其可能取的每個值a,根據樣本點對A=a的測試為“是”或“否”將D分割成D_1D_2兩部分详幽,利用
\mathrm{Gini}(D,A)=\frac{|D_1|}{|D|}\mathrm{Gini}(D_1)+\frac{|D_2|}{|D|}\mathrm{Gini}(D_2)
計算A=a時的基尼指數筛欢。

(2)在所有可能的特征A以及它們所有可能的切分點a中,選擇基尼指數最小的特征及其對應的切分作為最優(yōu)特征與最優(yōu)切分點唇聘。依最優(yōu)特征與最優(yōu)切分點版姑,從現結點生成兩個子結點,將訓練數據依特征分配到兩個子結點中去迟郎。

(3)對兩個子結點遞歸的調用(1)剥险,(2),直至滿足停止條件宪肖。

(4)生成CART決策樹表制。

算法停止計算的條件是結點中的樣本個數小于預定閾值,或樣本集的基尼指數小于預定閾值(樣本基本屬于同一類)控乾,或者沒有更多特征么介。

CART 剪枝

在剪枝過程中,計算子樹的損失函數:
C_\alpha(T)=C(T)+\alpha|T|
其中阱持,T為任意子樹夭拌,C(T)為對訓練數據的預測誤差(分類樹中C(T)=\sum_{t=1}^{|T|}N_t\mathrm{Gini}_t(T)),|T|為子樹的葉結點個數衷咽,\alpha\geq0為參數鸽扁,較大的\alpha促使選擇簡單的模型,較小的\alpha促使選擇復雜的模型镶骗。

對固定的\alpha桶现,一定存在使損失函數C_\alpha(T)最小的子樹,于是我們把\alpha從小增大鼎姊,0=\alpha_0\lt\alpha_1\lt\cdots\lt\alpha_n\lt+\infty使其從復雜到簡單逐步進行剪枝骡和,剪枝得到的子樹序列對應著區(qū)間\alpha\in[\alpha_i,\alpha_{i+1}]i=0,1,\cdots,n的最優(yōu)子樹序列\{T_0,T_1,\cdots,T_n\}相寇,序列中的子樹是嵌套的慰于。

具體的,從整體樹T_0開始剪枝唤衫。對T_0的任意內部結點t婆赠,以t為單結點樹的損失函數是
C_\alpha(t)=C(t)+\alpha
t為根結點的子樹T_t的損失函數是
C_\alpha(T_t)=C(T_t)+\alpha|T_t|
\alpha=0\alpha充分小時,有不等式
C_\alpha(T_t)\lt C_\alpha(t)
單結點樹損失更大一點佳励,因為\alpha充分小時休里,復雜的樹損失更小。當\alpha增大時赃承,在某一\alpha
C_\alpha(T_t)=C_\alpha(t)
單結點樹和子樹損失相同妙黍。當\alpha再增大時,不等式反向瞧剖,單結點樹損失更小拭嫁。

所以只要\alpha=\frac{C(t)-C(T_t)}{|T_t|-1}T_tt有相同的損失函數值抓于,而t的結點少噩凹,因此tT_t更可取,對T_t進行剪枝毡咏。

為此驮宴,對T_0中每一內部結點t,計算
\alpha=g(t)=\frac{C(t)-C(T_t)}{|T_t|-1}
減去g(t)最小的T_t呕缭,得到的子樹作為T_1堵泽,所處的區(qū)間為[\alpha_1,\alpha_2](整體樹的區(qū)間是[\alpha_0=0,\alpha_1))。

如此剪枝下去恢总,直至得到根結點迎罗。在這一過程中,不斷的增加\alpha的值片仿,產生新的區(qū)間纹安。并且每個區(qū)間的子樹是在上個區(qū)間的子樹上剪枝得到的,因為當\alpha更大時,對于之前g(t)值更小的結點厢岂,C_\alpha(T_t)\gt C_\alpha(t)光督,即之前剪去的結點其子樹T_t的損失要比單結點t更大,所以嵌套的剪枝是合理的塔粒。

剪枝完成后结借,子樹序列T_0,T_1,\cdots,T_n對應的\alpha序列\alpha_1,\alpha_2,\cdots,\alpha_n也就確定了,利用驗證數據集在子樹序列T_0,T_1,\cdots,T_n中計算損失C_{\alpha_n}(T)卒茬,選擇損失最小的決策樹T_\alpha船老。

CART剪枝算法

輸入:CART算法生成的決策樹T_0

輸出:最優(yōu)決策樹T_\alpha圃酵。

(1)設k=0柳畔,T=T_0

(2)設\alpha=+\infty郭赐。

(3)自下而上的對各內部結點t計算C(T_t)薪韩,T_t以及
g(t)=\frac{C(t)-C(T_t)}{|T_t|-1}

\alpha=\min(\alpha,g(t))

這里,T_t表示以t為根結點的子樹堪置,C(T_t)是對訓練數據的預測誤差躬存,|T_t|T_t的葉結點個數。

(4)對g(t)=\alpha的內部結點t進行剪枝舀锨,并對葉結點t以多數表決法決定其類岭洲,得到樹T

(5)設k=k+1坎匿,\alpha_k=\alpha盾剩,T_k=T

(6)如果T_k不是由根結點及兩個葉結點構成的樹替蔬,則回到步驟(3)告私,否則令T_k=T_n

(7)采用交叉驗證法在子樹序列T_0,T_1,\cdots,T_n中選取最優(yōu)子樹T_\alpha承桥。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末驻粟,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子凶异,更是在濱河造成了極大的恐慌蜀撑,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剩彬,死亡現場離奇詭異酷麦,居然都是意外死亡,警方通過查閱死者的電腦和手機喉恋,發(fā)現死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門沃饶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來母廷,“玉大人,你說我怎么就攤上這事糊肤∏倮ィ” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵轩褐,是天一觀的道長椎咧。 經常有香客問我玖详,道長把介,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任蟋座,我火速辦了婚禮拗踢,結果婚禮上,老公的妹妹穿的比我還像新娘向臀。我一直安慰自己巢墅,他們只是感情好,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布券膀。 她就那樣靜靜地躺著君纫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芹彬。 梳的紋絲不亂的頭發(fā)上蓄髓,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天,我揣著相機與錄音舒帮,去河邊找鬼会喝。 笑死,一個胖子當著我的面吹牛玩郊,可吹牛的內容都是我干的肢执。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼译红,長吁一口氣:“原來是場噩夢啊……” “哼预茄!你這毒婦竟也來了?” 一聲冷哼從身側響起侦厚,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤耻陕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后假夺,有當地人在樹林里發(fā)現了一具尸體淮蜈,經...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年已卷,在試婚紗的時候發(fā)現自己被綠了梧田。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖裁眯,靈堂內的尸體忽然破棺而出鹉梨,到底是詐尸還是另有隱情,我是刑警寧澤穿稳,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布存皂,位于F島的核電站,受9級特大地震影響逢艘,放射性物質發(fā)生泄漏旦袋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一它改、第九天 我趴在偏房一處隱蔽的房頂上張望疤孕。 院中可真熱鬧,春花似錦央拖、人聲如沸祭阀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽专控。三九已至,卻和暖如春遏餐,著一層夾襖步出監(jiān)牢的瞬間伦腐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工境输, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蔗牡,地道東北人。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓嗅剖,卻偏偏與公主長得像辩越,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子信粮,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350