第9章 mds:視覺化地研究參議員相似性
基於相似性聚類:本章的主旨是,對不同的觀測記錄,如何理解用距離的概念來闡明它們之間的相似性和相異性。
多維定標技術(multidimensional scaling, mds),目的是基於觀察值之間的距離度量進行聚類。只通過所有點之間的距離度量對資料進行視覺化。
mds處理過程:輸入乙個包含資料集中任意兩點之間距離的距離矩陣,返回乙個座標集合,這個集合可以近似反映每對資料點之間的距離(維度低時資訊會有缺失,只能說近似)
下面是乙個簡單的例子:
#距離度量與多維定標簡介#隨機產生"使用者"-"評分"矩陣
set.seed(851982)
ex.matrix
row.names(ex.matrix)
colnames(ex.matrix)
#將矩陣與本身的轉置相乘,得到"使用者"與"使用者"之間的差異矩陣
ex.mult
#資料點之間的距離矩陣
通過記名投票記錄對參議員進行聚類:
與上面思路一樣,不同參議員之間對法案的贊成、反對、棄權進行分析,得到差異矩陣、距離矩陣、多維定標,進而視覺化地展現出來。
載入資料:
library(foreign)對資料進行簡單的處理:刪除投票數少的觀測、簡化投票情況:編碼123簡化為贊成票;編碼456簡化為反對票;編碼7890簡化為棄權票library(ggplot2)
data.dir
data.files
#檢視行數與列數
#dim(rollcall.data[[1]])
rollcall.simplified計算距離矩陣與多維定標:return(as.matrix(no.pres[, 10:ncol(no.pres)]))
}
多維定標時乘的(-1), 是為了直觀,一般認為民主黨為左派,共和黨為右派
對rollcall.mds進行簡單的處理,方便後續作圖
congresses以第110屆為例,對國會成員進行視覺化處理:注意呼叫rollcall.mds時列表序號由1開始而不是0for (i in 1:length(rollcall.mds))
這裡先建立ggplot物件,儲存了基本資訊;後面畫了兩張圖,一張是用點的形狀表達,另一張用具體名字表達
將所有屆的圖分別畫出來,並放在一起比較(facet_wrap()函式可以根據congress將不同屆的圖分開來畫)
需要注意的是,雖然上圖中,101屆看起來距離比較近,但是並不能說明兩黨之間是不分化的,因為相同符號的點(相同的黨派)仍然是各自聚在一起而彼此分離的。"看起來比其他圖要近"僅僅是因為座標軸的問題,因為這11張圖採用同一尺度的座標軸。同時,圖與圖的這些差異也不足以說明101屆分化程度較輕,因為這種情況很有可能是其他因素(比如觀察值的數量等)影響的。
《機器學習 實用案例解析》讀書筆記0
1.關於r語言的入門 感覺書上介紹的不是很好,原來沒接觸r,我是看下面這篇文章的。2.書中的源 作者這本書的源 在下面這個鏈結下,不過我下著下著沒速度了 3.安裝程式包 感覺書上講得太什麼了,直接用rstudio裝,介面右下角,packages install install from reposi...
讀書筆記 機器學習 實用案例解析(6)
第6章 正則化 文字回歸 線性回歸的非線性擴充套件 廣義加性模型 gam,generalized additive model r語言中可用gam 函式實現 多項式回歸 degree值不能無限增大,否則會產生過擬合 overfitting 現象。過擬合 指模型擬合了部分雜訊 避免過擬合的手段 交叉驗...
機器學習讀書筆記
第一章 引言介紹一些常識引入什麼是機器學習,機器學習的一些術語資料,規律,泛化,假設空間歸納偏好。1,假設空間 假設空間 監督學習的目的在於學習乙個由輸入到輸出的對映,這一對映由模型來表示。換句話說,學習的目的就在於找到最好的這樣的模型。模型屬於由輸入空間到輸出空間的對映集合,這個集合就是假設空間 ...