最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python機器學(xué)習(xí)之scikit-learn庫中KNN算法的封裝與使用方法

 更新時間:2018年12月14日 14:28:07   作者:我是馬克思小清新  
這篇文章主要介紹了Python機器學(xué)習(xí)之scikit-learn庫中KNN算法的封裝與使用方法,結(jié)合實例形式分析了scikit-learn庫中KNN算法的相關(guān)調(diào)用與使用技巧,需要的朋友可以參考下

本文實例講述了Python機器學(xué)習(xí)之scikit-learn庫中KNN算法的封裝與使用方法。分享給大家供大家參考,具體如下:

1、工具準備,python環(huán)境,pycharm

2、在機器學(xué)習(xí)中,KNN是不需要訓(xùn)練過程的算法,也就是說,輸入樣例可以直接調(diào)用predict預(yù)測結(jié)果,訓(xùn)練數(shù)據(jù)集就是模型。當(dāng)然這里必須將訓(xùn)練數(shù)據(jù)和訓(xùn)練標簽進行擬合才能形成模型。

3、在pycharm中創(chuàng)建新的項目工程,并在項目下新建KNN.py文件。

import numpy as np
from math import sqrt
from collections import Counter
class KNNClassifier:
  def __init__(self,k):
    """初始化KNN分類器"""
    assert k >= 1
    """斷言判斷k的值是否合法"""
    self.k = k
    self._X_train = None
    self._y_train = None
  def fit(self,X_train,y_train):
    """根據(jù)訓(xùn)練數(shù)據(jù)集X_train和Y_train訓(xùn)練KNN分類器,形成模型"""
    assert X_train.shape[0] == y_train.shape[0]
    """數(shù)據(jù)和標簽的大小必須一樣
    assert self.k <= X_train.shape[0]
    """k的值不能超過數(shù)據(jù)的大小"""
    self._X_train = X_train
    self._y_train = y_train
    return self
  def predict(self,X_predict):
    """必須將訓(xùn)練數(shù)據(jù)集和標簽擬合為模型才能進行預(yù)測的過程"""
    assert self._X_train is not None and self._y_train is not None
    """訓(xùn)練數(shù)據(jù)和標簽不可以是空的"""
    assert X_predict.shape[1]== self._X_train.shape[1]
    """待預(yù)測數(shù)據(jù)和訓(xùn)練數(shù)據(jù)的列(特征個數(shù))必須相同"""
    y_predict = [self._predict(x) for x in X_predict]
    return np.array(y_predict)
  def _predict(self,x):
    """給定單個待測數(shù)據(jù)x,返回x的預(yù)測數(shù)據(jù)結(jié)果"""
    assert x.shape[0] == self._X_train.shape[1]
    """x表示一行數(shù)據(jù),即一個數(shù)組,那么它的特征數(shù)據(jù)個數(shù),必須和訓(xùn)練數(shù)據(jù)相同
    distances = [sqrt(np.sum((x_train - x)**2))for x_train in self._X_train]
    nearest = np.argsort(distances)
    topk_y = [self._y_train[i] for i in nearest[:self.k]]
    votes = Counter(topk_y)
    return votes.most_common(1)[0][0]

4、新建test.py文件,引入KNNClassifier對象。

from KNN.py import KNNClassifier
raw_data_x = [[3.393,2.331],
       [3.110,1.781],
       [1.343,3.368],
       [3.582,4.679],
       [2.280,2.866],
       [7.423,4.696],
       [5.745,3.533],
       [9.172,2.511],
       [7.792,3.424],
       [7.939,0.791]]
raw_data_y = [0,0,0,0,0,1,1,1,1,1]
X_train = np.array(raw_data_x)
y_train = np.array(raw_data_y)
x = np.array([9.880,3.555])
# 要將x這個矩陣轉(zhuǎn)換成2維的矩陣,一行兩列的矩陣
X_predict = x.reshape(1,-1)
"""1,創(chuàng)建一個對象,設(shè)置K的值為6"""
knn_clf = KNNClassifier(6)
"""2,將訓(xùn)練數(shù)據(jù)和訓(xùn)練標簽融合"""
knn_clf.fit(X_train,y_train)
"""3,經(jīng)過2才能跳到這里,傳入待預(yù)測的數(shù)據(jù)"""
y_predict = knn_clf.predict(X_predict)
print(y_predict)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • python實現(xiàn)清屏的方法

    python實現(xiàn)清屏的方法

    這篇文章主要介紹了python實現(xiàn)清屏的方法,涉及Python調(diào)用系統(tǒng)命令的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • JupyterNotebook 輸出窗口的顯示效果調(diào)整方法

    JupyterNotebook 輸出窗口的顯示效果調(diào)整方法

    這篇文章主要介紹了JupyterNotebook 輸出窗口的顯示效果調(diào)整方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python模塊 _winreg操作注冊表

    Python模塊 _winreg操作注冊表

    通過python操作注冊表主要有兩種方式,一種是通過python的內(nèi)置模塊 _winreg,另一種方式就是 Win32 Extension For Python的win32api模塊,這里主要簡單看看用內(nèi)置模塊 _winreg如何操作注冊表
    2020-02-02
  • Python中類的創(chuàng)建和實例化操作示例

    Python中類的創(chuàng)建和實例化操作示例

    這篇文章主要介紹了Python中類的創(chuàng)建和實例化操作,涉及Python面向?qū)ο蟪绦蛟O(shè)計中類的定義、實例化、方法調(diào)用等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • 淺談pycharm出現(xiàn)卡頓的解決方法

    淺談pycharm出現(xiàn)卡頓的解決方法

    今天小編就為大家分享一篇淺談pycharm出現(xiàn)卡頓的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python實現(xiàn)的端口掃描功能示例

    Python實現(xiàn)的端口掃描功能示例

    這篇文章主要介紹了Python實現(xiàn)的端口掃描功能,涉及Python針對端口的連接、打開、關(guān)閉及線程相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • keras 實現(xiàn)輕量級網(wǎng)絡(luò)ShuffleNet教程

    keras 實現(xiàn)輕量級網(wǎng)絡(luò)ShuffleNet教程

    這篇文章主要介紹了keras 實現(xiàn)輕量級網(wǎng)絡(luò)ShuffleNet教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python編程深度學(xué)習(xí)繪圖庫之matplotlib

    Python編程深度學(xué)習(xí)繪圖庫之matplotlib

    今天小編就為大家分享一篇關(guān)于Python編程深度學(xué)習(xí)繪圖庫之matplotlib,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Python寫UI自動化之playwright(點擊操作)詳解

    Python寫UI自動化之playwright(點擊操作)詳解

    這篇文章主要介紹了Playwright庫中click()方法的參數(shù)及其使用場景,包括選擇器、修飾鍵、點擊位置、鼠標按鈕、點擊次數(shù)、延遲、超時、強制點擊、試點擊和不等待導(dǎo)航等選項,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • Python爬蟲信息輸入及頁面的切換方法

    Python爬蟲信息輸入及頁面的切換方法

    今天小編就為大家分享一篇Python爬蟲信息輸入及頁面的切換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

抚宁县| 神木县| 台东市| 巴青县| 清水县| 安仁县| 盐津县| 林甸县| 灵宝市| 志丹县| 静乐县| 惠东县| 新化县| 陇南市| 漠河县| 山西省| 宁远县| 福州市| 江口县| 竹山县| 蒙阴县| 建湖县| 莎车县| 郁南县| 讷河市| 宜兰市| 红安县| 宣武区| 贡嘎县| 禹城市| 正宁县| 石泉县| 永泰县| 刚察县| 横峰县| 朝阳县| 河南省| 澄城县| 阿瓦提县| 白朗县| 大余县|