4.2 機器學習 —— KNN & K-Means

這是一篇李航老師《統(tǒng)計學習方法(第二版)》中KNN和K-Means部分的閱讀筆記蛉谜,文中用到了一些書中的表述和自己的理解缭乘。

1. KNN(k 近鄰算法)

1)是什么

??這是一個分類算法,輸入是實例的特征向量宴霸,輸出為實例的類別僧家。首先,我們有一個訓練集赂鲤,它是有標注的;對于一個新輸入的實例贰拿,我們在訓練數(shù)據(jù)集中找到與該實例最近的k個實例蛤袒,然后在這k個實例中進行多數(shù)表決熄云,最終確定新實例的類別膨更。

2)為什么

??k 近鄰算法的三個基本要素是:

  • k 值選擇,若k值較小缴允,則只有與輸入實例較近的訓練實例對預測結(jié)果起作用荚守,訓練的近似誤差會減小,但是由于模型對噪音數(shù)據(jù)的包容性更低练般,估計誤差會增大矗漾,更容易發(fā)生過擬合;反之薄料,若k較大敞贡,模型就會使用較大的鄰域進行預測,這樣就削弱了個別錯誤數(shù)據(jù)的干擾摄职,因此估計誤差會更小一些誊役,但同時較遠的實例也會對預測起作用,因此近似誤差會增大谷市。
  • 距離度量蛔垢,如歐氏距離
  • 分類決策規(guī)則,一般使用多數(shù)表決
    誤分類率
3)怎么做

??其實通過上面的描述也可知迫悠,當數(shù)據(jù)量非常大的時候鹏漆,主要的時間消耗是 k 近鄰搜索,仍然使用線性搜索的方式的話创泄,時間開銷太大艺玲。為了提高 k 近鄰搜索的效率,可以考慮使用特殊的結(jié)構(gòu)存儲訓練數(shù)據(jù)鞠抑,以減少計算距離的次數(shù)饭聚,下面介紹 kd 樹(kd tree)方法。
??kd 樹是一種對 m 維空間中的實例點進行存儲以方便對其進行快速檢索的樹形數(shù)據(jù)結(jié)構(gòu)碍拆。kd 樹是一個二叉樹若治,表示對 m 維空間的一個劃分(partition)慨蓝。構(gòu)造 kd 樹相當于不斷地用垂直于坐標軸的超平面將 m 維空間進行切分,構(gòu)成一系列的 m 維超矩形區(qū)域端幼。kd 樹的每個節(jié)點對應于一個 m 維超矩形區(qū)域礼烈。

??構(gòu)造方式如下:

  • (1)開始:構(gòu)造根節(jié)點,根節(jié)點對應于包含 T 個 m 維空間的超矩形區(qū)域婆跑。
    ??選擇 m 維特征向量的第 1 維作為坐標軸此熬,以所有實例第一維坐標值的中位數(shù)作為切分點,將數(shù)據(jù)集分為兩堆滑进,存放在左右節(jié)點上犀忱,特例(也就是坐標值等于中位數(shù)的樣例)存放在根節(jié)點上;
  • (2)重復:對深度為 j 的節(jié)點上的集合扶关,使用第 l 維坐標的中位數(shù)進行繼續(xù)分割阴汇,直至分割的左右子區(qū)域沒有實例存在。( l = j(mod m) + 1 )
    通過上述方法得到的 kd搜索樹 是平衡的节槐,但未必是最優(yōu)的(因為它不能保證平均搜索次數(shù)最少搀庶,所以不一定是最優(yōu)的)

??搜索方式如下:

  • (1)對于目標點 x ,遞歸地向下搜索铜异,直到子結(jié)點為葉結(jié)點哥倔,并將改葉結(jié)點設(shè)置為“當前最近點”
  • (2)遞歸地向上回退,對每個節(jié)點執(zhí)行以下操作:
    • a)如果該結(jié)點保存的實例點比當前最近點到目標點的距離更近揍庄,那么更新最近點咆蒿;
    • b)以目標點為球心,當前最近距離為半徑畫超球體蚂子,判斷當前節(jié)點及其子節(jié)點是否與球體相交沃测,如果相交,說明更近點可能存在于這個結(jié)點的分值中缆镣,遞歸地對這個結(jié)點進行近鄰搜索芽突;若不相交,那么一定不存在更近點董瞻,向上回退即可寞蚌;
  • (3)當回退到根節(jié)點的時候,搜索結(jié)束钠糊,當當前最近點即為 x 的最近鄰點

問:如果想要最優(yōu)挟秤,需要什么樹結(jié)構(gòu)?B+樹抄伍?紅黑樹艘刚?

2. K-Means(k 均值聚類)

1)是什么

??k 均值聚類是基于樣本集合劃分大的聚類算法。k 均值聚類將樣本集合劃分為 k 個子集截珍,構(gòu)成 k 個類攀甚,將 n 個樣本分到 k 個類中箩朴,每個樣本到期所屬類的中心的據(jù)里最小。每個樣本只能屬于一個類秋度,所以 k 均值聚類是硬聚類炸庞。分幾個模塊介紹:

  • 模型:給定樣本集合 X={x_1, x_2, ..., x_n}每個樣本由一個特征向量表示,特征向量的維數(shù)是m荚斯。k 均值聚類的目標是將n個樣本分到k個不同的類或簇中埠居。
2)為什么
  • 策略:k 均值聚類歸結(jié)為樣本集合 X 的劃分,或者從樣本到類的函數(shù)的選擇問題事期。其策略是通過損失函數(shù)的最小化選取最優(yōu)的劃分滥壕。
    • 首先采用歐氏距離平方作為樣本之間的距離d(x_i, x_j)
    • 然后定義樣本與其所屬類的中心之間的距離的總和為損失函數(shù),即


      k 均值聚類就是求解最優(yōu)化問題
3)怎么做

??但由于這是一個組合優(yōu)化問題兽泣,n 個樣本分到 k 類的可能分法有指數(shù)級個绎橘。k 均值聚類的最優(yōu)求解問題是 NP 難問題,現(xiàn)實中采用迭代的方法進行求解撞叨。

  • 算法:下面就說說這個迭代的過程金踪,每次迭代包括兩個步驟。
    • 首先隨機選擇 k 個樣本點作為初始聚類中心牵敷,將樣本逐個指派到與其最近的中心的類中,得到一個聚類結(jié)果法希;
    • 然后更新每個類的樣本的均值枷餐,作為類的新的中心;
    • 重復以上步驟苫亦,直至收斂為止(譬如聚類結(jié)果不再變化)
      ??k 均值聚類屬于啟發(fā)式方法毛肋,不能保證收斂到全局最優(yōu),初始中心的選擇會直接影響聚類結(jié)果(包括數(shù)量 k 和具體位置)屋剑,那么除了隨機選擇k和初始中心點润匙,還有沒有更好的方案呢?肯定是有的:
  • k 值得選劝ω摇:
    • 可以根據(jù)業(yè)務需求進行選取孕讳,譬如需要分為高、中巍膘、低三類厂财,那么 k 等于3
    • 不過像名詞聚類這樣的任務,更多是無法提前知曉類別數(shù)量的峡懈,那么我們可以用比較直接的方法推測最優(yōu)的 k 值璃饱,也就是對于同一個數(shù)據(jù)集,嘗試使用不同的 k 值進行聚類肪康,然后用類的平均直徑來檢驗各自得到聚類結(jié)果的質(zhì)量荚恶,平均直徑越小越好撩穿。一般來說,平均直徑與類別數(shù)負相關(guān)谒撼,當類別數(shù)增加到某個值k后冗锁,平均直徑不再減小或平緩減小,那么這個k就是一個較優(yōu)的k值嗤栓。為了加速冻河,我們還可以用二分查找的方式確定k的值。
  • 初始中心的選擇:
    • 除了隨機初始化茉帅,還可以使用層次聚類的方式來獲得初始中心(k 值要先確定)叨叙,流程如下
      ????1) 將每個樣例看作一類數(shù)據(jù),計算兩兩之間的最小距離堪澎;
      ????2) 將距離最小的兩個類合并成一個新類擂错,重新計算新類與所有類之間的距離;
      ????3) 重復上述步驟樱蛤,直到類別數(shù)量縮減為k钮呀。
      ????4)計算 k 個類別的中心,作為K-Means的初始中心點
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昨凡,一起剝皮案震驚了整個濱河市爽醋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌便脊,老刑警劉巖蚂四,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件每庆,死亡現(xiàn)場離奇詭異谱醇,居然都是意外死亡,警方通過查閱死者的電腦和手機脉让,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門晌杰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跷睦,“玉大人,你說我怎么就攤上這事肋演∫种睿” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵惋啃,是天一觀的道長哼鬓。 經(jīng)常有香客問我,道長边灭,這世上最難降的妖魔是什么异希? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上称簿,老公的妹妹穿的比我還像新娘扣癣。我一直安慰自己,他們只是感情好憨降,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布父虑。 她就那樣靜靜地躺著,像睡著了一般授药。 火紅的嫁衣襯著肌膚如雪士嚎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天悔叽,我揣著相機與錄音莱衩,去河邊找鬼。 笑死娇澎,一個胖子當著我的面吹牛笨蚁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播趟庄,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼括细,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了戚啥?” 一聲冷哼從身側(cè)響起奋单,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虑鼎,沒想到半個月后辱匿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡炫彩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了絮短。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片江兢。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丁频,靈堂內(nèi)的尸體忽然破棺而出杉允,到底是詐尸還是另有隱情,我是刑警寧澤席里,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布叔磷,位于F島的核電站,受9級特大地震影響奖磁,放射性物質(zhì)發(fā)生泄漏改基。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一咖为、第九天 我趴在偏房一處隱蔽的房頂上張望秕狰。 院中可真熱鬧稠腊,春花似錦、人聲如沸鸣哀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽我衬。三九已至叹放,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挠羔,已是汗流浹背井仰。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留褥赊,地道東北人糕档。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像拌喉,于是被迫代替她去往敵國和親速那。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344