基于R的欺詐交易探測 - 學(xué)習(xí)筆記

前言

友情提示摹闽,這篇文章很長,光是滑動到底部就需要好幾秒根盒,請合理安排閱讀時間钳幅。

最近在學(xué)習(xí)異常值探測(Outlier Detection)。

家里的書架上有一本叫《數(shù)據(jù)挖掘與R語言》的書炎滞,作者是Luís Torgo敢艰。這本書給出了用R做數(shù)據(jù)挖掘的四個案例,其中一個正好是欺詐交易探測厂榛。

這個案例給出的數(shù)據(jù)預(yù)處理過程非常棒盖矫,思路很值得學(xué)習(xí),所以這部分我跟著案例击奶,把處理過程自己實現(xiàn)了一遍辈双。這篇文章的前半一部分是分享這個數(shù)據(jù)預(yù)處理過程

在算法部分柜砾,作者給出了好幾類不同的異常值探測方法湃望。這篇文章的后半部分討論其中一種探測方法(局部異常因子算法),及其分析效果痰驱。

001 - 《數(shù)據(jù)挖掘與R語言》

順帶一提证芭,這本書出得早(英文版出版于2011年,中文版出版于2012年)担映,當(dāng)時一些很elegant的R庫還不成熟废士,作者在書中使用的代碼比較舊,大家如果想照著案例把分析過程實現(xiàn)一遍蝇完,我個人覺得不需要完全按作者的代碼走官硝,太繞。

然后就是短蜕,作者并不是系統(tǒng)地介紹各個數(shù)據(jù)挖掘方法氢架,而是圍繞案例,把能用到的算法都聊一遍朋魔,我個人覺得不是很適合新手岖研。(這本書是我在出國前買的,當(dāng)時對數(shù)據(jù)挖掘的概念還很模糊警检,看這本書基本上是一頭霧水孙援。當(dāng)然,現(xiàn)在依然還是不能全都看懂……)

另外扇雕,這本書的翻譯實在是太一言難盡了赃磨,機械工業(yè)出版社一生黑,對這本書非常感興趣的朋友洼裤,我極力推薦你們?nèi)タ从⑽脑妗?/p>

廢話結(jié)束邻辉,以下是我關(guān)于這個分析案例的學(xué)習(xí)筆記溪王。

數(shù)據(jù)預(yù)處理

0. 分析工具與數(shù)據(jù)來源
  • 分析工具:R
  • 主要用到的庫:tidyverseggplot2(作者沒有用這些庫值骇,而是用R的基本庫)
  • 數(shù)據(jù)來源:
library(DMwR)
data(sales)
1. 數(shù)據(jù)集

先來看看分析中使用的數(shù)據(jù)集莹菱。

002 - 使用的數(shù)據(jù)集

上圖是數(shù)據(jù)集的前14行。整個數(shù)據(jù)集一共有401146行吱瘩。

這個數(shù)據(jù)集的每一行道伟,表示一份關(guān)于某銷售員銷售某款產(chǎn)品的銷售報告,具體特征包括:

  • ID:銷售員id使碾,一個銷售員可以銷售多款產(chǎn)品蜜徽。
  • Prod:產(chǎn)品id,一款產(chǎn)品可以被多個銷售員售賣票摇。
  • Quant:銷售員上報的產(chǎn)品銷售數(shù)量拘鞋。
  • Val:銷售員上報的產(chǎn)品銷售總額。
  • Insp:報告標(biāo)簽矢门。ok - 公司檢查了該銷售報告并認(rèn)為其真實有效盆色;fraud - 公司認(rèn)為該報告為欺詐報告;unkn - 該報告未經(jīng)過公司審查祟剔。

Insp是此次欺詐交易探測任務(wù)的目標(biāo)特征隔躲,即,我們想要知道物延,在這些unkn的報告中宣旱,哪些是ok的哪些是fraud的。

2. 數(shù)據(jù)基本情況

明白數(shù)據(jù)集的基本構(gòu)成之后叛薯,現(xiàn)在我們來進一步認(rèn)識一下這份數(shù)據(jù)浑吟。

2.1 數(shù)據(jù)概述

先來summarize一下各個特征。

003 - 數(shù)據(jù)概述

報告數(shù)量最多的銷售員是v431案训,有10159份銷售報告买置;報告談及最多的產(chǎn)品是p1125粪糙,有3923份報告是關(guān)于它的强霎;在產(chǎn)品銷售量上,數(shù)據(jù)可能是right-skewed的蓉冈,注意到平均數(shù)(mean)比中位數(shù)(median)要大很多;同理,在銷售額上杭攻,數(shù)據(jù)也可能是right-tailed的钝侠;在報告標(biāo)簽方面,unkn比另兩者在數(shù)量上要大很多伐弹。

另外拉馋,注意Quant和Val是有不少缺失值的(NA's)。既然有缺失值,那么不妨順帶看一下數(shù)據(jù)集中的缺失值有什么特點(Missing Pattern):

004 - 缺失值分布特點

第2-5行煌茴、第2-6列中随闺,1表示該特征無缺失值,0表示該特征有缺失值蔓腐,由此可以得到4種不同的缺失值分布(最后一列的第2-5行):0 - 所有特征都沒有缺失值矩乐,1 - 有一個特征存在缺失值,2 - 有兩個特征存在缺失值回论。則散罕,第一列表示該缺失值分布下的樣本數(shù),最后一行表示該特征的缺失值總數(shù)傀蓉。

可以看到欧漱,在13842個Quant缺失的樣本中,有12954個樣本只在Quant這個特征上有缺失僚害;在1182個Val缺失的樣本中硫椰,有294個樣本只在Val這個特征上有缺失;此外萨蚕,共有888個樣本靶草,Quant和Val同時缺失。

2.2 Insp

接著看一下目標(biāo)特征Insp的分布情況岳遥。

005 - Insp分布情況

左圖是三類標(biāo)簽(ok奕翔、fraud、unkn)的數(shù)量分布浩蓉,可以看到派继,unkn比另外兩者要多很多(占96%)。

右圖是去掉了unkn后捻艳,ok和fraud的數(shù)量分布圖驾窟,ok和fraud樣本的數(shù)量比約為11:1。

這個情況符合異常值的特性:在一份數(shù)據(jù)集中认轨,異常值只占很少很少的一部分绅络。(這同時也是異常值探測不那么容易做的原因,占比實在太小嘁字。)

2.3 ID & Prod

這個數(shù)據(jù)集中恩急,有6016個不重復(fù)的銷售員id和4548個不重復(fù)的產(chǎn)品id。

每個銷售員id下的報告數(shù)和每款產(chǎn)品id下的報告數(shù)分布如下:

006 - 不同銷售員id下的報告數(shù)量分布(上)和不同產(chǎn)品id下的報告數(shù)量分布(下)

可以看到纪蜒,數(shù)據(jù)分布很不均勻衷恭,有些銷售員/產(chǎn)品下的報告總數(shù)明顯遠高于其他銷售員/產(chǎn)品。

3. 構(gòu)建新特征
3.1 產(chǎn)品單位價格

有銷售總量Quant和銷售總額Val纯续,我們其實可以用Val/Quant來計算每份報告的產(chǎn)品單位價格随珠。

Summarize一下這個新特征可以得到:

007 - 產(chǎn)品單位價格概述

可以看到灭袁,最小產(chǎn)品單位價格為0,最大為26460窗看,平均數(shù)(20.3)大于中位數(shù)(11.89)简卧,數(shù)據(jù)分布可能是right-skewed的。

下面來具體看一下產(chǎn)品單位價格的分布情況:

008 - 產(chǎn)品單位價格分布情況

為了更清晰地展現(xiàn)數(shù)據(jù)烤芦,我給單位價格小于200和大于200的數(shù)據(jù)分別做了直方圖举娩。

可以看到,數(shù)據(jù)非常的skewed构罗。

3.2 產(chǎn)品標(biāo)準(zhǔn)價格

上述產(chǎn)品單位價格是每份報告中Val和Quant的比值铜涉,那么一款產(chǎn)品,在不同的報告中可能會有不同的產(chǎn)品單位價格(不同Val遂唧、Quant給出不同的比值)芙代。

也就是說,每款產(chǎn)品對應(yīng)一組產(chǎn)品單位價格數(shù)據(jù)盖彭。

在這種情況下纹烹,作者用每組單位價格的中位數(shù)來代表其對應(yīng)產(chǎn)品的標(biāo)準(zhǔn)價格。

去掉極值(大于2500)的產(chǎn)品標(biāo)準(zhǔn)格分布如下:

009 - 去掉極值的產(chǎn)品標(biāo)準(zhǔn)價格分布情況

可以看到產(chǎn)品標(biāo)準(zhǔn)價格同樣是right-tailed的(median = 11.24召边,mean = 15.00)铺呵。

4. 基于Quant、Val隧熙、產(chǎn)品單位價格的極值對比

作者在案例中做了三組對比分析:

  1. 標(biāo)準(zhǔn)價格最高的5款產(chǎn)品 vs. 標(biāo)準(zhǔn)價格最低的5款產(chǎn)品
  2. 總銷售收益額最高的5個銷售員 vs. 總銷售收益額最低的5個銷售員
  3. 總銷量最高的5款產(chǎn)品 vs. 總銷售量最低的5款產(chǎn)品

這些對比是很好的BI分析片挂,可以幫助公司管理團隊做出有價值的決策。

上述三組對比通過箱型圖展示如下:

010(1) - 產(chǎn)品標(biāo)準(zhǔn)價格極值對比(左)與銷售員總銷售收益額極值對比(右)
010(2) - 產(chǎn)品總銷售額極值對比

可以看到贞盯,在每組對比中音念,最高的5個數(shù)據(jù)在數(shù)值上比最低的5個數(shù)據(jù)要高很多,說明公司的銷售情況是極其不均的躏敢。

實際上闷愤,在銷售員總銷售收益額(sum of Vals per salesperson)方面,前100的銷售員占了所有報告Val的總和的38%件余,后2000位銷售員只占了2%讥脐。而在產(chǎn)品總銷量上,前100的產(chǎn)品占了所有報告Quant的總和的75%蛾扇,后4000個產(chǎn)品只占9%攘烛。

這樣的比例構(gòu)成說明公司其實可以精簡產(chǎn)品線和銷售員隊伍魏滚。

我個人最喜歡這部分镀首,缺少商業(yè)經(jīng)驗的analyst很難在一開始就想到要做這些方面的分析,至少我是被驚艷到了鼠次。

5. 缺失值處理

在缺失值的處理上更哄,作者也分析得很細(xì)致芋齿,思路上值得學(xué)習(xí)(結(jié)論上有待進一步探討)。

回顧一下前文成翩,在所有有缺失值的樣本中觅捆,有:

  • 888個樣本在Quant和Val上都有缺失
  • 12954個樣本只在Quant上有缺失
  • 294個樣本只在Val上有缺失

先來看那888個在Quant和Val上都有缺失的樣本。這里主要是看每位銷售員或每款產(chǎn)品的Quant和Val同時缺失的報告的占比麻敌。

下圖是Quant和Val同時缺失的報告占比最大的10位銷售員:

011 - Quant和Val同時缺失的報告占比最大的10位銷售員

這些缺失比例都不是很大栅炒,最大的只有14%左右。又考慮到术羔,因為Quant和Val都缺失了赢赊,缺失值填補無從下手,所以作者認(rèn)為可以把這些樣本直接刪除级历。

下圖是Quant和Val同時缺失的報告占比最大的10款產(chǎn)品:

012 - Quant和Val同時缺失的報告占比最大的10款產(chǎn)品

可以看到释移,有幾款產(chǎn)品兩個特征同時缺失的報告比例是比較大的,p2689有近40%的報告同時缺失Quant和Val數(shù)據(jù)寥殖。在這種情況下玩讳,作者認(rèn)為用剩余報告去填補缺失信息(如用p2689剩余的60%的銷售信息去填補其40%的缺失數(shù)據(jù))是不合理的,所以這些報告也應(yīng)該直接刪除嚼贡。(這部分的解釋其實沒有說服我熏纯,中文版翻譯得亂七八糟,邏輯上我沒有想透粤策,先留個疑問在這里豆巨。)

接下來分析一下那12954份只在Quant上有缺失的樣本。

下圖是僅Quant缺失的報告占比最大的10款產(chǎn)品:

013 - 僅Quant缺失的報告占比最大的10款產(chǎn)品

p2442和p2443完全沒有Quant的信息(缺失比例為100%)掐场,所以這兩款產(chǎn)品的單位價格和標(biāo)準(zhǔn)價格都無法計算往扔,也即無法進一步通過別的特征來填補這兩款產(chǎn)品的Quant數(shù)據(jù);此外熊户,涉及p2442和p2443的一共有54份報告萍膛,其中2份標(biāo)記為fraud,其余52份標(biāo)記為ok嚷堡,說明這兩款產(chǎn)品已經(jīng)被公司做過檢測蝗罗,暫時不需要進一步進行異常預(yù)測。因此蝌戒,作者決定刪除這54份報告串塑。(其余報告保留。)

再看看僅Quant缺失的報告占比最大的10位銷售員:

014 - 僅Quant缺失的報告占比最大的10位銷售員

有5位銷售員沒有在他們的報告中填寫Quant信息北苟,但這些信息其實可以用Val/產(chǎn)品標(biāo)準(zhǔn)價格來填補(只要一款產(chǎn)品的Quant或Val不是完全缺失桩匪,其標(biāo)準(zhǔn)價格就可以被計算出來,那么某份報告缺失的Quant或Val就可以通過標(biāo)準(zhǔn)價格來計算)友鼻,所以這些樣本不刪除傻昙。

最后來分析那294個只在Val上有缺失的樣本闺骚。

來看看僅Val缺失的報告占比最大的10款產(chǎn)品:

015 - 僅Val缺失的報告占比最大的10款產(chǎn)品

比例都不是很大,可以用產(chǎn)品標(biāo)準(zhǔn)價格*Quant填補缺失的Val值妆档。

最后看僅Val缺失的報告占比最大的10位銷售員:

016 - 僅Val缺失的報告占比最大的10位銷售員

同理僻爽,可以用產(chǎn)品標(biāo)準(zhǔn)價格*Quant填補這些缺失的Val值。

總結(jié)贾惦,在缺失值處理這部分:

  1. 刪除888個在Quant和Val上均缺失的樣本和54個涉及p2442胸梆、p2443的樣本(完全沒有Quant信息);
  2. 其余僅Quant有缺失的樣本须板,通過Val/產(chǎn)品標(biāo)準(zhǔn)價格來填補其Quant缺失值乳绕;
  3. 其余僅Val有缺失的樣本,通過產(chǎn)品標(biāo)準(zhǔn)價格*Quant來填補其Val缺失值逼纸。

注意洋措,這里的產(chǎn)品標(biāo)準(zhǔn)價格是剔除被標(biāo)記為fraud的報告后,重新計算的產(chǎn)品標(biāo)準(zhǔn)價格杰刽。

缺失值處理后的數(shù)據(jù)集共有400204行菠发。

異常值檢測

進行完數(shù)據(jù)預(yù)處理之后,我們就可以開始運用具體算法進行異常值檢測(在這個案例中贺嫂,也稱為欺詐交易探測)滓鸠,主要目的是找出那些在Quant或Val上有異常數(shù)值的報告,并對這些報告的異常程度進行排序(進而依據(jù)異常程度對這些報告依次進行人工核查)第喳。

算法方面糜俗,作者在書中談到的檢測方法有:

  • 無監(jiān)督方法:基于箱圖規(guī)則(i.e. 中位數(shù)、IQR)的探測方法曲饱,局部異常因子算法(Local Outlier Factor悠抹,LOF),基于聚類的離群值排名方法
  • 有監(jiān)督方法:簡單貝葉斯扩淀,AdaBoost
  • 半監(jiān)督方法:自我訓(xùn)練模型

此外楔敌,作者沒談到但比較熱門的無監(jiān)督算法還有Isolation Forest。

這次的異常值探測我只選擇了LOF算法驻谆。下面卵凑,我簡單談?wù)凩OF,重點放在對LOF的理解和對其計算效果的討論上胜臊。

1. 數(shù)據(jù)子集

我下面只用到了整個數(shù)據(jù)集的1%來做計算勺卢,原因是我用全部數(shù)據(jù)做計算的時候R給拒絕了,說數(shù)據(jù)量過大導(dǎo)致返回結(jié)果超出內(nèi)存容量(40w+數(shù)據(jù)其實沒有很大象对,可能是算法設(shè)計不高效導(dǎo)致了這個問題)黑忱。

另外,由于LOF是無監(jiān)督方法,我個人的理解是在訓(xùn)練模型的時候不需要將數(shù)據(jù)集分為訓(xùn)練集和測試集(不一定正確)杨何,所以我沒有做數(shù)據(jù)分割。

以下是用于運算的1%的數(shù)據(jù)子集的數(shù)據(jù)概述:

017 - 計算數(shù)據(jù)概述

整個計算用到Quant沥邻、Val和產(chǎn)品標(biāo)準(zhǔn)價格3個特征危虱,數(shù)據(jù)集不存在缺失值。

2. 局部異常因子算法(Local Outlier Factor唐全,LOF)

LOF是一種基于距離的異常檢測算法埃跷,其思想主要是:

  • 通過比較每個點和其鄰域點的密度來判斷該點是否為異常點,點p的密度越低邮利,越可能被認(rèn)定是異常點弥雹;
  • 密度通過點之間的距離來計算,點之間距離越遠延届,密度越低剪勿,距離越近,密度越高方庭;
  • 因為LOF中厕吉,密度通過點的第k鄰域來計算,而不是全局計算械念,因此得名“局部”異常因子头朱。

算法計算過程的描述如下:

  1. 計算點p和其他點之間的距離;
  2. 確定第k距離和第k距離鄰域龄减;
  3. 計算點p的局部可達密度项钮,即點p的第k鄰域內(nèi)點到p的平均可達距離的倒數(shù);
  4. 計算點p的局部離群因子希停,即點p的鄰域點的平均局部可達密度與點p的局部可達密度之比烁巫。

最終,通過各點的局部離群因子可以得到數(shù)據(jù)的異常值排序宠能,某一點局的部離群因子數(shù)值越大(大于1)程拭,其越可能為異常值。

具體數(shù)學(xué)描述可以看這里棍潘。

3. 異常值檢測結(jié)果

這里恃鞋,我通過DMwR包的lofactor()函數(shù)調(diào)用LOF算法。且k取10亦歉。

3.1 基于原始特征的LOF異常值探測

首先恤浪,在不對特征進行任何處理的情況下,調(diào)用LOF做計算肴楷。

局部離群因子 Top 10 如下:

018 - 局部離群因子 Top 10

這些點的局部離群因子都大于5水由,其中排在第一位的點,其離群因子高達74.16赛蔫。

去掉局部離群因子最大點之后砂客,各點局部離群因子的直方圖如下:

019 - 基于原始特征的LOF計算結(jié)果直方圖

可以看到泥张,絕大部分點的局部離群因子小于2.5。

下面我們依據(jù)計算結(jié)果鞠值,對樣本進行離散化:局部離群因子大于2.5的點被視為異常值媚创,小于等于2.5的點為正常值。統(tǒng)計結(jié)果如下:

020 - 基于原始特征的LOF計算結(jié)果統(tǒng)計概述

可以看到彤恶,所有點的局部離群因子的中位數(shù)為1.04钞钙;在所有被計算的點中,有45個點被視為異常點(局部離群因子大于2.5)声离。

值得注意的是芒炼,統(tǒng)計結(jié)果顯示有10個點的計算結(jié)果為無窮值,有12個點的計算結(jié)果缺失术徊。出現(xiàn)無窮值的原因可能是這些點的鄰域內(nèi)存在其他點與之重合本刽,導(dǎo)致鄰域點到該點的平均可達距離為0,從而該點局部可達密度無窮大赠涮,最終使得其局部離群因子無窮大盅安。至于出現(xiàn)缺失值的原因,我暫時想不明白世囊,可能是所調(diào)用的算法在設(shè)計上有bug别瞭?

下面作散點圖看一下LOF算法下的異常值(局部離群因子大于2.5)分布情況:

021 - 基于原始特征的LOF異常值分布圖

綠色表示異常點。

左邊的圖橫軸為Quant株憾,縱軸為Val蝙寨。這張圖中,所有遠離左下角的點都被標(biāo)為綠色嗤瞎,即這些極值點都被歸為了異常點墙歪,這是我們想要看到的結(jié)果。

中間和右邊這兩張圖的橫軸分別為Quant和Val贝奇,縱軸都為產(chǎn)品標(biāo)準(zhǔn)價格虹菲。可以看到掉瞳,這兩張圖中毕源,有一些點的Quant或Val值在正常范圍之內(nèi),但其產(chǎn)品標(biāo)準(zhǔn)價格卻極高陕习。這些點從直覺上來說并不正常霎褐,但其絕大多數(shù)并沒有被標(biāo)為綠色,即LOF算法沒有將其歸為異常點该镣。這不符合預(yù)期冻璃。

對比上面這三張散點圖可以發(fā)現(xiàn),LOF能夠較準(zhǔn)確地識別Quant或Val異常的點,但卻不能很好地辨別出產(chǎn)品標(biāo)準(zhǔn)價格異常的點省艳。而回看我們的數(shù)據(jù)集娘纷,Quant和Val在數(shù)值上,比產(chǎn)品標(biāo)準(zhǔn)價格高了幾個量級跋炕。

結(jié)合以上兩點赖晶,我猜測LOF對特征的數(shù)值敏感。因此枣购,我決定對Quant嬉探、Val擦耀、產(chǎn)品標(biāo)準(zhǔn)價格標(biāo)準(zhǔn)化棉圈,將它們的數(shù)值限定在(-1, 1)區(qū)間內(nèi),再對這些標(biāo)準(zhǔn)化后的特征進行LOF運算眷蜓。

3.2 基于標(biāo)準(zhǔn)化特征的LOF異常值探測

標(biāo)準(zhǔn)化后的Quant分瘾、Val、產(chǎn)品標(biāo)準(zhǔn)價格如下(前6行):

022 - 標(biāo)準(zhǔn)化后的Quant吁系、Val德召、產(chǎn)品標(biāo)準(zhǔn)價格

重新計算的局部離群因子 Top 10:

023 - 基于標(biāo)準(zhǔn)化特征的局部離群因子 Top 10

有6個點的局部離群因子大于10;排名第一的點汽纤,其局部離群因子為36.6上岗。

新的計算結(jié)果分布如下(排除了局部離群因子大于10的點):

024 - 基于標(biāo)準(zhǔn)化特征的LOF計算結(jié)果直方圖

絕大多數(shù)點的局部離群因子小于2.5。

接下來我們依舊以2.5為臨界值蕴坪,對樣本進行離散化:局部離群因子大于2.5的點被視為異常值肴掷,小于等于2.5的點為正常值。統(tǒng)計結(jié)果如下:

025 - 基于標(biāo)準(zhǔn)化特征的LOF計算結(jié)果統(tǒng)計概述

可以看到背传,所有點的局部離群因子的中位數(shù)為1.03呆瞻;在所有被計算的點中,有46個點被視為異常點(局部離群因子大于2.5)径玖。這一結(jié)果與之前結(jié)果相似痴脾。

這次計算中仍然存在無窮大值和缺失值。

對新結(jié)果作散點圖梳星,可以得到如下異常值(局部離群因子大于2.5)分布情況:

026 - 基于標(biāo)準(zhǔn)化特征的LOF異常值分布圖

綠色表示異常點赞赖。

可以看到,相比之前的結(jié)果冤灾,對標(biāo)準(zhǔn)化后的特征進行LOF計算薯定,總體而言能更高效地識別出各個特征下的異常值。

以上瞳购。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末话侄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌年堆,老刑警劉巖吞杭,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異变丧,居然都是意外死亡芽狗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門痒蓬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來童擎,“玉大人,你說我怎么就攤上這事攻晒」烁矗” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵鲁捏,是天一觀的道長芯砸。 經(jīng)常有香客問我,道長给梅,這世上最難降的妖魔是什么假丧? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮动羽,結(jié)果婚禮上包帚,老公的妹妹穿的比我還像新娘。我一直安慰自己运吓,他們只是感情好渴邦,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著羽德,像睡著了一般几莽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宅静,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天章蚣,我揣著相機與錄音,去河邊找鬼姨夹。 笑死纤垂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的磷账。 我是一名探鬼主播峭沦,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼逃糟!你這毒婦竟也來了吼鱼?” 一聲冷哼從身側(cè)響起蓬豁,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菇肃,沒想到半個月后地粪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡琐谤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年蟆技,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斗忌。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡质礼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出织阳,到底是詐尸還是另有隱情眶蕉,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布陈哑,位于F島的核電站妻坝,受9級特大地震影響伸眶,放射性物質(zhì)發(fā)生泄漏惊窖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一厘贼、第九天 我趴在偏房一處隱蔽的房頂上張望界酒。 院中可真熱鬧,春花似錦嘴秸、人聲如沸毁欣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凭疮。三九已至,卻和暖如春串述,著一層夾襖步出監(jiān)牢的瞬間执解,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工纲酗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衰腌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓觅赊,卻偏偏與公主長得像右蕊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吮螺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

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

  • 《數(shù)據(jù)處理的SPSS和SAS EG實現(xiàn)》的讀書筆記 作 者:經(jīng)管之家饶囚、曹正鳳 出版社:電子工業(yè)出版社 版 次:...
    格式化_001閱讀 2,410評論 1 7
  • 銷售高手帕翻、精英團隊培訓(xùn)教程 完整講義 ...
    八戒369閱讀 33,398評論 10 377
  • 想寫這個系列很久了,最近剛好項目結(jié)束了閑下來有點時間萝风,于是決定把之前學(xué)過的東西做個總結(jié)熊咽。之前看過一些機器學(xué)習(xí)方面的...
    huihui7987閱讀 1,166評論 0 0
  • 別回頭横殴,他已不在我身后了 1 欣雨是我認(rèn)識為數(shù)不多的有顏有才的學(xué)霸之一,她去北京讀了大學(xué)卿拴,順利進外企做了翻譯衫仑,經(jīng)常...
    如憶ruyi閱讀 822評論 5 7
  • #幸福是需要修出來的~每天進步一點點# 20170515(2/99) 【幸福實修99天目標(biāo)】 慢慢學(xué)著站回屬于自己...
    風(fēng)吹小樹動閱讀 194評論 0 1