
??????教程全知識點簡介:1.定位、目標。2. K-近鄰算法涵蓋距離度量、k值選擇、kd樹、鳶尾花種類預測數(shù)據(jù)集介紹、練一練、交叉驗證網格搜索、facebook簽到位置預測案例。3. 線性回歸包括線性回歸簡介、線性回歸損失和優(yōu)化、梯度下降法介紹、波士頓房價預測案例、欠擬合和過擬合、正則化線性模型、正規(guī)方程推導方式、梯度下降法算法比較優(yōu)化、維災難。4. 邏輯回歸涵蓋邏輯回歸介紹、癌癥分類預測案例(良惡性乳腺癌腫瘤預測、獲取數(shù)據(jù))、ROC曲線繪制。5. 樸素貝葉斯算法包括樸素貝葉斯算法簡介、概率基礎復習、產品評論情感分析案例(取出內容列數(shù)據(jù)分析、判定評判標準好評差評)。6. 支持向量機涵蓋SVM算法原理、SVM損失函數(shù)、數(shù)字識別器案例。7. 決策樹算法包括決策樹分類原理、cart剪枝、特征工程特征提取、決策樹算法api、泰坦尼克號乘客生存預測案例。8. EM算法涵蓋初識EM算法、EM算法介紹。9. HMM模型包括馬爾科夫鏈、HMM簡介、前向后向算法評估觀察序列概率、維特比算法解碼隱藏狀態(tài)序列、HMM模型API介紹。10. 集成學習進階涵蓋Bagging、xgboost算法原理、otto案例(Otto Group Product Classification Challenge xgboost實現(xiàn))、數(shù)據(jù)變化可視化、lightGBM、stacking算法基本思想、住房月租金預測。11. 聚類算法包括聚類算法api初步使用、聚類算法實現(xiàn)流程、模型評估、算法優(yōu)化、特征降維、用戶對物品類別喜好細分案例、算法選擇指導。12. 數(shù)學基礎涵蓋向量與矩陣范數(shù)、朗格朗日乘子法、Huber Loss、極大似然函數(shù)取對數(shù)原因。

????倉庫code.zip ??直接-->:???https://gitee.com/yinuo112/AI/blob/master/機器學習/嘿馬機器學習(算法篇)/note.md ???????
? 本教程項目亮點
?? 知識體系完整:覆蓋從基礎原理、核心方法到高階應用的全流程內容
?? 全技術鏈覆蓋:完整前后端技術棧,涵蓋開發(fā)必備技能
?? 從零到實戰(zhàn):適合 0 基礎入門到提升,循序漸進掌握核心能力
?? 豐富文檔與代碼示例:涵蓋多種場景,可運行、可復用
?? 工作與學習雙參考:不僅適合系統(tǒng)化學習,更可作為日常開發(fā)中的查閱手冊
?? 模塊化知識結構:按知識點分章節(jié),便于快速定位和復習
?? 長期可用的技術積累:不止一次學習,而是能伴隨工作與項目長期參考
??????全教程總章節(jié)

??????本篇主要內容
機器學習算法定位、目標
定位
- 以算法、案例為驅動的學習,伴隨淺顯易懂的數(shù)學知識
- 作為人工智能領域的提升,掌握更深更有效的解決問題技能
目標
- 掌握機器學習常見算法原理
- 應用Scikit-learn實現(xiàn)機器學習算法的應用,
- 結合場景解決實際問題
1.1 K-近鄰算法簡介
學習目標
-
目標
- 了解什么是KNN算法
- 知道KNN算法求解過程
1 什么是K-近鄰算法
- 根據(jù)你的“鄰居”來推斷出你的類別
1.1 K-近鄰算法(KNN)概念
K Nearest Neighbor算法又叫KNN算法,這個算法是機器學習里面一個比較經典的算法, 總體來說KNN算法是相對比較容易理解的算法
- 定義
如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別。
來源:KNN算法最早是由Cover和Hart提出的一種分類算法
- 距離公式
兩個樣本的距離可以通過如下公式計算,又叫歐式距離 ,關于距離公式會在后面進行討論


1.2 電影類型分析
假設 現(xiàn)在有幾部電影

其中? 號電影不知道類別,如何去預測? 可以利用K近鄰算法的思想

分別計算每個電影和被預測電影的距離,然后求解

1.3 KNN算法流程總結
1)計算已知類別數(shù)據(jù)集中的點與當前點之間的距離
2)按距離遞增次序排序
3)選取與當前點距離最小的k個點
4)統(tǒng)計前k個點所在的類別出現(xiàn)的頻率
5)返回前k個點出現(xiàn)頻率最高的類別作為當前點的預測分類
2 小結
-
K-近鄰算法簡介【了解】
- 定義:就是通過你的"鄰居"來判斷你屬于哪個類別
- 如何計算你到你的"鄰居"的距離:一般時候,都是使用歐氏距離
1.2 k近鄰算法api初步使用
學習目標
-
目標
- 了解sklearn工具的優(yōu)點和包含內容
- 應用sklearn中的api實現(xiàn)KNN算法的簡單使用
- 機器學習流程復習:

- 1.獲取數(shù)據(jù)集
- 2.數(shù)據(jù)基本處理
- 3.特征工程
- 4.機器學習
- 5.模型評估
1 Scikit-learn工具介紹

- Python語言的機器學習工具
- Scikit-learn包括許多知名的機器學習算法的實現(xiàn)
- Scikit-learn文檔完善,容易上手,豐富的API
- 目前穩(wěn)定版本0.19.1
1.1 安裝
pip3 install scikit-learn==0.19.1
安裝好之后可以通過以下命令查看是否安裝成功
import sklearn
- 注:安裝scikit-learn需要Numpy, Scipy等庫
1.2 Scikit-learn包含的內容

- 分類、聚類、回歸
- 特征工程
- 模型選擇、調優(yōu)
2 K-近鄰算法API
-
sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)
- n_neighbors:int,可選(默認= 5),k_neighbors查詢默認使用的鄰居數(shù)
3 案例
3.1 步驟分析
- 1.獲取數(shù)據(jù)集
- 2.數(shù)據(jù)基本處理(該案例中省略)
- 3.特征工程(該案例中省略)
- 4.機器學習
- 5.模型評估(該案例中省略)
3.2 代碼過程
- 導入模塊
from sklearn.neighbors import KNeighborsClassifier
- 構造數(shù)據(jù)集
x = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
- 機器學習 -- 模型訓練
# 實例化API
estimator = KNeighborsClassifier(n_neighbors=2)
# 使用fit方法進行訓練
estimator.fit(x, y)
estimator.predict([[1]])
4 小結
-
sklearn的優(yōu)勢:
- 文檔多,且規(guī)范
- 包含的算法多
- 實現(xiàn)起來容易
-
knn中的api
- sklearn.neighbors.KNeighborsClassifier(n_neighbors=5)
問題
1.距離公式,除了歐式距離,還有哪些距離公式可以使用?
2.選取K值的大?。?/p>
3.api中其他參數(shù)的具體含義?
K-近鄰算法
學習目標
- 掌握K-近鄰算法實現(xiàn)過程
- 知道K-近鄰算法的距離公式
- 知道K-近鄰算法的超參數(shù)K值以及取值問題
- 知道kd樹實現(xiàn)搜索的過程
- 應用KNeighborsClassifier實現(xiàn)分類
- 知道K-近鄰算法的優(yōu)缺點
- 知道交叉驗證實現(xiàn)過程
- 知道超參數(shù)搜索過程
- 應用GridSearchCV實現(xiàn)算法參數(shù)的調優(yōu)
1.3 距離度量
學習目標
-
目標
- 知道機器學習中常見的距離計算公式
1 歐式距離(Euclidean Distance):
歐氏距離是最容易直觀理解的距離度量方法, 小學、初中和高中接觸到的兩個點在空間中的距離一般都是指歐氏距離。

舉例:
X=[[1,1],[2,2],[3,3],[4,4]];
經計算得:
d = 1.4142 2.8284 4.2426 1.4142 2.8284 1.4142
2 曼哈頓距離(Manhattan Distance):
在曼哈頓街區(qū)要從一個十字路口開車到另一個十字路口,駕駛距離顯然不是兩點間的直線距離。這個實際駕駛距離就是“曼哈頓距離”。曼哈頓距離也稱為“城市街區(qū)距離”(City Block distance)。


舉例:
X=[[1,1],[2,2],[3,3],[4,4]];
經計算得:
d = 2 4 6 2 4 2
3 切比雪夫距離 (Chebyshev Distance):
國際象棋中,國王可以直行、橫行、斜行,所以國王走一步可以移動到相鄰8個方格中的任意一個。國王從格子(x1,y1)走到格子(x2,y2)最少需要多少步?這個距離就叫切比雪夫距離。


舉例:
X=[[1,1],[2,2],[3,3],[4,4]];
經計算得:
d = 1 2 3 1 2 1
4 閔可夫斯基距離(Minkowski Distance):
閔氏距離不是一種距離,而是一組距離的定義,是對多個距離度量公式的概括性的表述。
兩個n維變量a(x11,x12,…,x1n)與b(x21,x22,…,x2n)間的閔可夫斯基距離定義為:

其中p是一個變參數(shù):
當p=1時,就是曼哈頓距離;
當p=2時,就是歐氏距離;
當p→∞時,就是切比雪夫距離。
根據(jù)p的不同,閔氏距離可以表示某一類/種的距離。
小結:
1 閔氏距離,包括曼哈頓距離、歐氏距離和切比雪夫距離都存在明顯的缺點:
e.g. 二維樣本(身高[單位:cm],體重[單位:kg]),現(xiàn)有三個樣本:a(180,50),b(190,50),c(180,60)。
a與b的閔氏距離(無論是曼哈頓距離、歐氏距離或切比雪夫距離)等于a與c的閔氏距離。但實際上身高的10cm并不能和體重的10kg劃等號。
2 閔氏距離的缺點:
(1)將各個分量的量綱(scale),也就是“單位”相同的看待了;
(2)未考慮各個分量的分布(期望,方差等)可能是不同的。
5 標準化歐氏距離 (Standardized EuclideanDistance):
標準化歐氏距離是針對歐氏距離的缺點而作的一種改進。
思路:既然數(shù)據(jù)各維分量的分布不一樣,那先將各個分量都“標準化”到均值、方差相等。
表示各個維度的標準差

如果將方差的倒數(shù)看成一個權重,也可稱之為加權歐氏距離(Weighted Euclidean distance)。
舉例:
X=[[1,1],[2,2],[3,3],[4,4]];(假設兩個分量的標準差分別為0.5和1)
經計算得:
d = 2.2361 4.4721 6.7082 2.2361 4.4721 2.2361
6 余弦距離(Cosine Distance)
幾何中,夾角余弦可用來衡量兩個向量方向的差異;機器學習中,借用這一概念來衡量樣本向量之間的差異。
- 二維空間中向量A(x1,y1)與向量B(x2,y2)的夾角余弦公式:

- 兩個n維樣本點a(x11,x12,…,x1n)和b(x21,x22,…,x2n)的夾角余弦為:

即:

夾角余弦取值范圍為[-1,1]。余弦越大表示兩個向量的夾角越小,余弦越小表示兩向量的夾角越大。當兩個向量的方向重合時余弦取最大值1,當兩個向量的方向完全相反余弦取最小值-1。
舉例:
X=[[1,1],[1,2],[2,5],[1,-4]]
經計算得:
d = 0.9487 0.9191 -0.5145 0.9965 -0.7593 -0.8107
7 漢明距離(Hamming Distance)【了解】:
兩個等長字符串s1與s2的漢明距離為:將其中一個變?yōu)榱硗庖粋€所需要作的最小字符替換次數(shù)。
例如:
The Hamming distance between "1011101" and "1001001" is