讀書(shū)筆記 | 《機(jī)器學(xué)習(xí)》- 模型評(píng)估與選擇

-- 原創(chuàng)介陶,未經(jīng)授權(quán),禁止轉(zhuǎn)載 2017.10.31 --

傳送門:

機(jī)器學(xué)習(xí)的基本概念(一):http://www.reibang.com/p/10fc7e397a3e

機(jī)器學(xué)習(xí)的基本概念(二):http://www.reibang.com/p/b3edf9c9f2c8

機(jī)器學(xué)習(xí)

機(jī)器通過(guò)學(xué)習(xí)趾痘,得到了模型溃槐。我們需要評(píng)判模型的泛化能力如何羞反。

衡量模型泛化能力的評(píng)價(jià)標(biāo)準(zhǔn)吗蚌,就是【性能度量】腿倚。這一章就是圍繞性能度量,講述如何評(píng)估模型蚯妇。

一敷燎、結(jié)論:

模型的好壞(泛化能力)= 學(xué)習(xí)算法的能力 + 數(shù)據(jù)的充分性 + 學(xué)習(xí)任務(wù)本身的難易度

所以,模型的“好壞”是相對(duì)的箩言,它不僅取決于算法和數(shù)據(jù)硬贯,還決定于任務(wù)需求。

二分扎、評(píng)判方法

模型評(píng)估澄成,是通過(guò)某種實(shí)驗(yàn)方法,評(píng)估測(cè)得某學(xué)習(xí)器的性能度量畏吓,以此做為評(píng)判方法。

除此之外卫漫,還需要輔助以假設(shè)檢驗(yàn)菲饼,比較學(xué)習(xí)器之間的泛化能力。

性能評(píng)估

1. 基本術(shù)語(yǔ):

【錯(cuò)誤率】:分類錯(cuò)誤的樣本數(shù) 占 樣本總數(shù)的比例列赎。
【精度】: 1 - 錯(cuò)誤率宏悦。
【誤差】:學(xué)習(xí)器的實(shí)際預(yù)測(cè)輸出與樣本的真實(shí)輸出之間的差異源葫。
【訓(xùn)練誤差】:學(xué)習(xí)器在訓(xùn)練集上的誤差息堂。
【泛化誤差】:學(xué)習(xí)器在新樣本上的誤差。

【過(guò)擬合】:學(xué)習(xí)器把訓(xùn)練樣本學(xué)得“太好”块促,把訓(xùn)練樣本自身的一些特點(diǎn)當(dāng)做了所有潛在樣本都會(huì)具有的一般性質(zhì)荣堰,這樣會(huì)導(dǎo)致泛化能力下降。

舉例說(shuō)明:

過(guò)擬合與欠擬合

【欠擬合】:與過(guò)擬合相對(duì)竭翠,指對(duì)訓(xùn)練樣本的一般性質(zhì)尚未學(xué)好振坚。
ps:過(guò)擬合無(wú)法徹底避免,只能“緩解”斋扰。

【測(cè)試集】:通過(guò)實(shí)驗(yàn)測(cè)試學(xué)習(xí)器的泛化能力的樣本集合。

休息一下

2. 實(shí)驗(yàn)評(píng)估方法:

這些方法是對(duì)測(cè)試樣本的選擇传货,為了得到更加準(zhǔn)確的測(cè)試結(jié)果屎鳍,測(cè)試集應(yīng)該盡可能與訓(xùn)練集互斥哥艇。即貌踏,測(cè)試樣本盡量不在訓(xùn)練集中出現(xiàn)眷昆,未在訓(xùn)練過(guò)程中使用過(guò)帅刊。

實(shí)驗(yàn)評(píng)估方法
1)留出法

步驟:
將數(shù)據(jù)集D劃分為兩個(gè)互斥的集合吧兔,其中一個(gè)集合作為訓(xùn)練集S欧穴,另一個(gè)作為測(cè)試集T涮帘。在S上訓(xùn)練出模型后,用T來(lái)評(píng)估其測(cè)試誤差笑诅,作為對(duì)泛化誤差的估計(jì)调缨。

需要注意的是:

  1. 訓(xùn)練/測(cè)試集的劃分要盡可能保持?jǐn)?shù)據(jù)分布的一致性。
  2. 采用若干次隨機(jī)劃分吆你、重復(fù)進(jìn)行試驗(yàn)評(píng)估后弦叶,取平均值作為留出法的評(píng)估結(jié)果。

解釋:

  1. 訓(xùn)練/測(cè)試集的劃分要盡可能保持?jǐn)?shù)據(jù)分布的一致性妇多,避免因數(shù)據(jù)劃分過(guò)程引入額外的偏差而對(duì)最終結(jié)果產(chǎn)生影響伤哺。

    例如,在分類任務(wù)中者祖,要保持樣本的類別比例相似立莉。一般采用分層采樣。

    【分層采樣】:保留類別比例的采樣方式七问。

  2. 因?yàn)榇嬖诙喾N方式對(duì)初始數(shù)據(jù)集D進(jìn)行分割蜓耻,不同的劃分方式導(dǎo)致不同的訓(xùn)練/測(cè)試集,相應(yīng)的械巡,模型評(píng)估的結(jié)果也會(huì)有差別刹淌。

    所以,在使用留出法時(shí)讥耗,一般要采用若干次隨機(jī)劃分有勾、重復(fù)進(jìn)行試驗(yàn)評(píng)估后取平均值作為留出法的評(píng)估結(jié)果。

常用做法: 將2/3 ~ 4/5 的樣本用于訓(xùn)練古程,剩余樣本用于測(cè)試柠衅。

2)交叉驗(yàn)證法

步驟:

先將數(shù)據(jù)集D劃分為k個(gè)大小相似的互斥子集(分層采樣)得到,然后每次用k-1個(gè)子集的并集作為訓(xùn)練集籍琳,余下的那個(gè)子集作為測(cè)試集菲宴。

這樣就能得到k組訓(xùn)練/測(cè)試集。從而可進(jìn)行k次訓(xùn)練和測(cè)試趋急,最終返回的是這k個(gè)測(cè)試結(jié)果的均值喝峦。

所以,交叉驗(yàn)證法也稱為“k折交叉驗(yàn)證”呜达,k通常取10谣蠢,稱為10折交叉驗(yàn)證。

10折交叉示意圖:

10折交叉示意圖

需要注意的是:

與留出法類似查近,采用若干次隨機(jī)劃分眉踱、重復(fù)進(jìn)行試驗(yàn)評(píng)估后,取平均值作為交叉驗(yàn)證法的評(píng)估結(jié)果霜威。

常見(jiàn)的有“10次10折交叉驗(yàn)證”谈喳。

特例:留一法

假設(shè)數(shù)據(jù)集D包含m個(gè)樣本,若k=m戈泼,則得到了交叉驗(yàn)證法的特例:留一法(LOO)婿禽。

優(yōu)點(diǎn):它不受隨機(jī)樣本劃分的影響,因?yàn)槊總€(gè)子集都會(huì)包含一個(gè)樣本大猛。所以留一法的評(píng)估結(jié)果最準(zhǔn)確扭倾。

缺點(diǎn):數(shù)據(jù)集較大時(shí),訓(xùn)練m個(gè)模型計(jì)算開(kāi)銷太大挽绩。

3)自助法

以自助采樣法為基礎(chǔ)膛壹,從原始數(shù)據(jù)集D中,采樣產(chǎn)生數(shù)據(jù)集D‘唉堪,其中數(shù)據(jù)集D中約有36.8%的樣本未出現(xiàn)在采樣數(shù)據(jù)集D’中模聋,這部分?jǐn)?shù)據(jù)可以用于測(cè)試。

自助法

優(yōu)點(diǎn):在數(shù)據(jù)集較小巨坊,難以有效劃分訓(xùn)練/測(cè)試集時(shí)很有用撬槽。
缺點(diǎn):自助法產(chǎn)生的數(shù)據(jù)集改變了初始數(shù)據(jù)集的分布,會(huì)引入估計(jì)偏差趾撵。

休息一下

三侄柔、 常用的性能度量

【性能度量】:衡量模型泛化能力的評(píng)價(jià)標(biāo)準(zhǔn)。反應(yīng)了任務(wù)需求占调。

不同任務(wù)暂题,使用的性能度量不同。

性能度量
1) 回歸任務(wù)

最常用的性能度量是“均方誤差”:

均方誤差

2)聚類任務(wù)

聚類性能度量也稱為聚類“有效性指標(biāo)”究珊,主要分兩類:

a)一類薪者,是將聚類結(jié)果與某個(gè)“參考模型”進(jìn)行比較,稱為【外部指標(biāo)】剿涮。

常用的指標(biāo)有:
JC系數(shù)言津,F(xiàn)M指數(shù)攻人,Rand指數(shù)。

結(jié)果在[0悬槽,1]區(qū)間怀吻,值越大越好。

b)另一類初婆,是直接考察聚類結(jié)果而不用任何模型蓬坡,稱為【內(nèi)部指標(biāo)】。

常用的指標(biāo)有:
DB指數(shù)磅叛,Dunn指數(shù)屑咳。

DB指數(shù)越小越好,Dunn指數(shù)越大越好弊琴。

3)分類任務(wù)

a)錯(cuò)誤率兆龙、精度

【錯(cuò)誤率】:分類錯(cuò)誤的樣本數(shù) 占 樣本總數(shù)的比例。
【精度】: 1 - 錯(cuò)誤率访雪。

錯(cuò)誤率详瑞、精度
b)查準(zhǔn)率與查全率

查準(zhǔn)率也稱為【準(zhǔn)確率】。
查全率也稱為【召回率】臣缀。

下圖給出了二者的定義:

查準(zhǔn)率坝橡、查全率

查準(zhǔn)率與查全率是一對(duì)矛盾的度量。
一般精置,查準(zhǔn)率高時(shí)计寇,查全率會(huì)低;查全率高時(shí)脂倦,查準(zhǔn)率偏低番宁。

P-R曲線

以查全率為橫軸,查準(zhǔn)率為縱軸赖阻,作圖蝶押。即查準(zhǔn)率-查全率曲線,簡(jiǎn)稱P-R曲線火欧。

i) 計(jì)算步驟:

根據(jù)學(xué)習(xí)器的預(yù)測(cè)結(jié)果對(duì)樣例進(jìn)行排序棋电,排在前面的是“最可能”的正例樣本,排在后面的是“最不可能”的正例樣本苇侵。

按此順序赶盔,逐個(gè)把樣本作為正例進(jìn)行預(yù)測(cè),則每次可以計(jì)算出當(dāng)前的查全率榆浓、查準(zhǔn)率于未。

ii)檢驗(yàn)查全率、查準(zhǔn)率的性能指標(biāo):

  • 平衡點(diǎn) BEP:查全率=查準(zhǔn)率 時(shí)的取值。
  • F1度量:基于查準(zhǔn)率與查全率的調(diào)和平均定義的烘浦。
F1度量

查準(zhǔn)率與查全率的平衡選擇抖坪,取決于你要解決的問(wèn)題。

例如在商品推薦系統(tǒng)中谎倔,為了盡可能少打擾用戶柳击,更希望推薦內(nèi)容是用戶感興趣的,此時(shí)查準(zhǔn)率更重要片习。

如果是在逃犯信息檢索系統(tǒng)中,希望盡可能少漏掉逃犯蹬叭,此時(shí)查全率更重要藕咏。

F1度量的一般形式
c)ROC曲線

全稱是“受試者工作特征”曲線。以【假正例率FPR】為橫軸秽五,【真正例率TPR】為縱軸孽查。作圖。

i)計(jì)算步驟:

與P-R曲線類似坦喘,根據(jù)學(xué)習(xí)器的預(yù)測(cè)結(jié)果對(duì)樣例進(jìn)行排序盲再,按此順序逐個(gè)把樣本作為正例進(jìn)行預(yù)測(cè),算出FPR瓣铣、TPR答朋。

FPR、TPR

ii)為什么要用ROC曲線棠笑?

排序本身質(zhì)量的好壞梦碗,體現(xiàn)了學(xué)習(xí)器在不同任務(wù)下泛化能力的好壞。ROC曲線則是從這個(gè)角度來(lái)衡量學(xué)習(xí)器泛化能力的蓖救。

ROC與AUC

AUC是ROC曲線下的面積洪规,以此判斷兩個(gè)學(xué)習(xí)器的性能。

d)代價(jià)敏感錯(cuò)誤率 與 代價(jià)曲線

i)為什么要用代價(jià)曲線:

現(xiàn)實(shí)生活中循捺,不同類型的錯(cuò)誤斩例,造成的后果不同。

比如从橘,醫(yī)療診斷中念赶,將患者診斷為健康人,與洋满,將健康人診斷為患者晶乔,帶來(lái)的后果完全不同。誤診為健康人牺勾,后果是患者可能喪失了最佳治療時(shí)機(jī)正罢。

所以,為權(quán)衡不同類型的錯(cuò)誤所造成的不同損失驻民,為錯(cuò)誤賦予【非均等代價(jià)】的概念翻具。

在【非均等代價(jià)】下履怯,代價(jià)曲線可以反映,學(xué)習(xí)器的期望總體代價(jià)裆泳。

我們尋求的叹洲,就是總體代價(jià)最小化。

ii)繪制步驟

繪制
代價(jià)曲線
放松一下

四工禾、比較檢驗(yàn)

1)概念解釋

學(xué)習(xí)器之間泛化能力的比較运提,無(wú)法通過(guò)直接比較性能度量的值的大小。需要通過(guò)統(tǒng)計(jì)假設(shè)檢驗(yàn)來(lái)比較闻葵。

原因:
  1. 我們希望比較的是學(xué)習(xí)器之間的泛化能力民泵,然而通過(guò)實(shí)驗(yàn)評(píng)估方法,我們獲得的是測(cè)試集上的性能槽畔。兩者的對(duì)比結(jié)果可能未必相同栈妆。

  2. 測(cè)試集上的性能與測(cè)試集本身的選擇有很大關(guān)系,而測(cè)試集大小不同厢钧,測(cè)試樣例不同鳞尔,測(cè)試結(jié)果也會(huì)不同。

  3. 機(jī)器學(xué)習(xí)算法本身有一定的隨機(jī)性早直,即便用相同的參數(shù)設(shè)置在同一個(gè)測(cè)試集上運(yùn)行多次寥假,結(jié)果也會(huì)不同。

所以莽鸿,不能直接比較性能度量值的大小昧旨,而是需要用假設(shè)檢驗(yàn)進(jìn)行比較。

2)常用的比較方法

對(duì)于單個(gè)學(xué)習(xí)器和多個(gè)學(xué)習(xí)器有不同的比較方法祥得。

假設(shè)檢驗(yàn)法

舉例:

以錯(cuò)誤率為性能度量兔沃,進(jìn)行假設(shè)檢驗(yàn)。
假設(shè)檢驗(yàn)中的“假設(shè)”是對(duì)學(xué)習(xí)器泛化錯(cuò)誤率分布的某種猜想级及。

現(xiàn)實(shí)任務(wù)中乒疏,我們并不知道學(xué)習(xí)器的泛化錯(cuò)誤率,只知道測(cè)試錯(cuò)誤率饮焦。二者接近的可能性很大怕吴,以此可以推算出泛化錯(cuò)誤率的分布。

  • 對(duì)于單個(gè)學(xué)習(xí)器县踢,常用的方法有二項(xiàng)檢驗(yàn)转绷,t檢驗(yàn)。
二項(xiàng)檢驗(yàn)

有多個(gè)測(cè)試錯(cuò)誤率時(shí)硼啤,可采用t檢驗(yàn)方法比較议经。

t分布示意圖
常用臨界值
  • 對(duì)于多個(gè)學(xué)習(xí)器,常用的方法有,交叉驗(yàn)證t檢驗(yàn)煞肾,McNemar檢驗(yàn)咧织,F(xiàn)riedman檢驗(yàn)與Nemenyi后續(xù)檢驗(yàn)。

    • 交叉驗(yàn)證t檢驗(yàn) 和 McNemar檢驗(yàn)籍救,是在一個(gè)數(shù)據(jù)集上比較兩個(gè)算法的性能习绢。

    • Friedman檢驗(yàn) 與 Nemenyi后續(xù)檢驗(yàn),是在一組數(shù)據(jù)集上比較多個(gè)算法的性能蝙昙。

對(duì)于兩個(gè)學(xué)習(xí)器闪萄,若使用k折交叉驗(yàn)證法得到測(cè)試錯(cuò)誤率,則可用k折交叉驗(yàn)證“成對(duì)t檢驗(yàn)”來(lái)進(jìn)行比較檢驗(yàn)耸黑。

進(jìn)行有效的假設(shè)檢驗(yàn)桃煎,一個(gè)重要前提是,測(cè)試錯(cuò)誤率均為泛化錯(cuò)誤率的獨(dú)立采樣大刊。所以一般采用“5 x 2交叉驗(yàn)證”法,盡量保證測(cè)試錯(cuò)誤率的獨(dú)立性三椿。

Friedman檢驗(yàn)是基于多個(gè)算法進(jìn)行排序的檢驗(yàn)缺菌。

F檢驗(yàn)常用臨界值

經(jīng)過(guò)F檢驗(yàn),說(shuō)明算法的性能顯著不同搜锰,需要進(jìn)行“后續(xù)檢驗(yàn)”進(jìn)一步區(qū)別各算法伴郁。

Nemenyi檢驗(yàn)常用臨界值
休息一下

五、偏差與方差

“偏差-方差分解”是解釋學(xué)習(xí)算法泛化能力的重要工具蛋叼。它試圖對(duì)學(xué)習(xí)算法的期望泛化錯(cuò)誤率進(jìn)行拆解焊傅。

以回歸任務(wù)為例,泛化誤差可分解為狈涮,偏差+方差+噪聲之和狐胎。

【偏差】度量了學(xué)習(xí)算法的期望預(yù)測(cè)與真實(shí)結(jié)果的偏離程度,即刻畫(huà)了學(xué)習(xí)算法本身的擬合能力歌馍。

【方差】度量了同樣大小的訓(xùn)練集的變動(dòng)所導(dǎo)致的學(xué)習(xí)性能的變化握巢,即刻畫(huà)了數(shù)據(jù)擾動(dòng)所造成的影響。

【噪聲】則表達(dá)了在當(dāng)前任務(wù)上任何學(xué)習(xí)算法所能達(dá)到的期望泛化誤差的下界松却,即刻畫(huà)了學(xué)習(xí)問(wèn)題本身的難度暴浦。

  • 偏差-方差分解說(shuō)明,泛化能力是由學(xué)習(xí)算法的能力晓锻、數(shù)據(jù)的充分性以及 學(xué)習(xí)任務(wù)本身的難易度 共同決定的歌焦。

給定學(xué)習(xí)任務(wù),為了取得好的泛化能力砚哆,則需使偏差較小独撇,即能夠充分?jǐn)M合數(shù)據(jù);并且方差較小,即使得數(shù)據(jù)擾動(dòng)產(chǎn)生的影響較小券勺。

一般來(lái)說(shuō)绪钥,偏差與方差是有沖突的,稱為偏差-方差窘境关炼。

偏差-方差窘境

至此程腹,內(nèi)容就講完了。上一張全家福~~

全家福

最后儒拂,想成為一名AI產(chǎn)品經(jīng)理寸潦,求推薦~

-- 原創(chuàng),未經(jīng)授權(quán)社痛,禁止轉(zhuǎn)載 2017.10.31 --

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末见转,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蒜哀,更是在濱河造成了極大的恐慌斩箫,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撵儿,死亡現(xiàn)場(chǎng)離奇詭異纱意,居然都是意外死亡乳绕,警方通過(guò)查閱死者的電腦和手機(jī)饲做,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門姚糊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人浪默,你說(shuō)我怎么就攤上這事牡直。” “怎么了纳决?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵碰逸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我岳链,道長(zhǎng)花竞,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任掸哑,我火速辦了婚禮约急,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苗分。我一直安慰自己厌蔽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布摔癣。 她就那樣靜靜地躺著奴饮,像睡著了一般纬向。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戴卜,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天逾条,我揣著相機(jī)與錄音,去河邊找鬼投剥。 笑死师脂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的江锨。 我是一名探鬼主播吃警,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼啄育!你這毒婦竟也來(lái)了酌心?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挑豌,失蹤者是張志新(化名)和其女友劉穎安券,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體氓英,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡完疫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了债蓝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盛龄,死狀恐怖饰迹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情余舶,我是刑警寧澤啊鸭,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站匿值,受9級(jí)特大地震影響赠制,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挟憔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一钟些、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧绊谭,春花似錦政恍、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)迫筑。三九已至,卻和暖如春宗弯,著一層夾襖步出監(jiān)牢的瞬間脯燃,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工蒙保, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辕棚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓追他,卻偏偏與公主長(zhǎng)得像坟募,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子邑狸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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