吳恩達(dá)機(jī)器學(xué)習(xí)筆記(二)

第三十三課:正規(guī)方程(區(qū)別于迭代方法的直接解法)

對(duì)于某些線性回歸問題颂跨,正規(guī)方程會(huì)給我們更好的方法來求得參數(shù)θ的最優(yōu)值敢伸。不同于梯度下降法的迭代解法,正規(guī)方程提供了一種求θ的解析解法恒削,可以直接一次性的求解θ的最優(yōu)值池颈。

常規(guī)而言,通過解析法求最小值的時(shí)候钓丰,一般是求導(dǎo)然后令導(dǎo)數(shù)等于零躯砰。但是由于這里的θ包含很多不同的特征,所以本質(zhì)上來說也是只要求偏導(dǎo)然后置零即可携丁。

m:是訓(xùn)練樣本數(shù)量琢歇;n:特征變量數(shù),其實(shí)是n + 1梦鉴,因?yàn)樘砑恿祟~外的特征變量X0李茫。最后如果你用矩陣X和向量y來來表示θ,這樣就得到能夠使得代價(jià)函數(shù)最小化的θ肥橙。

具體如何構(gòu)建“設(shè)計(jì)矩陣X”和向量y:

具體的計(jì)算過程:

注意:在正規(guī)方程中魄宏,不需要像梯度下降法那樣進(jìn)行特征縮放。

何時(shí)使用梯度下降法快骗,何時(shí)使用正規(guī)方程法(優(yōu)缺點(diǎn)):

具體而言娜庇,只要特征變量的數(shù)目并不大,正規(guī)方程是一個(gè)很好的計(jì)算參數(shù)θ的替代方法方篮,只要特稱變量的數(shù)量小于一萬名秀,通常使用正規(guī)方程法而不是梯度下降法。但正規(guī)方程算法不適用于分類算法中的logistic回歸算法等復(fù)雜算法藕溅,我們不得不回歸到梯度下降法匕得。因此梯度下降法是一個(gè)很好的方法,既可以用在有大量特征變量的線性回歸問題巾表,也可以用在之后課程中的其他算法上汁掠。但是對(duì)于線性回歸這個(gè)特定的模型,正規(guī)方程法是一個(gè)比梯度下降法更快的替代算法集币。

第三十四課:正規(guī)方程在矩陣不可逆情況下的解決方法

Octave中pinv()求解的是偽逆考阱,即及時(shí)矩陣不可逆也可以求解出其逆矩陣。線性代數(shù)進(jìn)階知識(shí):兩個(gè)特征是不可以用一個(gè)線性方程聯(lián)系起來的鞠苟,因?yàn)檫@樣的話矩陣X'X將是不可逆的乞榨。

矩陣不可逆大體分為兩種情況:
1.包含多余的特征值
2.m<n(需要?jiǎng)h除一些特征或者使用正規(guī)化)

所以:如果你發(fā)現(xiàn)矩陣X'X是奇異矩陣秽之,或者是不可逆的,首先看特征里是否有一些多余的特征吃既,線性相關(guān)的或者互為線性函數(shù)考榨,如果的確有多余的特征,可以刪除其中一個(gè)鹦倚,將解決不可逆的問題河质,如果特征里沒有多余的,就檢查是否有過多的特征震叙,如果特征數(shù)量實(shí)在太多掀鹅,如果少一些不影響的話,刪除一些特征捐友,或者考慮使用正規(guī)化的方法淫半。但是如果你在Octave中使用pinv()函數(shù),那么就不會(huì)出現(xiàn)這種情況匣砖,因?yàn)楹瘮?shù)求解的是偽逆科吭,及時(shí)X‘X不可逆,算法也能正確運(yùn)行猴鲫。

第三十八課:Octave基本操作

數(shù)學(xué)運(yùn)算

邏輯運(yùn)算
~=:表示不等于而不是对人!=
&&:與
||:或
異或:xor()
即:參加運(yùn)算的兩個(gè)對(duì)象,如果兩個(gè)相應(yīng)位為“異”(值不同)拂共,則該位結(jié)果為1牺弄,否則為0。

PS('>> ')宜狐;:更改提示符樣式

變量
a = 3
a = 3势告;(后面加分號(hào)可以阻止打印輸出)
對(duì)于更復(fù)雜的輸出,有一個(gè)disp()命令表示顯示
disp(sprintf('2 decimals: %0.2f', a)):disp():輸出打印抚恒,%0.2f:保留兩位小數(shù)咱台,sprintf():將括號(hào)內(nèi)的字符轉(zhuǎn)換為字符串
format long:會(huì)讓字符串顯示默認(rèn)的位數(shù)
format short:默認(rèn)輸出打印少量的小數(shù)點(diǎn)后位數(shù)

向量和矩陣
三行兩列:A = [1 2; 3 4俭驮; 5 6]
分號(hào)的作用:矩陣換行到下一行/或者輸入分號(hào)后可以回車換行
C = 1:0.1:2:表示C是一組值回溺,從1開始,步長是0.1混萝,增加到2遗遵,C將變成一個(gè)行向量,變成一個(gè)1X11的矩陣
還有一些生成矩陣的方法:ones(2, 3):用來生成一個(gè)2X3的矩陣逸嘀,且矩陣中的所有元素都為1
c = 2 * ones(2, 3):23元素值都為1矩陣
w = zeros(1, 3):1 * 3零矩陣
w = rand(3, 3):隨機(jī)3
3矩陣车要,且值都介于0和1之間
高斯隨機(jī)變量和正態(tài)分布的隨機(jī)變量:rand(1, 3):元素值服從高斯分布的1 * 3矩陣(均值為0,標(biāo)準(zhǔn)差或者方差為1)
w = -6 + sqrt(10) * (randn(1, 10000)):生成一個(gè)有一萬個(gè)元素的矩陣(根號(hào)10乘以高斯隨機(jī)變量)
hist(w):對(duì)隨機(jī)變量w繪制出的直方圖
hist(w, 50):繪制有更多豎條的直方圖:得到的就是一個(gè)均值為-6的高斯分布直方圖崭倘。這個(gè)高斯隨機(jī)變量的方差為10翼岁,標(biāo)準(zhǔn)差為根號(hào)10维哈,約等于3.1
生成矩陣的特殊命令:eye():表示生成單位矩陣
I = eye(6)
help eye:輸出單位矩陣的幫助函數(shù)
Q:退出幫助

課時(shí)39:移動(dòng)數(shù)據(jù)

如何把數(shù)據(jù)加載到Octave中?
怎么把數(shù)據(jù)存入矩陣登澜?
如何對(duì)矩陣進(jìn)行操作?
如何保存計(jì)算結(jié)果飘庄?
如何移動(dòng)這些數(shù)據(jù)并且操作它們脑蠕?

size(A):返回矩陣的大小
實(shí)際上size()所返回的是一個(gè)1X2的矩陣,所以如果令sz = size(A)跪削,sz就是一個(gè)1X2的矩陣谴仙,它的第一個(gè)元素是3,第二個(gè)元素是2碾盐。sz的兩個(gè)元素包含了矩陣A的維度晃跺。
size(A, 1):將返回A矩陣的第一維度的大小,也就是A矩陣的行數(shù)
size(A, 2):將返回A矩陣的列數(shù)
length():將返回最大維度的大小

如何在文件系統(tǒng)中加載和查找數(shù)據(jù):
當(dāng)我們打開Octave毫玖,我們通常已經(jīng)在一個(gè)默認(rèn)路徑中掀虎,它是Octave的安裝路徑
pwd:顯示出當(dāng)前路徑(Octave的當(dāng)前所在的路徑)
cd + 路徑:把當(dāng)前路徑更改為新路徑
ls:將列出當(dāng)前路徑下的文件列表
load featuresX.dat:加載featuresX.dat文件/或者寫成load('featureX.dat')
在Octave中使用單引號(hào)可以表示字符串
who:能顯示出Octave中的所有變量,即當(dāng)前Octave在內(nèi)存中儲(chǔ)存的所有變量
輸入featuresX付枫,就會(huì)顯示featuresX中的所有數(shù)據(jù)
whos:能顯示更詳細(xì)的變量信息烹玉,不僅列出所有變量,還列出了變量的維度阐滩,還會(huì)顯示它們占用了多少字節(jié)的內(nèi)存空間以及它們的數(shù)據(jù)類型
clear():刪除某個(gè)變量
v = pricey(1:10):把pricey的前是個(gè)變量賦給v
如果想把這些數(shù)據(jù)存入硬盤:使用save hello.mat v命令二打,這將使變量v保存為一個(gè)名為hello.mat的文件
clear:可以直接刪除內(nèi)存空間內(nèi)的所有變量
save hello.mat v:將數(shù)據(jù)儲(chǔ)存為了二進(jìn)制的格式,或者說是更壓縮的二進(jìn)制格式掂榔,如果v的數(shù)據(jù)量很大继效,那么它被壓縮的程度也更大,它的占用空間也會(huì)更小装获,如果你想把數(shù)據(jù)儲(chǔ)存為能被人類看懂的形式瑞信,可以輸入save hello.txt v -ascii:這樣就會(huì)把數(shù)據(jù)儲(chǔ)存為文本文檔或者說用ascii編碼的文檔。

如何操作數(shù)據(jù):
索引:

A(3, 2)    #將索引到A的3, 2位置的元素饱溢,通常我們把3, 2寫成下標(biāo)的形式
A(2, :)    #獲取第二行的所有元素(冒號(hào)表示該行或該列的所有元素)
A(:, 2)    #將返回A的第二列的所有元素
A([1 3], :)    #得到A中第一索引為1和3的所有元素喧伞,即A的第一行和第三行中所有列的元素

索引復(fù)制操作:

A(:, 2) = [10; 11; 12]    #將A的第二列重新賦值
A = [A , [100, 101, 102]];    #在A的右邊附加了一列新的列變量
A(:)    #將A中的所有元素放入一個(gè)單獨(dú)的列向量
C = [A B]    #表示把A、B兩個(gè)矩陣結(jié)合到一起绩郎,矩陣A在左邊潘鲫,矩陣B在右邊
C = [A; B]    #這里的分號(hào)表示把分號(hào)后面的矩陣放到前一個(gè)矩陣的下面(分號(hào)的意思就是換到下一行)

此外[A B] = [A, B],這兩種寫法的結(jié)果是相同的

通過以上操作肋杖,掌握如何構(gòu)造矩陣溉仑,如何快速的組合矩陣,將矩陣取出状植,并將它們組合成更大的矩陣(組合矩陣浊竟、移動(dòng)數(shù)據(jù))

快速移動(dòng)數(shù)據(jù)怨喘,包括加載和儲(chǔ)存向量和矩陣,加載和存儲(chǔ)數(shù)據(jù)振定,把矩陣組合成更大的矩陣必怜,用索引來載入和選擇矩陣中某個(gè)特定的元素。

第四十課:計(jì)算數(shù)據(jù)

計(jì)算兩個(gè)矩陣的乘積:

A * C    #一個(gè)3X2矩陣乘以一個(gè)2X2的矩陣后频,得到一個(gè)3X2矩陣(矩陣相乘)
A .*B    #將A中的各個(gè)元素與B中對(duì)應(yīng)的元素相乘(元素對(duì)應(yīng)相乘)(一個(gè)3X2矩陣乘以一個(gè)3X2矩陣梳庆,對(duì)應(yīng)元素相乘)
這個(gè)點(diǎn)號(hào)一般用于表示元素的運(yùn)算
A .^ 2     #表示對(duì)A中的元素進(jìn)行平方運(yùn)算
1 ./ v    #表示求v的對(duì)應(yīng)元素的倒數(shù)
log(v)    #表示對(duì)v中所有的元素進(jìn)行求倒數(shù)運(yùn)算
exp(v)    #表示以e為底,以v中元素為指數(shù)的冪運(yùn)算
abs(v)    #表示求v中所有元素的絕對(duì)值
-v    #求v中所有元素的相反數(shù)(等價(jià)于-1 * v)

我想取出v卑惜,并對(duì)v中的每個(gè)元素都加1膏执,其中一個(gè)方法就是,構(gòu)造一個(gè)3X1的元素全部為1的向量露久,然后將這個(gè)向量與v相加
v + ones(length(v), 1)
length(v) = 3,ones(length(v), 1)就構(gòu)造了一個(gè)和v大小相同的元素全為1的矩陣
另一個(gè)更簡單的方法就是:v + 1

轉(zhuǎn)置:A‘

(A')'    #A轉(zhuǎn)置的轉(zhuǎn)置
a = [1 15 2 0.5]
val = max(a)    #這將返回a中最大的元素
[val, ind] = max(a)    # 這將返回兩個(gè)值更米,val是a中最大的元素,ind是a中該元素的索引
但是輸入max(A)    #需要注意毫痕,如果A是一個(gè)矩陣征峦,這將會(huì)得到每一列的最大值
a < 3    #將a中所有元素與3進(jìn)行比較,根據(jù)比較結(jié)果來返回真和假
find(a < 3)    #將會(huì)找到a中所有小于3的元素镇草,并返回它們的索引
A = magic(3)    #會(huì)返回名為幻方的矩陣眶痰,

幻方具有一種特殊的數(shù)學(xué)性質(zhì),它任意行梯啤、列和對(duì)角線中的元素加起來都等于相同的值竖伯,這是經(jīng)過數(shù)學(xué)構(gòu)造的結(jié)果

[r, c] = find(A >= 7)    #找出A中大于等于7的元素,rc分別表示它們的所在行列

求和函數(shù)

sum(a)    #就會(huì)得到a中所有元素的和
prod(a)    #就會(huì)得到a中所有元素的積
floor(a)    #會(huì)對(duì)a中元素向下取整
ceil(a)    #會(huì)對(duì)a中元素向上取整
rand(3)    #得到一個(gè)3X3的隨機(jī)矩陣
max(rand(3), rand(3))    #它會(huì)得到由兩個(gè)3X3的隨機(jī)矩陣中較大的那些元素組成
max(A, [], 1)    #得到每一列的最大值因宇,這里的1表示從A的第一維度去取值
max(A, [], 2)    #得到每一行的最大值

這種方法能求得每行或每列的最值
如果只是單純的想知道A中所有元素的最大值:max(max(A))
或者先把A變成向量輸入max(A(:))七婴,相當(dāng)于先把A變成向量,然后求這個(gè)向量的最大元素

sum(A, 1)    #就可以得到每一列的總和
sum(A, 2)    #就可以得到每一行的總和

確辈旎幻方矩陣的對(duì)角線相加和也相等打厘,可以構(gòu)造一個(gè)單位矩陣eye(9),然后輸入A .* eye(9)贺辰,將這兩個(gè)矩陣對(duì)應(yīng)元素相乘户盯,除了對(duì)角線外的元素與0相乘都會(huì)變成0,相當(dāng)于輸入sum(sum(A .* eye(9)))饲化, 就能得到A的對(duì)角線的元素之和莽鸭。
同理:輸入sum(sum(A .* flipud(eye(9)))):flipud()表示把矩陣垂直翻,就可以對(duì)另一條對(duì)角線求和

偽逆矩陣

pinv(A)
temp = pinv(A)
temp * A    #得到的就是單位矩陣
第四十一課:數(shù)據(jù)繪制

通常情況下吃靠,繪制數(shù)據(jù)或?qū)W習(xí)算法所有的輸出可以判斷輸出值是否收斂以及如何改進(jìn)你的學(xué)習(xí)算法硫眨,Octave有非常簡單的程序來生成大量不同的圖。

plot(t, y1);

快速繪制t對(duì)應(yīng)y1的函數(shù)圖
輸入不同的plot()函數(shù)將會(huì)替代之前的plot()圖像巢块,如果想保留兩個(gè)圖像礁阁,輸入

hold on;

hold on可以讓Octave在舊的圖像上面繪制新的圖像巧号,注意要用不同的顏色表示兩個(gè)曲線可以輸入plot(t, y2, 'r');

xlebel('time'); ylebel('value')    #可以加上橫縱坐標(biāo)軸的標(biāo)簽
legend('sin', 'cos')    #來在圖像上繪制圖例表示兩條曲線的內(nèi)容
title('my plot')    #在圖像頂部顯示這幅圖的標(biāo)題
print -dpng 'my plot.png'    #將保存圖像
cd "路徑";print -dpng 'my plot.png'    #將保存圖像到指定路徑
close#    關(guān)閉當(dāng)前圖像
figure(1); plot(t, y1);
figure(2); plot(t, y2);
subplot(1, 2, 1); 
#它將圖像分為一個(gè)1 * 2的格子姥闭,也就是前兩個(gè)參數(shù)的意義丹鸿,然后它使用第一個(gè)格子,也就是最后一個(gè)參數(shù)1的意思

plot(t, y1);    #將會(huì)在左邊的第一個(gè)格子中顯示sin圖像
subplot(1, 2, 2);
plot(t, y2);    #圖二將會(huì)顯示在右邊
axis([0.5 1 -1 1])    #也就是設(shè)置了右圖x軸和y軸的范圍
clf;     #命令可以清除一副圖像

可視化矩陣:

A = magic(5); imagesc(A)    #將繪制一個(gè)5*5的矩陣棚品,將矩陣?yán)L制成一個(gè)5*5的彩色格圖卜高,不同的顏色對(duì)應(yīng)A矩陣中的不同值
imagesc(A), colorbar, colormap gray;    #生成一個(gè)顏色圖像,一個(gè)灰度分布圖,并在右邊加入一個(gè)顏色條剥汤,這個(gè)顏色條顯示了不同深淺的顏色所對(duì)應(yīng)的值冯事。

例:imagesc(magic(15)), colorbar, colormap gray;:來生成一副15*15方陣數(shù)值的灰度示意圖

a = 1, b = 2, c = 3:三個(gè)命令一個(gè)接一個(gè)執(zhí)行
a = 1; b = 2; c = 3:如果用分號(hào)代替逗號(hào),不會(huì)輸出任何東西
逗號(hào)連接命令或者函數(shù)調(diào)用是一種更便捷的命令拍谐,來將多條命令寫在同一行中。

第四十二課:控制語句(for while if語句)

如何書寫控制語句
如何定義和使用函數(shù)

v = zeros(10, 1),
for i = 1 : 10伞广;
    v(i) = 2 ^ i;
end;

注意這里的末尾分號(hào),不然它會(huì)分別運(yùn)行十遍命令
另一種方式:

indices == 1:10疼电;
for i = indices嚼锄,
    disp(i);
end;

while循環(huán):

i = 1;
while i <= 5,
    v(i) = 100;
    i = i + 1;
end;

break語句:

i = 1;
while true,
    v(i) = 999;
    i = i + 1;
    if i == 6,
        break;
    end;
end;

即和Python語句一樣,當(dāng)滿足條件時(shí)蔽豺,跳出循環(huán)区丑,注意兩個(gè)end,分別技術(shù)while語句和if語句修陡。

v(1) = 2;
if v(1) == 1,
    disp('The value is one');
elseif v(1) == 2,
    disp('The value is two');
else,
    disp('The value is not one or two.');
end; 

exit/quit命令都可以退出Octave

定義和調(diào)用函數(shù):
首先要在Octave環(huán)境下創(chuàng)建一個(gè)文件名為函數(shù)名.m的文件沧侥,Octave會(huì)在這個(gè)文件中查找你要使用的函數(shù),可以用notepad打開編輯函數(shù)魄鸦,如何在Octave里面定義函數(shù)宴杀?

function y = squareThisNumber(x)
y = x^2;

第一行告訴Octave我想返回一個(gè)值,將它存放于變量y里拾因,另外這個(gè)函數(shù)有一個(gè)自變量x旺罢,第二行告知定義的函數(shù)主體是y = x^2

pwd
cd'文件路徑'
squareThisNumber(5)

此外還有個(gè)高級(jí)功能可以設(shè)置搜索路徑,可以修改Octave的搜索路徑

addpath('函數(shù)所在路徑')
cd '其他路徑'
squareThisNumber(5)

此外Octave允許你定義一個(gè)函數(shù)绢记,能夠返回多個(gè)值

function [y1, y2] = squareAndCubeThisNumber(x)
y1 = x^2;
y2 = x^3;

在Octave中輸入

[a, b] = squareAndCubeThisNumber(5)

Ok接下來看一個(gè)復(fù)雜一點(diǎn)的函數(shù):
比方說我有一個(gè)數(shù)據(jù)集扁达,數(shù)據(jù)點(diǎn)如下:

數(shù)據(jù)點(diǎn)為(1,1)(2,2)(3,3),我想做的是定義一個(gè)Octave函數(shù)庭惜,來計(jì)算代價(jià)函數(shù)J(θ)罩驻,不同θ值所對(duì)應(yīng)的代價(jià)函數(shù)值J。
首先把數(shù)據(jù)放到Octave中:

X = [1 1; 1 2;1 3];      #設(shè)計(jì)矩陣X
#第一列表示X0护赊,第二列表示三個(gè)訓(xùn)練樣本的x值
y = [1; 2; 3];    #y軸對(duì)應(yīng)值
theta = [0; 1];

在路徑下提前設(shè)定好代價(jià)函數(shù)J(θ)文件:

function J = costFunctionJ(X, y, theta)
m = size(X, 1)
predictions = X * theta;
sqrErrors = (predictions - y) .^2;
J - 1/(2*m) * sum(sqrErrors);

接著在Octave中輸入:

j = costFunctionJ(X, y, theta)

如果令theta = [0; 0];
那么計(jì)算j = 2.333
即(12+22+3^2)/(2*m) = 2.333
即第一個(gè)樣本的平方誤差+第2/3個(gè)樣本的平方誤差 / 訓(xùn)練樣本數(shù)的兩倍

第四十三課:矢量化

調(diào)用線性代數(shù)庫而不是自己寫命令去做那些函數(shù)庫可以做的事惠遏,通常你會(huì)發(fā)現(xiàn)用內(nèi)置算更有效砾跃,即運(yùn)算速度更快,并且更好的利用你計(jì)算機(jī)里可能有的一些并行硬件系統(tǒng)节吮。

這也意味著你可以使用更少的代碼實(shí)現(xiàn)你需要的功能抽高。實(shí)現(xiàn)的方式越簡單,出錯(cuò)的可能性就更型讣ā:

如何用C++實(shí)現(xiàn):

更為復(fù)雜的例子:

向量化的方法實(shí)現(xiàn):

這一段超炫的翘骂,我覺得是把右邊的求和公式仔細(xì)去拆開以后發(fā)現(xiàn),是向量乘以實(shí)數(shù)相加的形式帚豪,進(jìn)而轉(zhuǎn)化為線性代數(shù)運(yùn)算碳竟,這樣會(huì)利用現(xiàn)有的線性代數(shù)庫加快計(jì)算速度,簡化計(jì)算過程狸臣,即使特征向量有很多莹桅,要知道這要比for循環(huán)分別迭代求解在速度和內(nèi)存占用上優(yōu)化多了。高效烛亦!

我覺得這不僅僅是Octave诈泼,我覺得任何編程語言可能都需要這種解題思路。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末煤禽,一起剝皮案震驚了整個(gè)濱河市铐达,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌檬果,老刑警劉巖瓮孙,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異选脊,居然都是意外死亡衷畦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門知牌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來祈争,“玉大人,你說我怎么就攤上這事角寸∑谢欤” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵扁藕,是天一觀的道長沮峡。 經(jīng)常有香客問我,道長亿柑,這世上最難降的妖魔是什么邢疙? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上疟游,老公的妹妹穿的比我還像新娘呼畸。我一直安慰自己,他們只是感情好颁虐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布蛮原。 她就那樣靜靜地躺著,像睡著了一般另绩。 火紅的嫁衣襯著肌膚如雪儒陨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天笋籽,我揣著相機(jī)與錄音蹦漠,去河邊找鬼。 笑死车海,一個(gè)胖子當(dāng)著我的面吹牛津辩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播容劳,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼闸度!你這毒婦竟也來了竭贩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤莺禁,失蹤者是張志新(化名)和其女友劉穎留量,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哟冬,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡楼熄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了浩峡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片可岂。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖翰灾,靈堂內(nèi)的尸體忽然破棺而出缕粹,到底是詐尸還是另有隱情,我是刑警寧澤纸淮,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布平斩,位于F島的核電站,受9級(jí)特大地震影響咽块,放射性物質(zhì)發(fā)生泄漏绘面。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望揭璃。 院中可真熱鬧晚凿,春花似錦、人聲如沸塘辅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扣墩。三九已至哲银,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呻惕,已是汗流浹背荆责。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亚脆,地道東北人做院。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像濒持,于是被迫代替她去往敵國和親键耕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

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