決策樹(shù)算法核心理論知識(shí)解析

  • 決策樹(shù)算法利用非度量(nunmetric)的方式進(jìn)行一系列的查詢問(wèn)答來(lái)判斷和分類开财,被廣泛用于分類和回歸模型,三種最常用的實(shí)現(xiàn)算法是CART荣堰、ID3床未、C4.5。
  • 對(duì)于同一個(gè)數(shù)據(jù)集振坚,特征和節(jié)點(diǎn)可以有多種組合方式薇搁,實(shí)際上可以生成很多決策樹(shù)。我們運(yùn)用決策樹(shù)算法是希望從中找出最合適的樹(shù)渡八,因此算法的目標(biāo)是在合適的節(jié)點(diǎn)上放入合適的特征啃洋。
image.png

決策樹(shù)構(gòu)成

  • 決策樹(shù)由三部分構(gòu)成:根節(jié)點(diǎn)(root)、節(jié)點(diǎn)(node)屎鳍、葉子(leaves)
    root
  • 決策樹(shù)的根部宏娄,即上圖中的第一層“顏色”。
    nodes
  • 決策樹(shù)的節(jié)點(diǎn)逮壁。
    leaves
  • 決策樹(shù)的葉子孵坚,即最終的標(biāo)記,如西瓜窥淆、蘋(píng)果等卖宠。

1.算法優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

  • 可展示性強(qiáng):決策樹(shù)可以提取規(guī)則/決策依據(jù),類似人類邏輯化的決策忧饭,易于向其他人展示和說(shuō)明模型的決策過(guò)程扛伍。
  • 分類速度快:決策樹(shù)只需要一系列的簡(jiǎn)單查詢,無(wú)需計(jì)算和度量词裤,當(dāng)問(wèn)題比較簡(jiǎn)單且訓(xùn)練樣本比較少時(shí)刺洒,非常有效鳖宾。

缺點(diǎn)

  • 最優(yōu)決策樹(shù)難尋:對(duì)于同一個(gè)數(shù)據(jù)集,可以生成很多類型的決策樹(shù)逆航。雖然已有很多先進(jìn)的算法和測(cè)量指標(biāo)鼎文,但如何找到全局最優(yōu)的樹(shù)依舊令人困惑。通常來(lái)講纸泡,我們遵循奧卡姆剃刀原則漂问,傾向于選擇更簡(jiǎn)單緊湊的樹(shù),即最少的節(jié)點(diǎn)和最少的葉子女揭。
    image.png

2.算法核心問(wèn)題

2.1.分支數(shù)量和葉節(jié)點(diǎn)標(biāo)記

  • 分支數(shù)量是指從一個(gè)節(jié)點(diǎn)分出去的分支數(shù)目蚤假,也稱為節(jié)點(diǎn)的分支系數(shù)或分支率(branching ratio)。
  • 根據(jù)分支數(shù)量的不同吧兔,可以把樹(shù)分成二叉樹(shù)(分支數(shù)量恒等于2)和多叉樹(shù)(分支數(shù)量部分大于2)磷仰。一般來(lái)說(shuō),由于計(jì)算復(fù)雜度不同境蔼,計(jì)算機(jī)處理二叉樹(shù)的能力優(yōu)于多叉樹(shù)灶平。
  • 關(guān)于葉節(jié)點(diǎn)標(biāo)記,理想情況下箍土,最終樹(shù)的每一個(gè)葉子都只包含單一樣本逢享,那該類別的標(biāo)記就是葉節(jié)點(diǎn)標(biāo)記;但是吴藻,多數(shù)情況下瞒爬,葉子一般都有多個(gè)類型的樣本,這時(shí)就是少數(shù)服從多數(shù)沟堡,用數(shù)量最多的樣本類別來(lái)標(biāo)記侧但。

2.2.節(jié)點(diǎn)選取和不純度

  • 在構(gòu)建模型時(shí),我們希望節(jié)點(diǎn)數(shù)據(jù)盡可能地“純”航罗,這樣就可以停止分叉禀横。因此,我們定義了一個(gè)“不純度(impurity)”指標(biāo)粥血,并選擇能夠使不純度下降最快的特征做分支柏锄。
  • 不純度用i(N)表示節(jié)點(diǎn)N的不純度。當(dāng)所有數(shù)據(jù)均屬于同一類別時(shí)复亏,i(N)=0绢彤。常見(jiàn)的不純度測(cè)量函數(shù)有3個(gè),分別是熵不純度(entropy impurity)蜓耻、Gini不純度(Gini Index)、方差不純度械巡、誤分類不純度((Classification error)刹淌,其中普遍采用的是前兩種饶氏。

1)熵不純度

  • 熵不純度亦稱為信息量不純度(information impurity),是對(duì)信息量的一個(gè)加權(quán)計(jì)算有勾,適用于類別標(biāo)記概率不等的情況(即P(w_j)≠P(w_i))疹启,計(jì)算公式為:
    i_E(N) = -\sum_j P(w_j)log_2P(w_i)
  • 熵不純度最大值為1,表示最不確定蔼卡;最小值為0喊崖,表示完全確定。
  • 舉例:14個(gè)人中有9個(gè)人買了N雇逞,5個(gè)人沒(méi)買N荤懂,則i(N)為:
    i_E(N) = -{\frac{9}{14}}log_2{\frac{9}{14}} - {\frac{5}{14}}log_2{\frac{5}{14}} = 0.940

2)方差不純度

  • 方差不純度適用于二分類問(wèn)題,計(jì)算公式是:
    i_V(N) = P(w_1)P(w_2)

3)Gini不純度

  • Gini不純度也叫基尼指數(shù)塘砸,由方差不純度推廣而來(lái)节仿,可用于多分類問(wèn)題,表示當(dāng)節(jié)點(diǎn)N的類別標(biāo)記隨機(jī)選取時(shí)對(duì)應(yīng)的誤差率掉蔬,計(jì)算公式為:
    i_g(N) = \sum_{i≠j}P(w_i)P(w_j) = 1- \sum_{j}P^2(w_j)
  • 當(dāng)P(w_1)=P(w_2)=...=P(w_j)=\frac{1}{j}時(shí)廊宪,Gini不純度最大,為1-\frac{1}{j}女轿,表示最不確定箭启;Gini不純度最小為0,表示完全確定蛉迹。

4)誤分類不純度

  • 誤分類不純度用于衡量節(jié)點(diǎn)N處分類誤差的最小概率傅寡,類別標(biāo)記等概率時(shí),誤分類不純度具有最好的峰值特性婿禽,計(jì)算公式為:
    i_C(N) = 1-max_jP(w_j)
  • 需注意的是:誤分類不純度存在不連續(xù)的導(dǎo)數(shù)值赏僧,因而在連續(xù)參數(shù)控件搜索最大值時(shí)會(huì)出現(xiàn)問(wèn)題。

5)不純度變化量

二叉樹(shù)(即二分支):

  • 二分支的不純度變化量以“不純度下降差”進(jìn)行比較扭倾,選擇\Delta i(N)最大的那個(gè)淀零。
    \Delta i(N) = i(N)- P_Li(N_L)-(1-P_L)i(N_R)
  • 其中,N_LN_R分別是左膛壹、右節(jié)點(diǎn)驾中,i(N_L)i(N_R)表示相應(yīng)的不純度。
  • 如果采用的是熵不純度模聋,則不純度下降差就是本次分支所能提供的信息增益(Information Gain)

多叉樹(shù)(即多重分支):

  • 多重分支的不純度變化量以“增益比不純度”進(jìn)行比較肩民,選擇\Delta i_B(s)最大的那個(gè)。
    \Delta i(s) = i(N)- \sum_{k=1}^{B} P_ki(N_k)
    \Delta i_B(s) = \frac{\Delta i(s)}{-\sum_{k=1}^{B} P_k log_2 P_k}

6)不純度知識(shí)總結(jié)

1.我們通過(guò)不純度測(cè)量選擇最合適的分支特征链方,最常用的測(cè)量函數(shù)是基于信息加權(quán)的熵不純度和基于隨機(jī)選取誤差率的Gini不純度持痰。
2.不管用哪種不純度測(cè)量函數(shù),最終我們的目的是計(jì)算和比較各個(gè)特征的不純度變化量祟蚀,選擇變化量最大的特征做分支工窍。
3.實(shí)踐中發(fā)現(xiàn)選擇不同形式的不純度函數(shù)對(duì)最終分類效果及性能影響很小割卖,切勿糾結(jié)于此!

2.3.停止分支準(zhǔn)則

  • 如果我們持續(xù)生長(zhǎng)樹(shù)患雏,直到所有的葉節(jié)點(diǎn)都達(dá)到最小的不純度鹏溯,則數(shù)據(jù)可能會(huì)“過(guò)擬合”。
  • 為防止過(guò)擬合淹仑,我們可以使用停止分支準(zhǔn)則來(lái)控制樹(shù)的生長(zhǎng)丙挽,常見(jiàn)的做法有:
    1.控制驗(yàn)證集或交叉驗(yàn)證的分類誤差:持續(xù)分支直至分類誤差最小化
    2.設(shè)定不純度變化量的閾值:當(dāng)不純度變化量低于閾值時(shí),停止分支
    3.分析不純度變化量的統(tǒng)計(jì)顯著性:當(dāng)不純度下降統(tǒng)計(jì)不顯著匀借,停止分支

1)驗(yàn)證集或交叉驗(yàn)證

  • 首先需說(shuō)明:驗(yàn)證集和交叉驗(yàn)證是不同的颜阐。驗(yàn)證集(validation set)是指用部分的訓(xùn)練樣本(如90%)進(jìn)行訓(xùn)練,然后用剩余部分進(jìn)行驗(yàn)證怀吻;交叉驗(yàn)證(cross-validation)則依賴于從訓(xùn)練集中隨機(jī)選擇的子集瞬浓,適用于樣本量較少的情況。
  • 該做法是預(yù)先設(shè)定一個(gè)分類誤差衡量指標(biāo)蓬坡,如f1score猿棉、accuracy、G-mean屑咳、AUC等萨赁。然后持續(xù)進(jìn)行分支,直至達(dá)到指標(biāo)最優(yōu)為止兆龙。

2)設(shè)定不純度變化閾值

  • 該做法的優(yōu)點(diǎn)在于全部的樣本都可用于訓(xùn)練杖爽,而不需要預(yù)留驗(yàn)證的數(shù)據(jù);但也存在明顯的缺點(diǎn)是:閾值的選擇相當(dāng)困難紫皇,因?yàn)槟P偷淖罱K性能和閾值的大小無(wú)直接的函數(shù)關(guān)系慰安。簡(jiǎn)而言之,就是我們雖然可以通過(guò)閾值停止分支聪铺,但無(wú)法得知這個(gè)模型是否是最優(yōu)的化焕。
  • 我們一般通過(guò)設(shè)定決策樹(shù)最大深度(max_depth)、節(jié)點(diǎn)被分開(kāi)的最小樣本數(shù)(min_samples_split)铃剔、葉子節(jié)點(diǎn)的最小樣本數(shù)(min_samples_leaf)撒桨、分開(kāi)節(jié)點(diǎn)變?yōu)槿~子的最小比例(min_weight_fraction_leaf)、葉子節(jié)點(diǎn)的最大數(shù)(max_leaf_nodes)來(lái)間接設(shè)定閾值键兜。

3)不純度變化量的統(tǒng)計(jì)顯著性分析

  • 這一做法融合了“假設(shè)檢驗(yàn)”技術(shù)凤类,使用卡方檢驗(yàn)來(lái)做分析,當(dāng)某個(gè)節(jié)點(diǎn)“最顯著”的分支生成的卡方統(tǒng)計(jì)量比給定的置信水平低時(shí)普气,認(rèn)為統(tǒng)計(jì)不顯著谜疤,停止分支。
  • 統(tǒng)計(jì)顯著性分析的目的是確定候選分支是否有統(tǒng)計(jì)學(xué)上的意義,即判斷該分支是否明顯有別于隨機(jī)分支茎截,用卡方來(lái)估計(jì)分支s和隨機(jī)分支的偏離度苇侵,則:
    X_2 = \sum_{i=1}^{2} \frac{{(n_{iL}-n_{ie})}^2}{n_{ie}}
  • 其中,n_{iL}是指s分支下w_{i}類的樣本送往左分支的數(shù)目企锌,n_{ie}則是隨機(jī)分支情況下的值。

2.4.剪枝技術(shù)(pruning)

  • 因?yàn)橥V狗种?zhǔn)則是從樹(shù)的根節(jié)點(diǎn)開(kāi)始優(yōu)化于未,在節(jié)點(diǎn)N處進(jìn)行的最優(yōu)分支決策不會(huì)考慮對(duì)其下面一層的節(jié)點(diǎn)的影響撕攒。因此,有時(shí)候烘浦,分支會(huì)因?yàn)槿鄙僮銐虻那罢靶远^(guò)早停止抖坪,稱為“視界局限效應(yīng)”。
  • 剪枝技術(shù)和停止分支準(zhǔn)則不同的是:它允許樹(shù)先充分生長(zhǎng)直到葉節(jié)點(diǎn)都有最小的不純度闷叉,從而克服視界局限效應(yīng)擦俐;然后再考慮是否消去相鄰的葉子或子樹(shù)。
  • 簡(jiǎn)而言之握侧,停止分支準(zhǔn)則是在樹(shù)還是“樹(shù)苗”的時(shí)候就控制它是否繼續(xù)生長(zhǎng)蚯瞧;而剪枝技術(shù)則等樹(shù)長(zhǎng)成“參天大樹(shù)”之后再慢慢修剪。因此品擎,它們也被稱為“預(yù)剪枝”技術(shù)和“后剪枝”技術(shù)埋合。

1)剪枝技術(shù)優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):克服了“視界局限效應(yīng)”,且無(wú)需保留驗(yàn)證集數(shù)據(jù)萄传。
  • 缺點(diǎn):計(jì)算量代價(jià)過(guò)大甚颂,特別是對(duì)于大樣本集。

2)剪枝類型

  • 不純度剪枝:通過(guò)比較刪除后的不純度變化量秀菱,考慮是否刪除相鄰的葉節(jié)點(diǎn)振诬,并令他們的公共父節(jié)點(diǎn)成為新的葉節(jié)點(diǎn)。
  • 規(guī)則剪枝:規(guī)則剪枝的優(yōu)點(diǎn)在于它考慮了上下文信息的區(qū)別衍菱,其在每一個(gè)葉節(jié)點(diǎn)上都附有一條規(guī)則赶么,根據(jù)規(guī)則是否冗余的判斷,進(jìn)行規(guī)則簡(jiǎn)化梦碗,提高模型的推廣能力禽绪。后文中提及的C4.5算法就是基于樹(shù)規(guī)則的剪枝。
  • 綜上所述洪规,我們?cè)谶M(jìn)行決策樹(shù)模型優(yōu)化時(shí)印屁,可從停止分支和剪枝等方面進(jìn)行優(yōu)化。
  • 一般來(lái)說(shuō)斩例,對(duì)于小樣本的數(shù)據(jù)集雄人,由于計(jì)算代價(jià)小,剪枝方法優(yōu)于分支停止方法。

2.5.特征處理

1)連續(xù)值處理

  • 決策樹(shù)對(duì)連續(xù)變量的處理方式是將其離散化础钠。
  • 為了減少計(jì)算量恰力,不管是二叉樹(shù)還是多叉樹(shù),常見(jiàn)做法都是將數(shù)據(jù)一分為二旗吁,計(jì)算使不純度最小的劃分點(diǎn)踩萎。

2)缺失值處理

  • 不同于其他算法,決策樹(shù)對(duì)缺失值的容忍度較高很钓,常用的樹(shù)算法如CART香府、C4.5都支持缺失值處理。
  • 不同樹(shù)算法的缺失值處理方式不同码倦,在此不做具體說(shuō)明企孩。

3.常用樹(shù)算法

在這里,我們介紹3種最常用的決策樹(shù)算法:CART袁稽、ID3勿璃、C4.5

3.1.CART算法

  • CART算法是一種二分遞歸分割技術(shù),把當(dāng)前樣本劃分為兩個(gè)子樣本推汽,使得生成的每個(gè)非葉子結(jié)點(diǎn)都有兩個(gè)分支补疑, 因此CART算法生成的決策樹(shù)是結(jié)構(gòu)簡(jiǎn)潔的二叉樹(shù)(binary tree)。
  • 二叉樹(shù)的分支率(branching ratio)為2民泵,每一步的決策時(shí)只能是“是”或者“否”癣丧,即使一個(gè)特征有多個(gè)取值,也是把數(shù)據(jù)分為兩部分栈妆。任何一個(gè)具有任意分支率的樹(shù)都可以用二叉樹(shù)表示胁编。
image.png

1)CART的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

  • 訓(xùn)練簡(jiǎn)單:二叉樹(shù)具有萬(wàn)能的表達(dá)能力,并且訓(xùn)練上非常簡(jiǎn)便鳞尔。
  • 優(yōu)化簡(jiǎn)單:二叉樹(shù)作為一棵單調(diào)簡(jiǎn)單的樹(shù)嬉橙,在節(jié)點(diǎn)處的判別是一個(gè)一維優(yōu)化的過(guò)程,更容易在節(jié)點(diǎn)處找到最優(yōu)決策寥假。
  • 模型普適:不同另外兩種算法市框,CART既可用于分類,又能用于回歸糕韧。

缺點(diǎn)

  • 模型不穩(wěn)定:CART算法最大的缺點(diǎn)在于枫振,即便是很小的樣本點(diǎn)變動(dòng),也會(huì)導(dǎo)致截然不同的模型萤彩。這個(gè)缺點(diǎn)可以由集成學(xué)習(xí)里的隨機(jī)森林方法粪滤、gradientboost等方法補(bǔ)足。

3.2.ID3算法

  • ID3最早的設(shè)計(jì)意圖是用于處理“語(yǔ)義(無(wú)序)數(shù)據(jù)”的雀扶,因此杖小,對(duì)于它并不能直接處理數(shù)值連續(xù)變量,但它開(kāi)創(chuàng)了使用熵來(lái)度量不純度的先河,率先對(duì)信息進(jìn)行了加權(quán)計(jì)算予权。
  • 當(dāng)然昂勉,作為一個(gè)創(chuàng)新的算法,有著很多的不足扫腺。

1)ID3的不足

  • 無(wú)法處理連續(xù)變量和缺失值岗照。
  • 無(wú)法剪枝,沒(méi)有考慮過(guò)擬合的問(wèn)題斧账。

3.3.C4.5算法

C4.5是ID3的作者改良后的版本谴返,它解決了ID3的不足,包括連續(xù)變量的處理咧织、剪枝技術(shù)等。

1)C4.5的不足

  • 計(jì)算效率低:C4.5生成的是多叉樹(shù)籍救,相較二叉樹(shù)习绢,在節(jié)點(diǎn)處理上更復(fù)雜,運(yùn)行效率較低蝙昙。
  • 不支持回歸:C4.5只能用于分類闪萄,這也限制了它的推廣。

3.4.算法比較

image.png

對(duì)這三個(gè)算法感興趣想要進(jìn)一步了解的童鞋可以看一下這位博主的文章奇颠,寫(xiě)得非常詳細(xì):
1.《決策樹(shù)算法原理(上)》https://www.cnblogs.com/pinard/p/6050306.html
2.《決策樹(shù)算法原理(下)》https://www.cnblogs.com/pinard/p/6053344.html

THE END

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末败去,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子烈拒,更是在濱河造成了極大的恐慌圆裕,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荆几,死亡現(xiàn)場(chǎng)離奇詭異吓妆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)吨铸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)行拢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人诞吱,你說(shuō)我怎么就攤上這事舟奠。” “怎么了房维?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵沼瘫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我握巢,道長(zhǎng)晕鹊,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮溅话,結(jié)果婚禮上晓锻,老公的妹妹穿的比我還像新娘。我一直安慰自己飞几,他們只是感情好砚哆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著屑墨,像睡著了一般躁锁。 火紅的嫁衣襯著肌膚如雪移宅。 梳的紋絲不亂的頭發(fā)上起愈,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天幸撕,我揣著相機(jī)與錄音胁出,去河邊找鬼席噩。 笑死月匣,一個(gè)胖子當(dāng)著我的面吹牛承边,可吹牛的內(nèi)容都是我干的掖蛤。 我是一名探鬼主播忧设,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼刁标,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了址晕?” 一聲冷哼從身側(cè)響起膀懈,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎谨垃,沒(méi)想到半個(gè)月后启搂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乘客,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年狐血,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片易核。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匈织,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牡直,到底是詐尸還是另有隱情缀匕,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布碰逸,位于F島的核電站乡小,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏饵史。R本人自食惡果不足惜满钟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一胜榔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧湃番,春花似錦夭织、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至泥兰,卻和暖如春弄屡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鞋诗。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工膀捷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人削彬。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓担孔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吃警。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354