機(jī)器學(xué)習(xí)與人工智能基礎(chǔ):價(jià)值估算(第二章-機(jī)器學(xué)習(xí)和價(jià)值預(yù)測(cè))

什么是機(jī)器學(xué)習(xí)和價(jià)值預(yù)測(cè)?

What Is Machine Learning and value Prediction?

前言叨B叨

沒(méi)有叨B叨直接入主題

1. 什么是機(jī)器學(xué)習(xí)

作為一個(gè)碼農(nóng),你的工作就是寫(xiě)出各種規(guī)則來(lái)告訴計(jì)算機(jī)如何解決某個(gè)特定問(wèn)題。機(jī)器學(xué)習(xí)走的卻是另一種途徑。機(jī)器學(xué)習(xí)是計(jì)算機(jī)自己學(xué)習(xí)事物的規(guī)則來(lái)解決問(wèn)題,而不是靠編寫(xiě)特定的規(guī)則。讓我們從一個(gè)大家都熟悉的例子開(kāi)始,垃圾郵件。想象一下,你正在編寫(xiě)一個(gè)程序,用傳統(tǒng)的程序來(lái)過(guò)濾收件箱中的垃圾郵件。首先,你必須編寫(xiě)一個(gè)復(fù)雜的程序,它包含所有的規(guī)則來(lái)決定一個(gè)特定的電子郵件是垃圾還是真實(shí)有用的信息。例如,程序可能會(huì)尋找某些你認(rèn)為只出現(xiàn)在垃圾郵件中的關(guān)鍵詞,或者你可能會(huì)檢查發(fā)件人是不是你曾經(jīng)發(fā)送過(guò)郵件給他。

然后,通過(guò)跑一些測(cè)試電子郵件來(lái)調(diào)試程序。最后,你檢查程序的結(jié)果,看看它是否正確地從垃圾郵件中分離出真實(shí)的電子郵件。在這個(gè)過(guò)程中,最難的部分是找出哪些規(guī)則有助于識(shí)別電子郵件為垃圾郵件還是真實(shí)郵件。要找出正確的規(guī)則,準(zhǔn)確地識(shí)別垃圾郵件,而不會(huì)有任何誤報(bào),這需要大量的嘗試。更鬧心的是,當(dāng)垃圾郵件發(fā)送者改變自己的戰(zhàn)術(shù),你又得相應(yīng)更新你的過(guò)濾規(guī)則來(lái)應(yīng)對(duì)。所以這是一個(gè)無(wú)止境的體力活。

如果計(jì)算機(jī)能自己想出過(guò)濾電子郵件的邏輯,那該多好哇,所以這個(gè)就是我們可以用機(jī)器學(xué)習(xí)來(lái)實(shí)現(xiàn)的東西。機(jī)器學(xué)習(xí)來(lái)搞定這個(gè)事情大概有以下幾個(gè)步驟: 首先,我們收集數(shù)千封電子郵件,把它們分成兩組。一組是正兒八經(jīng)的郵件。另一組則是垃圾郵件。接下來(lái),我們將這些電子郵件放入機(jī)器學(xué)習(xí)算法中。機(jī)器學(xué)習(xí)算法是一個(gè)現(xiàn)成的系統(tǒng)。我們不必編寫(xiě)任何自定義代碼便能使其工作。機(jī)器學(xué)習(xí)算法將檢查兩組電子郵件,并創(chuàng)建它自己的規(guī)則,告訴他們?nèi)绾螀^(qū)分它們。這個(gè)過(guò)程叫做訓(xùn)練。

我們正在給機(jī)器學(xué)習(xí)算法輸入原始的電子郵件和預(yù)期的輸出數(shù)據(jù),每一封電子郵件應(yīng)該被分類為真實(shí)的或垃圾郵件,它創(chuàng)建了自己的規(guī)則來(lái)確定輸入什么樣的數(shù)據(jù)會(huì)產(chǎn)生什么樣的輸出。訓(xùn)練過(guò)程中使用的數(shù)據(jù)越多,就越有可能學(xué)習(xí)到如何準(zhǔn)確地做到這一點(diǎn)。一旦模型被訓(xùn)練出來(lái),我們現(xiàn)在就可以用它來(lái)以前從未見(jiàn)過(guò)的電子郵件了。當(dāng)我們輸入一個(gè)未知的電子郵件,它將使用訓(xùn)練過(guò)程中所學(xué)到的規(guī)則,正確地區(qū)分垃圾郵件和正常郵件。有了機(jī)器學(xué)習(xí),我們就不必自己做苦逼的體力活了。也就是說(shuō)我們不用寫(xiě)任何郵件過(guò)濾規(guī)則。

計(jì)算機(jī)根據(jù)自己所看到的訓(xùn)練數(shù)據(jù)提出了自己的建議。機(jī)器學(xué)習(xí)最酷的部分是我們用電子郵件分類的算法可以通過(guò)改變我們輸入的數(shù)據(jù)來(lái)解決很多其他的問(wèn)題,而這不需要改變?nèi)魏我恍写a。例如,輸入的時(shí)候我們不輸入電子郵件, 而是輸入一張照片或者手寫(xiě)數(shù)字。該算法可以決定每個(gè)圖片所代表的數(shù)字,無(wú)論是0還是1,或者在本例中為8。同樣的算法,即可用于電子郵件過(guò)濾,也可以用來(lái)做手寫(xiě)識(shí)別。

用傳統(tǒng)的編程方法,你可以給計(jì)算機(jī)精確地說(shuō)明如何解決問(wèn)題。計(jì)算機(jī)只能做它以前做過(guò)的事情。與機(jī)器學(xué)習(xí)不同,計(jì)算機(jī)不需要顯式地編程便會(huì)學(xué)習(xí)如何解決未解決過(guò)的事情。取而代之的是,你給計(jì)算機(jī)輸入數(shù)據(jù),計(jì)算機(jī)從數(shù)據(jù)中學(xué)習(xí)到那些類似的邏輯來(lái)替代你的手工編程。

機(jī)器學(xué)習(xí)是解決傳統(tǒng)編程難以解決的復(fù)雜問(wèn)題的一種有效方法。

2. 有監(jiān)督的機(jī)器學(xué)習(xí) 價(jià)值預(yù)測(cè)

在本課程中,我們將使用有監(jiān)督的機(jī)器學(xué)習(xí)來(lái)預(yù)測(cè)價(jià)值。有監(jiān)督學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,計(jì)算機(jī)通過(guò)在標(biāo)記的訓(xùn)練數(shù)據(jù)上學(xué)習(xí)如何執(zhí)行函數(shù)。機(jī)器學(xué)習(xí)還有其他分支,如無(wú)監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí),但監(jiān)督學(xué)習(xí)是最常用的,也是我們?nèi)腴T的最佳選擇。這里我們將使用監(jiān)督學(xué)習(xí)做價(jià)值預(yù)測(cè)。

我們通過(guò)輸入數(shù)據(jù)并告訴機(jī)器正確的值輸出應(yīng)該是什么樣的數(shù)據(jù),然后來(lái)訓(xùn)練有監(jiān)督的學(xué)習(xí)模型,我們的機(jī)器學(xué)習(xí)算法使用這些數(shù)據(jù)來(lái)生成規(guī)則來(lái)重現(xiàn)相同的結(jié)果。

例如,如果我們顯示數(shù)字2和2,并且告訴它答案是4,然后我們顯示數(shù)字3和5,并且告訴它答案是8,它將開(kāi)始決定如何做加法。

只要看了足夠多的例子,它就會(huì)發(fā)現(xiàn),每當(dāng)看到兩個(gè)數(shù)時(shí),我們就希望結(jié)果是這些數(shù)之和。總和是系統(tǒng)預(yù)測(cè)的值。我們稱這種過(guò)程為訓(xùn)練(training)。一旦對(duì)模型進(jìn)行訓(xùn)練,我們就可以使用它來(lái)查找新的數(shù)據(jù),并告訴我們它對(duì)新輸入數(shù)據(jù)應(yīng)該值多少的估計(jì)。如果我們展示它7和2,現(xiàn)在它依據(jù)對(duì)它已有的訓(xùn)練, 可以告訴我們答案是9。該系統(tǒng)能夠通過(guò)從訓(xùn)練數(shù)據(jù)中學(xué)到的知識(shí)來(lái)預(yù)測(cè)新數(shù)據(jù)的值。讓我們來(lái)看一個(gè)更復(fù)雜的例子。

假設(shè)你是一個(gè)有多年房產(chǎn)銷售經(jīng)驗(yàn)的房地產(chǎn)經(jīng)紀(jì)人。因?yàn)槟阋呀?jīng)賣了很長(zhǎng)時(shí)間的房子了,所以你可以隨便瞄一眼任意一套房子,便可估計(jì)這房子大概多少錢。你幾乎可以在不知不覺(jué)中做到這一點(diǎn)。例如,這個(gè)房子很寬敞,它位于一個(gè)很好的社區(qū),它有一個(gè)很大的前院,從街上看起來(lái)很吸引人。基于這些因素,你可能會(huì)估計(jì)在當(dāng)?shù)厥袌?chǎng)價(jià)值450000美元。但現(xiàn)在你的房地產(chǎn)業(yè)務(wù)不斷增長(zhǎng),你不能自己管理所有的客戶。你決定招幾個(gè)小弟來(lái)幫你。

但是有一個(gè)問(wèn)題,你的小弟沒(méi)有你的經(jīng)驗(yàn),所以他們不知道如何給房子定價(jià)。為了幫助你的小弟,你想寫(xiě)一個(gè)程序,可以根據(jù)你的房子的大小,是否學(xué)區(qū)房和最近類似房型成交價(jià)等等來(lái)估計(jì)房子的價(jià)值。我們可以用有監(jiān)督的機(jī)器學(xué)習(xí)來(lái)做到這一點(diǎn)。首先,記錄下來(lái)三個(gè)月內(nèi)這個(gè)地區(qū)成交的房子。對(duì)于每一棟房子,我們都會(huì)寫(xiě)下房子的基本特征,比如臥室的數(shù)目,房子的大小和平方英尺,房子所在的社區(qū),等等。但最重要的是,我們將把房子的最終銷售價(jià)格寫(xiě)下來(lái)。

這是我們的訓(xùn)練數(shù)據(jù)。為了構(gòu)建我們的程序,我們將把訓(xùn)練數(shù)據(jù)輸入到機(jī)器學(xué)習(xí)算法中,該算法將找出如何為每一個(gè)房子找到正確的估值。這就是有監(jiān)督的機(jī)器學(xué)習(xí)。我們之所以稱之為學(xué)習(xí),因?yàn)橛?jì)算機(jī)正在學(xué)習(xí)如何根據(jù)我們所提供的價(jià)值來(lái)對(duì)房子的價(jià)格進(jìn)行建模。我們說(shuō)這是有監(jiān)督的,因?yàn)槲覀兘o計(jì)算機(jī)正確的回答每個(gè)房子的價(jià)值。計(jì)算機(jī)所要做的就是計(jì)算輸入數(shù)據(jù)和最終價(jià)格之間的關(guān)系。

3. 建立一個(gè)簡(jiǎn)單的房?jī)r(jià)估值程序

在深入研究更復(fù)雜的機(jī)器學(xué)習(xí)算法之前,讓我們構(gòu)建一個(gè)最簡(jiǎn)單的程序,根據(jù)它的屬性來(lái)估計(jì)一個(gè)房子的價(jià)值。打開(kāi)simple_value_estimator.py。在這里我們有一個(gè)功能叫做estimate_home_value。這個(gè)函數(shù)的目的是根據(jù)屬性來(lái)估計(jì)一個(gè)房子的價(jià)格。這個(gè)函數(shù)包含兩個(gè)屬性來(lái)描述一個(gè)房子的大小,房子的平方英尺和臥室的數(shù)量。在函數(shù)的結(jié)尾處返回該房屋的預(yù)測(cè)值。要預(yù)測(cè)房子的價(jià)值,我們所要做的就是決定房子的大小和臥室的數(shù)量對(duì)房子的最終價(jià)值有多大的影響。

def estimate_home_value(size_in_sqft, number_of_bedrooms):# Assume all homes are worth at least $50,000value = 50000# Adjust the value estimate based on the size of the housevalue = value + (size_in_sqft * 92)# Adjust the value estimate based on the number of bedroomsvalue = value + (number_of_bedrooms * 10000)return value# Estimate the value of our house:# - 5 bedrooms# - 3800 sq ft# Actual value: $450,000value = estimate_home_value(3800, 5)print("Estimated valued:")print(value)

讓我們先假設(shè)任何一個(gè)房子,不管多么小,至少值50000美元,所以我們可以從初始值估計(jì)50000美元開(kāi)始。下一步,我們必須決定房子的大小對(duì)最終價(jià)值有多大影響。我猜每平方英尺值92美元,所以我們可以說(shuō)現(xiàn)在的值是平方英尺乘以92。接下來(lái),讓我們看看臥室。似乎有理由認(rèn)為擁有更多臥室的房子比臥室少的房子更有價(jià)值。

對(duì)于每一個(gè)臥室,我要加上,比如說(shuō),10000美元的附加值。我們會(huì)說(shuō)這個(gè)值是現(xiàn)在的值加上臥室的10000倍。最后,讓我們?cè)囋囘@個(gè)函數(shù),在真正的房子上試試,我們知道它的價(jià)格是450000美元。我們將在這里走過(guò)3800平方英尺和五個(gè)臥室。我們可以通過(guò)右擊和選擇運(yùn)行來(lái)運(yùn)行這個(gè)文件。值得一提的是,還有一個(gè)用于運(yùn)行文件的鍵盤快捷方式,但在系統(tǒng)上可能會(huì)有所不同。對(duì)mac來(lái)說(shuō)是 control+ Shift + F10。

它將打開(kāi)控制臺(tái),并顯示我們程序的輸出。我們的計(jì)劃預(yù)測(cè)這房子價(jià)值449000美元。這真的接近我們預(yù)期的450000美元的價(jià)值。我們的估計(jì)工作得很好。在這個(gè)例子中,我們所做的就是取每一個(gè)輸入值并乘以一個(gè)固定的權(quán)值。平方英尺的權(quán)重是92,臥室的權(quán)重是10000。

換句話說(shuō),我們說(shuō)房子的真正價(jià)值是它的大小和臥室的數(shù)量的組合。權(quán)重告訴我們這些因素在最終計(jì)算中有多少。用一組固定的權(quán)值建模某物價(jià)值的過(guò)程稱為線性回歸。它是最簡(jiǎn)單的機(jī)器學(xué)習(xí)算法之一,但隨著機(jī)器學(xué)習(xí)的發(fā)展,計(jì)算機(jī)通過(guò)查找訓(xùn)練數(shù)據(jù)自動(dòng)生成權(quán)值。接下來(lái),我們將學(xué)習(xí)讓計(jì)算機(jī)如何能自己找到最佳的權(quán)重。

4. 自動(dòng)找到最佳權(quán)重

上一節(jié)我們寫(xiě)了一個(gè)程序,通過(guò)將每一個(gè)屬性乘以一個(gè)固定的權(quán)值來(lái)估計(jì)一個(gè)房子的價(jià)值,然后把它們加起來(lái)得到總的價(jià)值。我們寫(xiě)的函數(shù)和這個(gè)等式的數(shù)學(xué)完全相同。房子的價(jià)值=50000+(總平方英尺X第一個(gè)權(quán)重)+(臥室個(gè)數(shù)X第二個(gè)權(quán)重)。

但是我們?nèi)绾沃烂恳粋€(gè)權(quán)值使用什么值,這樣函數(shù)所產(chǎn)生的預(yù)測(cè)是不是準(zhǔn)確的呢?訣竅在于將權(quán)重轉(zhuǎn)換成計(jì)算機(jī)可以自己解決的優(yōu)化問(wèn)題。當(dāng)我們訓(xùn)練機(jī)器學(xué)習(xí)算法時(shí),我們要求它在訓(xùn)練數(shù)據(jù)集中找到最接近答案的最佳權(quán)重。

首先,我們需要一些訓(xùn)練數(shù)據(jù)。這是我們?nèi)齻€(gè)房子的數(shù)據(jù),我們可以用它來(lái)訓(xùn)練我們的算法。

對(duì)于每一個(gè)房子,我們有臥室的數(shù)目,面積平方英尺,和家庭的實(shí)際價(jià)值。讓我們?yōu)檫@三所已知的房子寫(xiě)出我們的房?jī)r(jià)等式。我只是從訓(xùn)練數(shù)據(jù)中替換了所有已知的值。每個(gè)方程中唯一未知的值是兩個(gè)權(quán)值。我們的目標(biāo)盡可能在所有這些方程里找到兩個(gè)權(quán)重值。我們必須從某處開(kāi)始。首先,讓我們?yōu)槊總€(gè)權(quán)重選擇完全隨機(jī)猜測(cè)。

我們將兩者定為10。現(xiàn)在我們將通過(guò)評(píng)估每一個(gè)方程來(lái)看看效果如何。讓我們用10代替每一個(gè)重量,然后評(píng)估每一個(gè)方程來(lái)得到我們的初始價(jià)格估計(jì)。看看每一棟房子的實(shí)際價(jià)格,與我們計(jì)算的相比,我們可以看到我們的估算與這些權(quán)重相當(dāng)遙遠(yuǎn)。讓我們量化一下目前的估計(jì)是多么糟糕。讓我們從房子的實(shí)際價(jià)格中減去對(duì)每個(gè)房子的預(yù)測(cè),然后把它們?nèi)考悠饋?lái)。現(xiàn)在,讓我們把方程中的每個(gè)項(xiàng)平方。每個(gè)房子的誤差平方值較大。

我們寧愿每個(gè)房子的估計(jì)都有一點(diǎn)小的誤差,而不是某個(gè)房子誤差太大。最后,讓我們將整個(gè)數(shù)據(jù)與數(shù)據(jù)集中的房屋數(shù)分開(kāi)。我們有三所房子,所以我們分三套。它給我們數(shù)據(jù)集中單個(gè)房子的平均平方誤差。按照慣例,我們將把這個(gè)錯(cuò)誤計(jì)算稱為成本函數(shù)。它告訴我們當(dāng)前的權(quán)重是錯(cuò)的多離譜,換句話說(shuō),就是當(dāng)前模型的總成本。我們的目標(biāo)是找到在我們的數(shù)據(jù)集中最小化所有房屋成本的權(quán)重。如果我們可以使成本等于零,那么我們的預(yù)測(cè)算法就是完美的。

成本函數(shù)的價(jià)值越高,我們的預(yù)測(cè)就錯(cuò)的越離譜。讓我們以更一般的方式重寫(xiě)完全相同的成本等式。

這個(gè)等式是說(shuō)總成本是每一個(gè)猜測(cè)和每個(gè)房子的實(shí)際值之間的平方差之和。然后整以房子的數(shù)目。現(xiàn)在我們有一個(gè)優(yōu)化的成本函數(shù),我們可以使用一個(gè)標(biāo)準(zhǔn)的數(shù)學(xué)優(yōu)化算法來(lái)尋找函數(shù)的最小值。一個(gè)非常常見(jiàn)的優(yōu)化算法可以用來(lái)解決這個(gè)問(wèn)題:梯度下降(Gradient descent )。

梯度下降(Gradient descent )是一種迭代優(yōu)化算法,我們可以用它來(lái)找到最佳的權(quán)重。它的工作原理是在一個(gè)方向上微調(diào)每一個(gè)重量,使成本下降。以下是它的工作原理。首先,我們通過(guò)成本函數(shù)和隨機(jī)起始權(quán)值來(lái)進(jìn)行梯度下降。然后,通過(guò)反復(fù)調(diào)整權(quán)重,將權(quán)重值梯度下降成千上萬(wàn)次直到0,從而使成本函數(shù)盡可能接近零。最后,當(dāng)梯度下降到成本無(wú)法下降時(shí),將返回它找到的最佳權(quán)重。

在我們的例子中,它會(huì)返回92.1和10001。讓我們用梯度下降的權(quán)重再重新計(jì)算房?jī)r(jià)。分92.1和10001作為我們的權(quán)重。現(xiàn)在讓我們計(jì)算一下我們的系統(tǒng)對(duì)每個(gè)房子價(jià)格的預(yù)測(cè)。我們可以看到這三個(gè)預(yù)測(cè)看起來(lái)都很好。

它們都不是完美的,它們都非常接近各自房子的實(shí)際價(jià)值。讓我們回顧一下我們?nèi)绾螢楹?jiǎn)單房?jī)r(jià)估值找到最佳的權(quán)重。

首先,我們創(chuàng)建了一個(gè)方程來(lái)模擬問(wèn)題,估算一套房子的價(jià)值。

第二,我們創(chuàng)建了成本函數(shù)來(lái)量化模型中的錯(cuò)誤。最后,我們使用梯度下降優(yōu)化算法找到模型參數(shù),盡量減少成本函數(shù)。

我們將在本課程中使用的機(jī)器學(xué)習(xí)庫(kù)將為我們處理所有這些計(jì)算,包括運(yùn)行梯度下降。但是對(duì)幕后發(fā)生的事情有個(gè)基本的想法是很重要的,這樣你就可以更好地理解什么樣的問(wèn)題可以用機(jī)器學(xué)習(xí)來(lái)解決

5. 使用酷酷滴價(jià)值預(yù)測(cè)程序

價(jià)值預(yù)測(cè)是一個(gè)非常有用的技術(shù),因?yàn)槲覀兛梢杂盟鼇?lái)解決很多不同種類的問(wèn)題。在這個(gè)過(guò)程中,我們的項(xiàng)目是建立一個(gè)系統(tǒng),可以預(yù)測(cè)房子的價(jià)值,根據(jù)它的屬性。但是只要你有訓(xùn)練數(shù)據(jù),你就可以用完全相同的技術(shù)來(lái)評(píng)估任何產(chǎn)品。例如,我們可以建立一個(gè)系統(tǒng),可以根據(jù)它的屬性,比如它的年份,它的狀況,顏色和里程來(lái)估計(jì)二手車的價(jià)值。或者我們可以建立一個(gè)系統(tǒng),根據(jù)手機(jī)的特點(diǎn)和類似手機(jī)的過(guò)去銷售情況來(lái)評(píng)估我們想轉(zhuǎn)售的二手手機(jī)的價(jià)值。還有就是可以預(yù)測(cè)詐騙。

當(dāng)你在網(wǎng)上買東西或使用信用卡時(shí),你支付的時(shí)候很可能要經(jīng)過(guò)欺詐檢測(cè)算法的檢測(cè)。在這種情況下,該模型使用您購(gòu)買的細(xì)節(jié)來(lái)決定您的這次支付是不是可能是欺詐的。如果該模型返回高欺詐的可能性,支付將被阻止。同樣,價(jià)值預(yù)測(cè)被用來(lái)模擬控制發(fā)放住房貸款的風(fēng)險(xiǎn)。在這種情況下,輸入是關(guān)于借款人的詳細(xì)信息,輸出是貸款償還的可能性。這有助于銀行決定哪些貸款值得冒風(fēng)險(xiǎn)。但價(jià)值預(yù)測(cè)并不局限于金融交易。

例如,你可以建立一個(gè)模型,其中輸入是電影評(píng)論中出現(xiàn)的詞,輸出是評(píng)論的正或負(fù)。這叫做情緒檢測(cè)。它允許計(jì)算機(jī)查看一個(gè)人寫(xiě)的一段文字,并猜測(cè)人類是否正在寫(xiě)一個(gè)正面或負(fù)面的評(píng)論。

醫(yī)學(xué)領(lǐng)域的價(jià)值預(yù)測(cè)也有許多用途。機(jī)器學(xué)習(xí)模型經(jīng)常被用來(lái)幫助醫(yī)生閱讀X射線和其他類型的醫(yī)學(xué)圖像。這些模型有時(shí)比磚家更可靠。人工智能研究人員甚至預(yù)測(cè)在五年內(nèi),計(jì)算機(jī)解析x光片將比放射科醫(yī)師更牛逼可靠。

值預(yù)測(cè)算法非常有用,因?yàn)楹芏鄦?wèn)題可以被建模為價(jià)值預(yù)測(cè)問(wèn)題。如果輸入的算法是一張帶攝像機(jī)的圖片,輸出是轉(zhuǎn)動(dòng)方向盤的角度和按下油門踏板的量---- 吶, 你小子剛剛創(chuàng)建了一個(gè)簡(jiǎn)單的自動(dòng)駕駛模型!

學(xué)習(xí)如何將問(wèn)題建模為一個(gè)價(jià)值預(yù)測(cè)問(wèn)題是一項(xiàng)非常有用的技能。一旦你確定了輸入和輸出,你通常可以用機(jī)器學(xué)習(xí)來(lái)建立一個(gè)解決方案。

今天內(nèi)容有點(diǎn)多哈, 但全是知識(shí)點(diǎn)啊朋友們, 認(rèn)真點(diǎn)哦. 我先洗洗睡了

如有錯(cuò)誤請(qǐng)高手指正.

你的 關(guān)注-收藏-轉(zhuǎn)發(fā) 是我繼續(xù)分享的動(dòng)力!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,197評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,415評(píng)論 3 415
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,104評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,884評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,647評(píng)論 6 408
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,130評(píng)論 1 323
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,208評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,366評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,887評(píng)論 1 334
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,737評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,939評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,478評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,174評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,586評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,827評(píng)論 1 283
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,608評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,914評(píng)論 2 372

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