100天搞定機器學習 Day11 實現KNN

2021-09-25 17:36:30 字數 2008 閱讀 3068

機器學習100天|day1資料預處理

100天搞定機器學習|day2簡單線性回歸分析

100天搞定機器學習|day3多元線性回歸

100天搞定機器學習|day4-6 邏輯回歸

100天搞定機器學習|day7 k-nn

100天搞定機器學習|day8 邏輯回歸的數學原理

100天搞定機器學習|day9-12 支援向量機

day7,我們學習了k最近鄰演算法(k-nn),了解了其定義,如何工作,介紹了集中常用的距離和k值選擇。day11,通過乙個案例實現該演算法。

第一步:匯入相關庫

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

第二步:匯入資料集

dataset = pd.read_csv('../datasets/social_network_ads.csv')

為了方便理解,這裡我們只取age年齡和estimatedsalary估計工資作為特徵

x = dataset.iloc[:, [2, 3]].values

y = dataset.iloc[:, 4].values

第三步:將資料劃分成訓練集和測試集

fromsklearn.model_selectionimport train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size =0.25, random_state=0)

第四步:特徵縮放

from sklearn.preprocessing import standardscaler

sc = standardscaler()

x_train = sc.fit_transform(x_train)

x_test = sc.transform(x_test)

第五步:使用k-nn對訓練集資料進行訓練

從sklearn的neighbors類中匯入kneighborsclassifier學習器

from sklearn.neighbors import kneighborsclassifier

設定好相關的引數 n_neighbors =5(k值的選擇,預設選擇5)、 metric ='minkowski'(距離度量的選擇,這裡選擇的是閔氏距離(預設引數))、 p = 2 (距離度量metric的附屬引數,只用於閔氏距離和帶權重閔氏距離中p值的選擇,p=1為曼哈頓距離, p=2為歐式距離。預設為2)

classifier = kneighborsclassifier(n_neighbors=5, metric ='minkowski', p =2)

classifier.fit(x_train,y_train)

kneighborsclassifier(algorithm='auto',leaf_size=30, metric='minkowski',

metric_params=none, n_jobs=1,n_neighbors=5, p=2,

weights='uniform')

第六步:對測試集進行**

y_pred = classifier.predict(x_test)

第七步:生成混淆矩陣

混淆矩陣可以對乙個分類器效能進行分析,由此可以計算出許多指標,例如:roc曲線、正確率等

fromsklearn.metricsimport confusion_matrix

cm = confusion_matrix(y_test, y_pred)

print(cm)

[[64 4]

[ 3 29]]

print(classification_report(y_test, y_pred))

**集中的0總共有68個,1總共有32個。 在這個混淆矩陣中,實際有68個0,但k-nn**出有67(64+3)個0,其中有3個實際上是1。 同時k-nn**出有33(4+29)個1,其中4個實際上是0。

提取碼:vl2g

100天搞定機器學習

新增好友麻煩備註 github 100天搞定機器學習 day1資料預處理 100天搞定機器學習 day2簡單線性回歸分析 100天搞定機器學習 day3多元線性回歸 100天搞定機器學習 day4 6 邏輯回歸 100天搞定機器學習 day7 k nn 100天搞定機器學習 day8 邏輯回歸的數學...

100天搞定機器學習 Day7 K NN

機器學習100天 day1資料預處理 100天搞定機器學習 day2簡單線性回歸分析 100天搞定機器學習 day3多元線性回歸 100天搞定機器學習 day4 6 邏輯回歸 最近事情無比之多,換了工作 組隊參加了乙個比賽 和朋友搞了一些小專案,公號荒廢許久。堅持是多麼重要,又是多麼艱難,目前事情都...

機器學習學習筆記 day11

周志華 機器學習 學習筆記 最近開始學習機器學習,參考書籍西瓜書,做點筆記。第十一章 特徵選擇與稀疏學習 11.1 子集搜尋與評價 無關特徵 與訓練任務無關的特徵 冗餘特徵 包含的資訊能從其他特徵中推演出來 子集搜尋 前向 後向 雙向 子集評價 計算子集增益 資訊增益越大意味著特徵自己包含的有助於分...