# 介紹
最近鄰方法植根于基于距離的概念思想。我們認為我們的訓練設定了一個模型,并根據它們與訓練集中的點的接近程度對新點進行預測。一種簡單的方法是使預測類與最接近的訓練數據點類相同。但由于大多數數據集包含一定程度的噪聲,因此更常見的方法是采用一組`k-`最近鄰居的加權平均值。該方法稱為 k-最近鄰居(k-NN)。
給定具有相應目標(`y[1], y[2]....y[n]`)的訓練數據集(`x[1],x[2].....x[n]`),我們可以通過查看一組最近鄰居來對點`z`進行預測。實際的預測方法取決于我們是進行回歸(連續`y[i]`)還是分類(離散`y[i]`)。
對于離散分類目標,可以通過最大投票方案給出預測,通過到預測點的距離加權:

我們這里的預測`f(z)`是所有類別`j`的最大加權值,其中從預測點到訓練點的加權距離`i`由`φ(d[ij])`給出。如果點`i`在類`j.`中,`l[ij]`只是一個指示器函數如果點`i`在類`j`中,則指示器函數取值 1,如果不是,則取值 0 另外,`k`是要考慮的最近點數。
對于連續回歸目標,預測由最接近預測的所有`k`點的加權平均值給出:

很明顯,預測很大程度上取決于距離度量的選擇`d`。
距離度量的常用規范是 L1 和 L2 距離,如下所示:
* 
* 
我們可以選擇許多不同規格的距離指標。在本章中,我們將探討 L1 和 L2 指標,以及編輯和文本距離。
我們還必須選擇如何加權距離。對距離進行加權的直接方法是距離本身。遠離我們預測的點應該比較近點的影響小。最常見的權重方法是通過距離的歸一化逆。我們將在下一個秘籍中實現此方法。
> 注意,k-NN 是一種聚合方法。對于回歸,我們正在執行鄰居的加權平均。因此,預測將不那么極端,并且與實際目標相比變化較小。這種影響的大小將由算法中鄰居的數量`k`決定。
- TensorFlow 入門
- 介紹
- TensorFlow 如何工作
- 聲明變量和張量
- 使用占位符和變量
- 使用矩陣
- 聲明操作符
- 實現激活函數
- 使用數據源
- 其他資源
- TensorFlow 的方式
- 介紹
- 計算圖中的操作
- 對嵌套操作分層
- 使用多個層
- 實現損失函數
- 實現反向傳播
- 使用批量和隨機訓練
- 把所有東西結合在一起
- 評估模型
- 線性回歸
- 介紹
- 使用矩陣逆方法
- 實現分解方法
- 學習 TensorFlow 線性回歸方法
- 理解線性回歸中的損失函數
- 實現 deming 回歸
- 實現套索和嶺回歸
- 實現彈性網絡回歸
- 實現邏輯回歸
- 支持向量機
- 介紹
- 使用線性 SVM
- 簡化為線性回歸
- 在 TensorFlow 中使用內核
- 實現非線性 SVM
- 實現多類 SVM
- 最近鄰方法
- 介紹
- 使用最近鄰
- 使用基于文本的距離
- 使用混合距離函數的計算
- 使用地址匹配的示例
- 使用最近鄰進行圖像識別
- 神經網絡
- 介紹
- 實現操作門
- 使用門和激活函數
- 實現單層神經網絡
- 實現不同的層
- 使用多層神經網絡
- 改進線性模型的預測
- 學習玩井字棋
- 自然語言處理
- 介紹
- 使用詞袋嵌入
- 實現 TF-IDF
- 使用 Skip-Gram 嵌入
- 使用 CBOW 嵌入
- 使用 word2vec 進行預測
- 使用 doc2vec 進行情緒分析
- 卷積神經網絡
- 介紹
- 實現簡單的 CNN
- 實現先進的 CNN
- 重新訓練現有的 CNN 模型
- 應用 StyleNet 和 NeuralStyle 項目
- 實現 DeepDream
- 循環神經網絡
- 介紹
- 為垃圾郵件預測實現 RNN
- 實現 LSTM 模型
- 堆疊多個 LSTM 層
- 創建序列到序列模型
- 訓練 Siamese RNN 相似性度量
- 將 TensorFlow 投入生產
- 介紹
- 實現單元測試
- 使用多個執行程序
- 并行化 TensorFlow
- 將 TensorFlow 投入生產
- 生產環境 TensorFlow 的一個例子
- 使用 TensorFlow 服務
- 更多 TensorFlow
- 介紹
- 可視化 TensorBoard 中的圖
- 使用遺傳算法
- 使用 k 均值聚類
- 求解常微分方程組
- 使用隨機森林
- 使用 TensorFlow 和 Keras