邏輯回歸(Logistic Regression)

一、分類(lèi)問(wèn)題

在分類(lèi)問(wèn)題中叁扫,你要預(yù)測(cè)的變量 y 是離散的值卵酪,我們將學(xué)習(xí)一種叫做邏輯回歸 (Logistic Regression) 的算法的诵,這是目前最流行使用最廣泛的一種學(xué)習(xí)算法。
在分類(lèi)問(wèn)題中匪补,我們嘗試預(yù)測(cè)的是結(jié)果是否屬于某一個(gè)類(lèi)(例如正確或錯(cuò)誤)伞辛。分類(lèi)問(wèn)題的例子有:判斷一封電子郵件是否是垃圾郵件;判斷一次金融交易是否是欺詐夯缺;之前我們也談到了腫瘤分類(lèi)問(wèn)題的例子蚤氏,區(qū)別一個(gè)腫瘤是惡性的還是良性的。
我們將因變量(dependent variable)可能屬于的兩個(gè)類(lèi)分別稱為負(fù)向類(lèi)(negative class)和正向類(lèi)(positive class)踊兜,則因變量{ 0,1 } 竿滨,其中 0 表示負(fù)向類(lèi),1 表示正向類(lèi)捏境。


如果我們要用線性回歸算法來(lái)解決一個(gè)分類(lèi)問(wèn)題于游,對(duì)于分類(lèi), y 取值為 0 或者1垫言,但如果你使用的是線性回歸贰剥,那么假設(shè)函數(shù)的輸出值可能遠(yuǎn)大于 1,或者遠(yuǎn)小于0筷频,即使所有訓(xùn)練樣本的標(biāo)簽 y 都等于 0 或 1蚌成。盡管我們知道標(biāo)簽應(yīng)該取值0 或者1柱告,但是如果算法得到的值遠(yuǎn)大于1或者遠(yuǎn)小于0的話,就會(huì)感覺(jué)很奇怪笑陈。所以我們?cè)诮酉聛?lái)的要研究的算法就叫做邏輯回歸算法,這個(gè)算法的性質(zhì)是:它的輸出值永遠(yuǎn)在0到 1 之間葵袭。

順便說(shuō)一下涵妥,邏輯回歸算法是分類(lèi)算法,我們將它作為分類(lèi)算法使用坡锡。有時(shí)候可能因?yàn)檫@個(gè)算法的名字中出現(xiàn)了“回歸”使你感到困惑蓬网,但邏輯回歸算法實(shí)際上是一種分類(lèi)算法,它適用于標(biāo)簽 y 取值離散的情況鹉勒,如:1 0 0 1帆锋。

二、假說(shuō)表示

在這段視頻中禽额,我要給你展示假設(shè)函數(shù)的表達(dá)式锯厢,也就是說(shuō),在分類(lèi)問(wèn)題中脯倒,要用什么樣的函數(shù)來(lái)表示我們的假設(shè)实辑。此前我們說(shuō)過(guò),希望我們的分類(lèi)器的輸出值在0和1之間藻丢,因此剪撬,我們希望想出一個(gè)滿足某個(gè)性質(zhì)的假設(shè)函數(shù),這個(gè)性質(zhì)是它的預(yù)測(cè)值要在0和1之間悠反。
我們引入一個(gè)新的模型残黑,邏輯回歸,該模型的輸出變量范圍始終在0和1之間斋否。 邏輯回歸模型的假設(shè)是: h_\theta \left( x \right)=g\left(\theta^{T}X \right) 其中: X 代表特征向量 g 代表邏輯函數(shù)(logistic function)是一個(gè)常用的邏輯函數(shù)為S形函數(shù)(Sigmoid function)梨水,公式為: g\left( z \right)=\frac{1}{1+{{e}^{-z}}}
該函數(shù)的圖像為:

合起來(lái)茵臭,我們得到邏輯回歸模型的假設(shè):

對(duì)模型的理解: g\left( z \right)=\frac{1}{1+{{e}^{-z}}}冰木。

h_\theta \left( x \right)的作用是,對(duì)于給定的輸入變量笼恰,根據(jù)選擇的參數(shù)計(jì)算輸出變量=1的可能性(estimated probablity)即h_\theta \left( x \right)=P\left( y=1|x;\theta \right) 例如踊沸,如果對(duì)于給定的x,通過(guò)已經(jīng)確定的參數(shù)計(jì)算得出h_\theta \left( x \right)=0.7社证,則表示有70%的幾率y為正向類(lèi)逼龟,相應(yīng)地y為負(fù)向類(lèi)的幾率為1-0.7=0.3。

三追葡、邊界判定

現(xiàn)在講下決策邊界(decision boundary)的概念腺律。這個(gè)概念能更好地幫助我們理解邏輯回歸的假設(shè)函數(shù)在計(jì)算什么奕短。

在邏輯回歸中,我們預(yù)測(cè):

當(dāng){h_\theta}\left( x \right)>=0.5時(shí)匀钧,預(yù)測(cè) y=1翎碑。

當(dāng){h_\theta}\left( x \right)<0.5時(shí),預(yù)測(cè) y=0 之斯。

根據(jù)上面繪制出的 S 形函數(shù)圖像日杈,我們知道當(dāng)

z=0 時(shí) g(z)=0.5

z>0 時(shí) g(z)>0.5

z<0 時(shí) g(z)<0.5

z={\theta^{T}}x ,即: {\theta^{T}}x>=0 時(shí)佑刷,預(yù)測(cè) y=1 {\theta^{T}}x<0 時(shí)莉擒,預(yù)測(cè) y=0
現(xiàn)在假設(shè)我們有一個(gè)模型:


并且參數(shù)\theta 是向量[-3 1 1]。 則當(dāng)-3+{x_1}+{x_2} \geq 0瘫絮,即{x_1}+{x_2} \geq 3時(shí)涨冀,模型將預(yù)測(cè) y=1。 我們可以繪制直線{x_1}+{x_2} = 3麦萤,這條線便是我們模型的分界線鹿鳖,將預(yù)測(cè)為1的區(qū)域和預(yù)測(cè)為 0的區(qū)域分隔開(kāi)。

假使我們的數(shù)據(jù)呈現(xiàn)這樣的分布情況壮莹,怎樣的模型才能適合呢栓辜?

因?yàn)樾枰们€才能分隔 y=0 的區(qū)域和 y=1 的區(qū)域,我們需要二次方特征:{h_\theta}\left( x \right)=g\left( {\theta_0}+{\theta_1}{x_1}+{\theta_{2}}{x_{2}}+{\theta_{3}}x_{1}^{2}+{\theta_{4}}x_{2}^{2} \right)是[-1 0 0 1 1]垛孔,則我們得到的判定邊界恰好是圓點(diǎn)在原點(diǎn)且半徑為1的圓形藕甩。

我們可以用非常復(fù)雜的模型來(lái)適應(yīng)非常復(fù)雜形狀的判定邊界。

四周荐、代價(jià)函數(shù)

我們要介紹如何擬合邏輯回歸模型的參數(shù)\theta狭莱。具體來(lái)說(shuō),我要定義用來(lái)擬合參數(shù)的優(yōu)化目標(biāo)或者叫代價(jià)函數(shù)概作,這便是監(jiān)督學(xué)習(xí)問(wèn)題中的邏輯回歸模型的擬合問(wèn)題腋妙。


對(duì)于線性回歸模型,我們定義的代價(jià)函數(shù)是所有模型誤差的平方和讯榕。理論上來(lái)說(shuō)骤素,我們也可以對(duì)邏輯回歸模型沿用這個(gè)定義,但是問(wèn)題在于愚屁,當(dāng)我們將{h_\theta}\left( x \right)=\frac{1}{1+{e^{-\theta^{T}x}}}帶入到這樣定義了的代價(jià)函數(shù)中時(shí)济竹,我們得到的代價(jià)函數(shù)將是一個(gè)非凸函數(shù)(non-convexfunction)。

這意味著我們的代價(jià)函數(shù)有許多局部最小值霎槐,這將影響梯度下降算法尋找全局最小值送浊。

線性回歸的代價(jià)函數(shù)為:J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{1}{2}{{\left( {h_\theta}\left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}} 。 我們重新定義邏輯回歸的代價(jià)函數(shù)為:J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{{Cost}\left( {h_\theta}\left( {x}^{\left( i \right)} \right),{y}^{\left( i \right)} \right)}丘跌,其中


{h_\theta}\left( x \right)Cost\left( {h_\theta}\left( x \right),y \right)之間的關(guān)系如下圖所示:

這樣構(gòu)建的Cost\left( {h_\theta}\left( x \right),y \right)函數(shù)的特點(diǎn)是:當(dāng)實(shí)際的 y=1{h_\theta}\left( x \right)也為 1 時(shí)誤差為 0袭景,當(dāng) y=1{h_\theta}\left( x \right)不為1時(shí)誤差隨著{h_\theta}\left( x \right)變小而變大唁桩;當(dāng)實(shí)際的 y=0{h_\theta}\left( x \right)也為 0 時(shí)代價(jià)為 0,當(dāng)y=0{h_\theta}\left( x \right)不為 0時(shí)誤差隨著 {h_\theta}\left( x \right)的變大而變大耸棒。 將構(gòu)建的 Cost\left( {h_\theta}\left( x \right),y \right)簡(jiǎn)化如下: Cost\left( {h_\theta}\left( x \right),y \right)=-y\times log\left( {h_\theta}\left( x \right) \right)-(1-y)\times log\left( 1-{h_\theta}\left( x \right) \right) 帶入代價(jià)函數(shù)得到: J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]} 即:J\left( \theta \right)=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]}
在得到這樣一個(gè)代價(jià)函數(shù)以后荒澡,我們便可以用梯度下降算法來(lái)求得能使代價(jià)函數(shù)最小的參數(shù)了。算法為:

Repeat { \theta_j := \theta_j - \alpha \frac{\partial}{\partial\theta_j} J(\theta) (simultaneously update all ) }

求導(dǎo)后得到:

Repeat { \theta_j := \theta_j - \alpha \frac{1}{m}\sum\limits_{i=1}^{m}{{\left( {h_\theta}\left( \mathop{x}^{\left( i \right)} \right)-\mathop{y}^{\left( i \right)} \right)}}\mathop{x}_{j}^{(i)} (simultaneously update all ) }

在這個(gè)視頻中与殃,我們定義了單訓(xùn)練樣本的代價(jià)函數(shù)单山,凸性分析的內(nèi)容是超出這門(mén)課的范圍的,但是可以證明我們所選的代價(jià)值函數(shù)會(huì)給我們一個(gè)凸優(yōu)化問(wèn)題奈籽。代價(jià)函數(shù)J(\theta)會(huì)是一個(gè)凸函數(shù),并且沒(méi)有局部最優(yōu)值鸵赫。

推導(dǎo)過(guò)程:

J\left( \theta \right)=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]} 考慮: {h_\theta}\left( {{x}^{(i)}} \right)=\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} 則: {{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right) ={{y}^{(i)}}\log \left( \frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right) =-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^T}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^T}{{x}^{(i)}}}} \right)

所以: \frac{\partial }{\partial {\theta_{j}}}J\left( \theta \right)=\frac{\partial }{\partial {\theta_{j}}}[-\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^{T}}{{x}^{(i)}}}} \right)]}] =-\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\frac{-x_{j}^{(i)}{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}{1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}}] =-\frac{1}{m}\sum\limits_{i=1}^{m}{{y}^{(i)}}\frac{x_j^{(i)}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}] =-\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{{{y}^{(i)}}x_j^{(i)}-x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}+{{y}^{(i)}}x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}} =-\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{{{y}^{(i)}}\left( 1\text{+}{{e}^{{\theta^T}{{x}^{(i)}}}} \right)-{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}x_j^{(i)}} =-\frac{1}{m}\sum\limits_{i=1}^{m}{({{y}^{(i)}}-\frac{{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}} =-\frac{1}{m}\sum\limits_{i=1}^{m}{({{y}^{(i)}}-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}} =-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}-{h_\theta}\left( {{x}^{(i)}} \right)]x_j^{(i)}} =\frac{1}{m}\sum\limits_{i=1}^{m}{[{h_\theta}\left( {{x}^{(i)}} \right)-{{y}^{(i)}}]x_j^{(i)}}

注:雖然得到的梯度下降算法表面上看上去與線性回歸的梯度下降算法一樣衣屏,但是這里的{h_\theta}\left( x \right)=g\left( {\theta^T}X \right)與線性回歸中不同,所以實(shí)際上是不一樣的辩棒。另外狼忱,在運(yùn)行梯度下降算法之前,進(jìn)行特征縮放依舊是非常必要的一睁。

五钻弄、使用scikit-learn實(shí)現(xiàn)邏輯回歸

import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split

np.random.seed(666)
X = np.random.normal(0, 1, size=(200, 2))
y = np.array((X[:,0]**2+X[:,1])<1.5, dtype='int')
for _ in range(20):
    y[np.random.randint(200)] = 1

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
from sklearn.linear_model import LogisticRegression

log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)

log_reg.score(X_train, y_train)
#0.79333333333333333
log_reg.score(X_test, y_test)
#Output:0.85999999999999999

使用多項(xiàng)式進(jìn)行邏輯回歸

from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

def PolynomialLogisticRegression(degree):
    return Pipeline([
        ('poly', PolynomialFeatures(degree=degree)),
        ('std_scaler', StandardScaler()),
        ('log_reg', LogisticRegression())
    ])
poly_log_reg = PolynomialLogisticRegression(degree=2)
poly_log_reg.fit(X_train, y_train)

poly_log_reg.score(X_train, y_train)
#Output:0.91333333333333333
poly_log_reg.score(X_test, y_test)
#Output:0.93999999999999995

六、多分類(lèi)

對(duì)于一個(gè)多類(lèi)分類(lèi)問(wèn)題者吁,我們的數(shù)據(jù)集或許看起來(lái)像這樣:


我用3種不同的符號(hào)來(lái)代表3個(gè)類(lèi)別窘俺,問(wèn)題就是給出3個(gè)類(lèi)型的數(shù)據(jù)集,我們?nèi)绾蔚玫揭粋€(gè)學(xué)習(xí)算法來(lái)進(jìn)行分類(lèi)呢复凳?
我們現(xiàn)在已經(jīng)知道如何進(jìn)行二元分類(lèi)瘤泪,可以使用邏輯回歸,對(duì)于直線或許你也知道育八,可以將數(shù)據(jù)集一分為二為正類(lèi)和負(fù)類(lèi)对途。用一對(duì)多的分類(lèi)思想,我們可以將其用在多類(lèi)分類(lèi)問(wèn)題上髓棋。
下面將介紹如何進(jìn)行一對(duì)多的分類(lèi)工作实檀,有時(shí)這個(gè)方法也被稱為"一對(duì)余"方法。

現(xiàn)在我們有一個(gè)訓(xùn)練集按声,好比上圖表示的有3個(gè)類(lèi)別膳犹,我們用三角形表示 y=1,方框表示y=2签则,叉叉表示 y=3镣奋。我們下面要做的就是使用一個(gè)訓(xùn)練集,將其分成3個(gè)二元分類(lèi)問(wèn)題怀愧。

我們先從用三角形代表的類(lèi)別1開(kāi)始侨颈,實(shí)際上我們可以創(chuàng)建一個(gè)余赢,新的"偽"訓(xùn)練集,類(lèi)型2和類(lèi)型3定為負(fù)類(lèi)哈垢,類(lèi)型1設(shè)定為正類(lèi)妻柒,我們創(chuàng)建一個(gè)新的訓(xùn)練集,如下圖所示的那樣耘分,我們要擬合出一個(gè)合適的分類(lèi)器举塔。



這里的三角形是正樣本,而圓形代表負(fù)樣本求泰⊙朐可以這樣想,設(shè)置三角形的值為1渴频,圓形的值為0芽丹,下面我們來(lái)訓(xùn)練一個(gè)標(biāo)準(zhǔn)的邏輯回歸分類(lèi)器,這樣我們就得到一個(gè)正邊界卜朗。

為了能實(shí)現(xiàn)這樣的轉(zhuǎn)變拔第,我們將多個(gè)類(lèi)中的一個(gè)類(lèi)標(biāo)記為正向類(lèi)(y=1),然后將其他所有類(lèi)都標(biāo)記為負(fù)向類(lèi)场钉,這個(gè)模型記作h_\theta^{\left( 1 \right)}\left( x \right)蚊俺。接著,類(lèi)似地第我們選擇另一個(gè)類(lèi)標(biāo)記為正向類(lèi)(y=2)逛万,再將其它類(lèi)都標(biāo)記為負(fù)向類(lèi)泳猬,將這個(gè)模型記作 h_\theta^{\left( 2 \right)}\left( x \right),依此類(lèi)推。 最后我們得到一系列的模型簡(jiǎn)記為: h_\theta^{\left( i \right)}\left( x \right)=p\left( y=i|x;\theta \right)其中:i=\left( 1,2,3....k \right)

最后宇植,在我們需要做預(yù)測(cè)時(shí)暂殖,我們將所有的分類(lèi)機(jī)都運(yùn)行一遍,然后對(duì)每一個(gè)輸入變量当纱,都選擇最高可能性的輸出變量呛每。

總之,我們已經(jīng)把要做的做完了坡氯,現(xiàn)在要做的就是訓(xùn)練這個(gè)邏輯回歸分類(lèi)器:h_\theta^{\left( i \right)}\left( x \right)晨横, 其中 i 對(duì)應(yīng)每一個(gè)可能的 y=i,最后箫柳,為了做出預(yù)測(cè)手形,我們給出輸入一個(gè)新的 x 值,用這個(gè)做預(yù)測(cè)悯恍。我們要做的就是在我們?nèi)齻€(gè)分類(lèi)器里面輸入 x库糠,然后我們選擇一個(gè)讓 h_\theta^{\left( i \right)}\left( x \right) 最大的i,即\mathop{\max}\limits_i,h_\theta^{\left( i \right)}\left( x \right)

你現(xiàn)在知道了基本的挑選分類(lèi)器的方法瞬欧,選擇出哪一個(gè)分類(lèi)器是可信度最高效果最好的贷屎,那么就可認(rèn)為得到一個(gè)正確的分類(lèi),無(wú)論i值是多少艘虎,我們都有最高的概率值唉侄,我們預(yù)測(cè)y就是那個(gè)值。這就是多類(lèi)別分類(lèi)問(wèn)題野建,以及一對(duì)多的方法属划,通過(guò)這個(gè)小方法,你現(xiàn)在也可以將邏輯回歸分類(lèi)器用在多類(lèi)分類(lèi)的問(wèn)題上候生。

使用scikit實(shí)現(xiàn)多分類(lèi)
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets

iris = datasets.load_iris()
X = iris.data[:,:2]
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)

from sklearn.linear_model import LogisticRegression

log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末同眯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子唯鸭,更是在濱河造成了極大的恐慌须蜗,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肿孵,死亡現(xiàn)場(chǎng)離奇詭異唠粥,居然都是意外死亡疏魏,警方通過(guò)查閱死者的電腦和手機(jī)停做,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)大莫,“玉大人蛉腌,你說(shuō)我怎么就攤上這事≈焕澹” “怎么了烙丛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)羔味。 經(jīng)常有香客問(wèn)我河咽,道長(zhǎng),這世上最難降的妖魔是什么赋元? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任忘蟹,我火速辦了婚禮,結(jié)果婚禮上搁凸,老公的妹妹穿的比我還像新娘媚值。我一直安慰自己,他們只是感情好护糖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布褥芒。 她就那樣靜靜地躺著,像睡著了一般嫡良。 火紅的嫁衣襯著肌膚如雪锰扶。 梳的紋絲不亂的頭發(fā)上献酗,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音少辣,去河邊找鬼凌摄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛漓帅,可吹牛的內(nèi)容都是我干的锨亏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼忙干,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼器予!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起捐迫,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤乾翔,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后施戴,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體反浓,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年赞哗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雷则。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肪笋,死狀恐怖月劈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情藤乙,我是刑警寧澤猜揪,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站坛梁,受9級(jí)特大地震影響而姐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜划咐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一拴念、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尖殃,春花似錦丈莺、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春俐载,著一層夾襖步出監(jiān)牢的瞬間蟹略,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工遏佣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挖炬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓状婶,卻偏偏與公主長(zhǎng)得像意敛,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子膛虫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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