最近鄰法分析

最近鄰法分析是以和其他觀察值的相似性為基礎來分類觀察值的方法。 在機器學習中,這是辨認資料形式的方法,完全不需要確切符合任何已儲存的形式或觀察值。 相似的觀察值會彼此相鄰,相異的觀察值則會彼此相隔。 因此,兩個觀察值相距的距離可用來判斷彼此的相異性。

彼此接近的觀察值稱為「鄰接項」。 新的觀察值 (保留) 存在時,會計算模式中各觀察值的距離。 計算最相似觀察值的分類(最近鄰法),新觀察值會放在包含最近鄰法中個數最多的類別。

您可以指定要檢驗的最近鄰法個數;此數值稱為 k

最近鄰法分析也可以用來計算連續目標的數值。 在此狀況下,會使用最近鄰的平均數或中位數目標值來取得新觀察值的預測值。

最近鄰法分析的資料考量

目標和特性。 目標與功能包括:

  • 名義當變數值代表實質上並未等級化的種類時(例如,有員工工作的公司部門),則此變數可視為名義。 名義變數的範例包括區域、郵遞區號及宗教團體。
  • 序數當變數值代表實質上已等級化的種類時(例如,服務滿意度從非常不滿意到非常滿意分級),則此變數可視為序數。 序數變數的範例包括代表滿意度或信賴程度的態度分數以及偏好等級分數。
  • 尺度如果某一變數可視為尺度(連續),表示它的值代表含有實際意義矩陣的已排序種類,因此適合比較值之間的距離。 尺度變數的範例包括以年份表示的年齡及以千元為單位的收入。

    由最近鄰法分析以相同方式處理名義和序數變數。 本程序假設已指定給所有應變數適當的測量層級,但您可以在來源變數清單的變數上按一下滑鼠右鍵,並選取快顯功能表上的測量層級,暫時變更變數的測量層級。 若要永久變更變數的測量層級,請參閱 變數測量層級

變數清單中各變數旁的圖示可識別測量層級和資料類型:

表 1. 測量層次圖示
  數字 字串 日期 時間
尺度 (連續)
「尺度」圖示
調整日期圖示
調整時間圖示
序數
序數圖示
序數字串圖示
序數日期圖示
序數時間圖示
名義
名義圖示
名義字串圖示
名義日期圖示
名義時間圖示

類別變數編碼。 本程序在整個程序期間,會使用 one-of-c 編碼來暫時記錄類別預測變數與應變數。 如果有變數的 c 類別,則變數會儲存為 c 向量,第一個類別標示為 (1,0 , ... , 0) ,下一個類別標示為 (0,1,0 , ... , 0) , ... , 以及最終類別 (0,0 , ... ,0, 1)。

此編碼方法會增加功能空間的維度。 特別是,維度的總數等於尺度預測變數數目加上所有類型預測的類型數目。 因此,此編碼方法會導致訓練變慢。 如果您的最近鄰法訓練進行的非常慢,在執行程序前,您可以將類似的類別組合在一起,或捨棄具有極少類別的觀察值,以嘗試減少類別預測變數中的類別個數。

所有 one-of-c 編碼都是以訓練資料為基礎,即使已定義保留樣本 (請參閱 分割區 (最近鄰法分析)) 也是如此。 因此,如果保留樣本所包含的觀察值之預測值類別不在訓練資料中,則不會評定這些觀察值。 如果保留樣本所包含的觀察值之應變數類別不在訓練資料中,便會評定這些觀察值。

調整。 尺度功能預設會經過常態化。 即使已定義保留樣本,也會根據訓練資料執行所有重新調整 (請參閱 分割 (最近鄰法分析))。 如果您指定變數來定義分割,很重要的是這些功能必須在訓練樣本和保留樣本之間有類似的分佈。 例如,使用 探索 程序來檢查分割區之間的分佈。

次數加權。 此程序會忽略次數加權。

複製結果。 在隨機指派分割和交叉驗證折疊期間,此程序會使用亂數產生器。 如果您想要確切地抄寫結果,除了使用相同的程序設定之外,請設定 Mersenne Twister 的種子 (請參閱 分割區 (最近鄰法分析)) ,或使用變數來定義分割區及交叉驗證摺疊。

取得最近鄰法分析

本功能需要 Statistics Base 選項。

從功能表中選擇:

分析 > 分類 > 最近鄰接項 ...

  1. 指定一個或多個功能,如果有目標,可將功能視為獨立變數或預測變數。

    目標(選用項目)。 如果未指定任何目標(應變數或回應),則程序只會找出 k 個最近鄰,不會進行任何分類或預測。

    將尺度功能常態化。 經過常態化的功能具有相同的值範圍,可改善估計演算法的效能。 使用調整後常態化 [2*(x−min)/(max−min)]−1, 調整後常態化的值介於 -1 和 1 之間。

    焦點觀察值 ID(選用)。 這可供您標記特別感興趣的觀察值。 例如,研究人員想要判斷一個學區(焦點觀察值)的測驗分數是否及於類似學區的測驗分數。 他使用最近鄰法分析,找出在多個特定功能方面最相似的學區。 然後他比較焦點學區的測驗分數與最鄰近學區的測驗分數。

    焦點觀察值也可用於臨床研究,以選擇與臨床病例相似的控制觀察值。 焦點觀察值會顯示於 k 個最近鄰與距離表、功能空間圖、對等圖和象限地圖中。 焦點觀察值的資訊會儲存在「輸出」標籤上指定的檔案中。

    其中會將指定變數為正值的觀察值視為焦點觀察值, 而無法指定不含正值的變數。

觀察值標籤 (選用)。 觀察值的標記是以功能空間圖、對等圖和象限地圖中的值予以設定。

具有未知測量層級的欄位

若在資料集中出現一或多個未知的變數 (欄位) 測量層級,就會顯示「測量層級」警示。 由於測量層級會影響此程序的結果計算,因此所有變數皆必須具有已定義的測量層級。

掃描資料。 讀取作用中資料集的資料,並且針對目前具有未知測量層級的任何欄位指派預設的測量層級。 若為大型資料集,則讀取時可能需要一些時間。

手動指派。 開啟對話框,以列出具有未知測量層級所有欄位。 您可以使用此對話框以指派測量層級給這些欄位。 您可以在「資料編輯器」的「變數視圖」中指派測量層級。

由於測量層級是此程序的重要項目,因此您在所有欄位皆擁有已定義的測量層級之前,無法存取對話框來執行此程序。

此程序會貼上 KNN 指令語法。