提升方法

提升方法

  • 提升方法 AdaBoost 算法
  • AdaBoost算法的訓(xùn)練誤差分析
  • AdaBoost算法的解釋
  • 提升樹

提升(boosting)方法是一種常用的統(tǒng)計(jì)學(xué)習(xí)方法,應(yīng)用廣泛且有效倒淫。在分類問題中庐舟,它通過改變訓(xùn)練樣本的權(quán)重,學(xué)習(xí)多個(gè)分類器伯襟,并將這些分類器進(jìn)行線性組合啃匿,提高分類的性能。

提升方法 AdaBoost 算法

  1. 提升方法基于這樣一種思想:對(duì)于一個(gè)復(fù)雜任務(wù)來說雷蹂,將多個(gè)專家的判斷進(jìn)行適當(dāng)?shù)木C合所得出的判斷伟端,要比其中任何一個(gè)專家單獨(dú)的判斷好。實(shí)際上匪煌,就是“三個(gè)臭皮匠頂個(gè)諸葛亮”的道理责蝠。

  2. 對(duì)于分類問題而言,給定一個(gè)訓(xùn)練樣本集萎庭,求比較粗糙的分類規(guī)則(弱分類器)要比求精確的分類規(guī)則(強(qiáng)分類器)容易得多霜医。提升方法就是從弱學(xué)習(xí)算法出發(fā),反復(fù)學(xué)習(xí)驳规,得到一系列弱分類器(又稱為基本分類器)肴敛,然后組合這些弱分類器,構(gòu)成一個(gè)強(qiáng)分類器吗购。大多數(shù)的提升方法都是改變訓(xùn)練數(shù)據(jù)的概率分布(訓(xùn)練數(shù)據(jù)的權(quán)值分布)医男,針對(duì)不同的訓(xùn)練數(shù)據(jù)分布調(diào)用弱學(xué)習(xí)算法學(xué)習(xí)一系列弱分類器。

  3. 這樣捻勉,對(duì)提升方法來說镀梭,有兩個(gè)問題需要回答:一是在每一輪如何改變訓(xùn)練數(shù)據(jù)的權(quán)值或概率分布;二是如何將弱分類器組合成一個(gè)強(qiáng)分類器贯底。關(guān)于第1個(gè)問題丰辣,AdaBoost的做法是,提高那些被前一輪弱分類器錯(cuò)誤分類樣本的權(quán)值禽捆,而降低那些被正確分類樣本的權(quán)值笙什。這樣一來,那些沒有得到正確分類的數(shù)據(jù)胚想,由于其權(quán)值的加大而受到后一輪的弱分類器的更大關(guān)注琐凭。于是,分類問題被一系列的弱分類器“分而治之”浊服。至于第2個(gè)問題统屈,即弱分類器的組合,AdaBoost采取加權(quán)多數(shù)表決的方法牙躺。具體地愁憔,加大分類誤差率小的弱分類器的權(quán)值,使其在表決中起較大的作用孽拷,減小分類誤差率大的弱分類器的權(quán)值吨掌,使其在表決中起較小的作用。

  4. 現(xiàn)在敘述 AdaBoost 算法。假設(shè)給定一個(gè)二類分類的訓(xùn)練數(shù)據(jù)集
    T = \{(x_1,y_i),(x_2,y_2),...,(x_N,y_N)\}
    其中膜宋,每個(gè)樣本點(diǎn)由實(shí)例與標(biāo)記組成窿侈。實(shí)例 x_i \in X \subset R^n,標(biāo)記 y_i \in Y = \{-1, + 1\}秋茫, X 是實(shí)例空間史简, Y 是標(biāo)記集合。
    輸出:最終分類器 G(x)


    1>> 初始化訓(xùn)練數(shù)據(jù)的權(quán)值分布
    D_1 = (\omega_{11},..., \omega_{1i},...,\omega_{1N}), \ \ \ \omega_{1i} = \frac{1}{N}, \ \ \ i=1,2,...,N


    2>> 對(duì) M=1,2,...,m
    a>> 使用具有權(quán)值分布 D_m 的訓(xùn)練數(shù)據(jù)集學(xué)習(xí)肛著,得到基本分類器
    G_m(x): X \rightarrow \{-1, +1\}
    假設(shè)訓(xùn)練數(shù)據(jù)集具有均勻的權(quán)值分布圆兵,即每個(gè)訓(xùn)練樣本在基本分類器的學(xué)習(xí)中作用相同。
    b>> 計(jì)算 G_m(x) 在訓(xùn)練數(shù)據(jù)集上的分類錯(cuò)誤率
    e_m = P(G_m(x_i) \neq y_i) = \sum_{i=1}^N\omega_{mi}I(G_m(x_i)\neq y_i)
    G_m(x) 在加權(quán)的訓(xùn)練數(shù)據(jù)集上的分類誤差率是被 G_m(x) 誤分類樣本的權(quán)值之和枢贿,由此可以看出數(shù)據(jù)權(quán)值分布 D_m 與基本分類器 G_m(x) 的分類誤差率的關(guān)系衙傀。
    c>> 計(jì)算 G_m(x) 的系數(shù)
    \alpha_m = \frac{1}{2}\log\frac{1-e_m}{e_m}
    這里的對(duì)數(shù)是自然對(duì)數(shù)。當(dāng) e_m\le \frac{1}{2} 時(shí)萨咕,\alpha_m\ge0 统抬,并且\alpha_m 隨著 e_m 的減小而增大,所以分類誤差率越小的基本分類器在最終分類器中的作用越大危队。
    d>> 更新訓(xùn)練數(shù)據(jù)集的權(quán)值分布
    D_{m+1} = (\omega_{m+1, 1},...,\omega_{m+1,i},...,\omega_{m+1,N})
    \omega_{m+1,i} = \frac{\omega_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)), \ \ \ i=1,2,...,N
    這里 Z_m 是規(guī)范化因子
    Z_m = \sum_{i=1}^N \omega_{mi} exp(-\alpha_my_iG_m(x_i))
    它使 D_{m+1} 成為一個(gè)概率分布聪建。
    \omega_{m+1,i} 也可以寫成
    \omega_{m+1,i} = \begin{cases} \frac{\omega_{mi}}{Z_m} e^{-\alpha_m}, \ \ \ G_m(x_i) = y_i \\ \frac{\omega_{mi}}{Z_m} e^{\alpha_m}, \ \ \ G_m(x_i) \neq y_i \end{cases}
    由此可知,被基本分類器 G_m(x) 誤分類樣本的權(quán)值得以擴(kuò)大茫陆,而被正確分類樣本的權(quán)值卻得以縮小金麸。兩相比較,誤分類樣本的權(quán)值被放大 e^{2\alpha_m}=\frac{e_m}{1-e_m} 倍簿盅。因此挥下,誤分類樣本在下一輪學(xué)習(xí)中起更大的作用。不改變所給的訓(xùn)練數(shù)據(jù)桨醋,而不斷改變訓(xùn)練數(shù)據(jù)權(quán)值的分布棚瘟,使得訓(xùn)練數(shù)據(jù)在基本分類器的學(xué)習(xí)中起不同的作用,這是AdaBoost的一個(gè)特點(diǎn)喜最。


    3>> 構(gòu)建基本分類器的線性組合
    f(x) = \sum_{m=1}^M\alpha_mG_m(x)
    得到最終分類器
    G(x) = sign(f(x)) = sign(\sum_{m=1}^M\alpha_mG_m(x))
    線性組合 f(x) 實(shí)現(xiàn) M 個(gè)基本分類器的加權(quán)表決偎蘸。系數(shù) \alpha_m 表示了基本分類器 G_m(x) 的重要性,這里瞬内,所有 \alpha_m 之和并不為1迷雪。 f(x) 的符號(hào)決定實(shí)例 x 的類,f(x) 的絕對(duì)值表示分類的確信度虫蝶。利用基本分類器的線性組合構(gòu)建最終分類器是 AdaBoost 的另一特點(diǎn)章咧。

AdaBoost算法的訓(xùn)練誤差分析

  1. AdaBoost 最基本的性質(zhì)是它能在學(xué)習(xí)過程中不斷減少訓(xùn)練誤差,即在訓(xùn)練數(shù)據(jù)集上的分類誤差率能真。AdaBoost 算法最終分類器的訓(xùn)練誤差界為
    \frac{1}{N}\sum_{i=1}^NI(G(x_i)\neq y_i) \le \frac{1}{N}\sum_i exp(-y_if(x_i)) = \prod_m Z_m
    證明:
    當(dāng) G(x_i) \neq y_i 時(shí)赁严, y_i f(x_i) \lt 0调限,因而 exp(-y_if(x_i)) \ge 1。因此可直接推導(dǎo)出前半部分误澳。
    現(xiàn)推導(dǎo)后半部分如下
    \begin{array} \ \frac{1}{N} \sum_i exp(-y_if(x_i)) & = & \frac{1}{N} \sum_i exp(-\sum_{m=1}^M\alpha_my_iG_m(x_i)) \\ & = & \frac{1}{N} \sum_i \prod_{m=1}^M exp(-\alpha_my_iG_m(x_i))\\ & = & \sum_i \omega_{1i} \prod_{m=1}^M exp(-\alpha_my_iG_m(x_i)) \\ & = & \sum_i \frac{\omega_{2i} Z_m}{exp(-\alpha_1y_iG_1(x_i))}\prod_{m=1}^M exp(-\alpha_my_iG_m(x_i)) \\ & = & Z_1\sum_i \omega_{2i} \prod_{m=2}^M exp(-\alpha_my_iG_m(x_i)) \\ & = & Z_1Z_2 \sum_i \omega_{3i} \prod_{m=3}^M exp(-\alpha_my_iG_m(x_i)) \\ & ... \\ & = & Z_1Z_2\cdot\cdot\cdot Z_{m-1}\sum_i\omega_{Mi}exp(\alpha_My_iG_M(x_i)) \\ & = & \prod_{m=1}^MZ_m \end{array}
    這一定理說明,可以在每一輪選取適當(dāng)?shù)?G_m 使得 Z_m 最小秦躯,從而使訓(xùn)練誤差下降最快忆谓。

  2. 二類分類問題 AdaBoost 的訓(xùn)練誤差界
    \prod_{m=1}^M Z_m = \prod_{m=1}^M[2\sqrt{e_m(1-e_m)}] = \prod_{m=1}^M\sqrt{1-4\gamma_m^2} \le exp(-2\sum_{m=1}^M\gamma_m^2)
    這里 \gamma_m = \frac{1}{2}-e_m
    證明:
    \begin{array} \ Z_m & = & \sum_{i=1}^N\omega_{mi}exp(-\alpha_my_iG_m(x_i)) \\ & = & \sum_{y_i = G_m(x_i)} \omega_{mi}e^{-\alpha_m} + \sum_{y_i \neq G_m(x_i)} \omega_{mi}e^{\alpha_m} \\ & = & (1-e_m)e^{-\alpha_m} + e_me^{\alpha_m} \\ & = & \sqrt{(1-e_m)^2e^{-\frac{1-e_m}{e_m}} + e_m^2e^{\frac{1-e_m}{e_m}}+2e_m(1-e_m)} \\ & = & 2\sqrt{e_m(1-e_m)} \\ & = & \sqrt{1-4\gamma_m^2} \end{array}
    至于不等式
    \prod_{m=1}^M\sqrt{1-4\gamma_m^2} \le exp(-2\sum_{m=1}^M\gamma_m^2)
    可先由 e^x\sqrt{1-x} 在點(diǎn) x=0 的泰勒展開式推出 \sqrt{1-4\gamma_m^2} \le exp(-2\gamma_m^2) 進(jìn)而得到踱承。

  3. 二類分類問題,如果存在 \gamma \gt 0倡缠,對(duì)所有 m\gamma_m \gt \gamma,則
    \frac{1}{N}\sum_{i=1}^NI(G(x_i)\neq y_i) \le exp(-2M\gamma^2)
    這表明在此條件下 AdaBoost 的訓(xùn)練誤差是以指數(shù)速率下降的茎活。

  4. AdaBoost 具有適應(yīng)性昙沦,即它能適應(yīng)弱分類器各自的訓(xùn)練誤差率。這也是它的名稱(適應(yīng)的提升)的由來载荔,Ada 是Adaptive 的簡(jiǎn)寫盾饮。

AdaBoost算法的解釋

  1. AdaBoost 算法還有另一個(gè)解釋,即可以認(rèn)為 AdaBoost 算法是模型為加法模型懒熙、損失函數(shù)為指數(shù)函數(shù)丘损、學(xué)習(xí)算法為前向分步算法時(shí)的二類分類學(xué)習(xí)方法。

  2. 考慮加法模型
    f(x) = \sum_{m=1}^M\beta_mb(x;\gamma_m)
    其中工扎, b(x;\gamma_m) 為基函數(shù)徘钥, \gamma_m 為基函數(shù)的參數(shù),\beta_m 為基函數(shù)的系數(shù)肢娘。
    在給定訓(xùn)練數(shù)據(jù)及損失函數(shù) L(Y,f(X)) 的條件下呈础,學(xué)習(xí)加法模型 f(x) 成為經(jīng)驗(yàn)風(fēng)險(xiǎn)極小化即損失函數(shù)極小化問題:
    min_{\beta_m,\gamma_m} \ \ \ \ \ \sum_{i=1}^NL(y_i, \sum_{m=1}^M\beta_mb(x_i;\gamma_m))
    通常這是一個(gè)復(fù)雜的優(yōu)化問題。前向分步算法(forward stagewise algorithm)求解這一優(yōu)化問題的想法是:因?yàn)閷W(xué)習(xí)的是加法模型橱健,如果能夠從前向后而钞,每一步只學(xué)習(xí)一個(gè)基函數(shù)及其系數(shù),逐步逼近優(yōu)化目標(biāo)函數(shù)式拘荡,那么就可以簡(jiǎn)化優(yōu)化的復(fù)雜度笨忌。具體地,每步只需優(yōu)化如下?lián)p失函數(shù):
    min_{\beta,\gamma} \ \ \ \ \ \sum_{i=1}^NL(y_i, \beta b(x_i;\gamma))

  3. 前向分步算法
    輸入:訓(xùn)練數(shù)據(jù)集 T=\{(x_1俱病,y_1),(x_2,y_2),...,(x_N,y_N)\}官疲,損失函數(shù) L(Y, f(x));基函數(shù)集 \{b(x;\gamma)\}亮隙;
    輸出:加法模型 f(x)途凫。
    1>> 初始化 f_0(x) = 0
    2>> 對(duì) m=1,2,...,M
    a>> 極小化損失函數(shù)
    (\beta_m,\gamma_m) = arg \ min_{\beta,\gamma}\ \ \sum_{i=1}^NL(y_i, f_{m-1}(x_i) + \beta b(x_i;\gamma))
    得到參數(shù) \beta_m, \gamma_m
    b>> 更新
    f_m(x) = f_{m-1}(x) + \beta_mb(x;\gamma_m)
    3>> 得到加法模型
    f(x) = f_M(x) = \sum_{m=1}^M\beta_mb(x;\gamma_m)
    這樣,前向分步算法將同時(shí)求解從 m=1M 所有參數(shù) \beta_m溢吻,\gamma_m 的優(yōu)化問題簡(jiǎn)化為逐次求解各個(gè) \beta_m维费,\gamma_m 的優(yōu)化問題果元。

  4. AdaBoost 算法是前向分歩加法算法的特例。這時(shí)犀盟,模型是由基本分類器組成的加法模型而晒,損失函數(shù)是指數(shù)函數(shù)。

提升樹

  1. 提升樹是以分類樹或回歸樹為基本分類器的提升方法阅畴。提升樹被認(rèn)為是統(tǒng)計(jì)學(xué)習(xí)中性能最好的方法之一倡怎。

  2. 以決策樹為基函數(shù)的提升方法稱為提升樹(boosting tree)。對(duì)分類問題決策樹是二叉分類樹贱枣,對(duì)回歸問題決策樹是二叉回歸樹监署。

  3. 提升樹模型可以表示為決策樹的加法模型
    F_M(x) = \sum_{m=1}^MT(x;\Theta_m)
    其中,T(x;\Theta_m) 表示決策樹纽哥;\Theta_m 為決策樹的參數(shù)钠乏;M 為樹的個(gè)數(shù)。

  4. 提升樹算法采用前向分步算法春塌。首先確定初始提升樹 f_0(x)=0晓避,第 m 步的模型是
    f_m(x) = f_{m-1}(x) + T(x;\Theta_m)
    其中, f_{m-1}(x) 為當(dāng)前模型只壳,通過經(jīng)驗(yàn)風(fēng)險(xiǎn)極小化確定下一顆決策樹的參數(shù) \Theta_m够滑,
    \hat{\Theta}_m = arg \ min_{\Theta_m} \sum_{i=1}^NL(y_i,f_{m-1}(x_i) + T(x_i;\Theta_m))
    由于樹的線性組合可以很好地?cái)M合訓(xùn)練數(shù)據(jù),即使數(shù)據(jù)中的輸入與輸出之間的關(guān)系很復(fù)雜也是如此吕世,所以提升樹是一個(gè)高功能的學(xué)習(xí)算法彰触。

  5. 已知一個(gè)訓(xùn)練數(shù)據(jù)集 T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}命辖,x_i \in X \subset R^n况毅,y_i \in Y \subset R。在決策樹部分已經(jīng)討論了回歸樹問題尔艇。如果將輸入空間 X 劃分為 J 個(gè)互不相交的區(qū)域 R_1,R_2,...,R_J尔许,并且在每個(gè)區(qū)域上確定輸出的常量 c_j,那么樹可以表示為
    T(x;\Theta) = \sum_{j=1}^Jc_jI(x \in R_j)
    其中终娃,參數(shù) \Theta = \{(R_1,c_1),(R_2,c_2),...,(R_J,c_J)\} 表示樹的區(qū)域劃分和各區(qū)域上的常數(shù)味廊。J 是回歸樹的復(fù)雜度即葉結(jié)點(diǎn)個(gè)數(shù)。
    回歸問題提升樹使用以下前向分步算法:
    \begin{array} \ f_0(x) = 0 \\ f_m(x) = f_{m-1}(x) + T(x;\Theta_m),\ \ \ m=1,2,...,M \\ f_M(x) = \sum_{m=1}^MT(x;\Theta_m) \end{array}
    在前向分步算法的第 m 步棠耕,給定當(dāng)前模型 f_{m-1(x)}余佛,需求解
    \hat{\Theta}_m = arg \ min_{\Theta_m} \sum_{i=1}^NL(y_i,f_{m-1}(x_i) + T(x_i;\Theta_m))
    得到 \hat{\Theta}_m,即第 m 棵樹的參數(shù)窍荧。
    當(dāng)采用平方誤差損失函數(shù)時(shí)辉巡,
    L(y,f(x)) = (y-f(x))^2
    其損失變?yōu)?br> L(y_i,f_{m-1}(x_i) + T(x_i;\Theta_m)) = [y-f_{m-1}(x)-T(x;\Theta_m)]^2=[r-T(x;\Theta_m)]^2
    這里,r = y-f_{m-1}(x) 是當(dāng)前模型擬合數(shù)據(jù)的殘差(residual)蕊退。所以郊楣,對(duì)回歸問題的提升樹算法來說憔恳,只需簡(jiǎn)單地?cái)M合當(dāng)前模型的殘差。這樣净蚤,算法是相當(dāng)簡(jiǎn)單的钥组。

  6. 回歸問題的提升樹算法
    輸入:訓(xùn)練數(shù)據(jù)集 T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}今瀑,x_i \in X \subset R^n程梦,y_i \in Y \subset R
    輸出:提升樹 f_M(x)放椰。
    1>> 初始化 f_0(x)=0
    2>> 對(duì) m=1,2,...,M
    a>> 計(jì)算殘差 r_{mi} = y_i-f_{m-1}(x_i),\ \ \ i=1,2,...,N
    b>> 擬合殘差 r_{mi} 學(xué)習(xí)一個(gè)回歸樹,得到 T(x; \Theta_m)
    c>> 更新 f_m(x)=f_{m-1}(x)+T(x;\Theta_m)
    3>> 得到回歸提升樹
    f_M(x) = \sum_{m=1}^MT(x;\Theta_m)

  7. 提升樹利用加法模型與前向分歩算法實(shí)現(xiàn)學(xué)習(xí)的優(yōu)化過程愉粤。當(dāng)損失函數(shù)是平方損失和指數(shù)損失函數(shù)時(shí)砾医,每一步優(yōu)化是很簡(jiǎn)單的。但對(duì)一般損失函數(shù)而言衣厘,往往每一步優(yōu)化并不那么容易如蚜。針對(duì)這一問題,F(xiàn)reidman提出了梯度提升(gradient boosting)算法影暴。這是利用最速下降法的近似方法错邦,其關(guān)鍵是利用損失函數(shù)的負(fù)梯度在當(dāng)前模型的值
    -[\frac{\partial L(y,f(x_i))}{\partial f(x_i)}]_{f(x)=f_{m-1}(x)}
    作為回歸問題提升樹算法中的殘差的近似值,擬合一個(gè)回歸樹型宙。

  8. 梯度提升算法
    輸入:訓(xùn)練數(shù)據(jù)集 T=\{(x_1撬呢,y_1),(x_2,y_2),...,(x_N,y_N)\}x_i \in X \subset R^n妆兑,y_i \in Y \subset R魂拦;損失函數(shù) L(Y,f(x))
    輸出:回歸樹 \hat{f}(x)搁嗓。
    1>> 初始化
    f_0(x) = arg \ min_c \ \sum_{i=1}^NL(y_i, c)
    估計(jì)使損失函數(shù)極小化的常數(shù)值芯勘,它是只有一個(gè)根結(jié)點(diǎn)的樹。
    2>> 對(duì) m=1,2,...,M
    a>> 對(duì) i=1,2,...,N腺逛,計(jì)算
    r_{mi} = -[\frac{\partial L(y_i,f(x_i))}{\partial f(x_i)}]_{f(x)=f_{m-1}(x)}
    計(jì)算損失函數(shù)的負(fù)梯度在當(dāng)前模型的值荷愕,將它作為殘差的估計(jì)。對(duì)于平方損失函數(shù)棍矛,它就是通常所說的殘差安疗;對(duì)于一般損失函數(shù),它就是殘差的近似值够委。
    b>> 對(duì) r_{mi} 擬合一個(gè)回歸樹茂契,得到第 m 棵樹的葉結(jié)點(diǎn)區(qū)域 R_{mj}j=1,2,…,J
    估計(jì)回歸樹葉結(jié)點(diǎn)區(qū)域慨绳,以擬合殘差的近似值掉冶。
    c>> 對(duì) j=1,2,...,J真竖,計(jì)算
    c_{mj} = arg \ min_c \ \sum_{x_i \in R_{mj}} L(y_i, f_{m-1}(x_i)+c)
    利用線性搜索估計(jì)葉結(jié)點(diǎn)區(qū)域的值,使損失函數(shù)極小化厌小。
    d>> 更新 f_m(x) = f_{m-1}(x) + \sum_{j=1}^Jc_{mj}I(x\in R_{mj})
    3>> 得到回歸樹
    \hat{f}(x) = f_M(x)= \sum_{m=1}^M\sum_{j=1}^Jc_{mj}I(x\in R_{mj})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末恢共,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子璧亚,更是在濱河造成了極大的恐慌讨韭,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癣蟋,死亡現(xiàn)場(chǎng)離奇詭異透硝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)疯搅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門濒生,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人幔欧,你說我怎么就攤上這事罪治。” “怎么了礁蔗?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵觉义,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我浴井,道長(zhǎng)晒骇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任磺浙,我火速辦了婚禮厉碟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屠缭。我一直安慰自己箍鼓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布呵曹。 她就那樣靜靜地躺著款咖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奄喂。 梳的紋絲不亂的頭發(fā)上铐殃,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音跨新,去河邊找鬼富腊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛域帐,可吹牛的內(nèi)容都是我干的赘被。 我是一名探鬼主播是整,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼民假!你這毒婦竟也來了浮入?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤羊异,失蹤者是張志新(化名)和其女友劉穎事秀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體野舶,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡易迹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了平道。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片睹欲。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖巢掺,靈堂內(nèi)的尸體忽然破棺而出句伶,到底是詐尸還是另有隱情劲蜻,我是刑警寧澤陆淀,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站先嬉,受9級(jí)特大地震影響轧苫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜疫蔓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一含懊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧衅胀,春花似錦岔乔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至掸掏,卻和暖如春茁影,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丧凤。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工募闲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人愿待。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓浩螺,卻偏偏與公主長(zhǎng)得像靴患,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子年扩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容