国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

機(jī)器學(xué)習(xí)——kNN算法之紅酒分類

這篇具有很好參考價(jià)值的文章主要介紹了機(jī)器學(xué)習(xí)——kNN算法之紅酒分類。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

StandardScaler的使用

KNeighborsClassifier的使用

代碼實(shí)現(xiàn)


數(shù)據(jù)集介紹

數(shù)據(jù)集為一份紅酒數(shù)據(jù),總共有 178 個(gè)樣本,每個(gè)樣本有 13 個(gè)特征,這里不會(huì)為你提供紅酒的標(biāo)簽,你需要自己根據(jù)這 13 個(gè)特征對(duì)紅酒進(jìn)行分類。部分?jǐn)?shù)據(jù)如下圖:

機(jī)器學(xué)習(xí)——kNN算法之紅酒分類

StandardScaler的使用

由于數(shù)據(jù)中有些特征的標(biāo)準(zhǔn)差比較大,例如 Proline 的標(biāo)準(zhǔn)差大約為 314。如果現(xiàn)在用 kNN 算法來(lái)對(duì)這樣的數(shù)據(jù)進(jìn)行分類的話, kNN 算法會(huì)認(rèn)為最后一個(gè)特征比較重要。因?yàn)榧僭O(shè)有兩個(gè)樣本的最后一個(gè)特征值分別為 1 和 100,那么這兩個(gè)樣本之間的距離可能就被這最后一個(gè)特征決定了。這樣就很有可能會(huì)影響 kNN 算法的準(zhǔn)確度。為了解決這種問(wèn)題,我們可以對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。

標(biāo)準(zhǔn)化的手段有很多,而最為常用的就是 Z Score 標(biāo)準(zhǔn)化。Z Score 標(biāo)準(zhǔn)化通過(guò)刪除平均值和縮放到單位方差來(lái)標(biāo)準(zhǔn)化特征,并將標(biāo)準(zhǔn)化的結(jié)果的均值變成 0 ,標(biāo)準(zhǔn)差為 1。

sklearn 中已經(jīng)提供了 Z Score 標(biāo)準(zhǔn)化的接口 StandardScaler,使用代碼如下:

from sklearn.preprocessing import StandardScaler
data = [[0, 0], [0, 0], [1, 1], [1, 1]]
# 實(shí)例化StandardScaler對(duì)象
scaler = StandardScaler()
# 用data的均值和標(biāo)準(zhǔn)差來(lái)進(jìn)行標(biāo)準(zhǔn)化,并將結(jié)果保存到after_scaler
after_scaler = scaler.fit_transform(data)
# 用剛剛的StandardScaler對(duì)象來(lái)進(jìn)行歸一化
after_scaler2 = scaler.transform([[2, 2]])
print(after_scaler)
print(after_scaler2)

打印結(jié)果如下:

[[-1. -1.]
 [-1. -1.]
 [ 1.  1.]
 [ 1.  1.]]
[[3. 3.]]

根據(jù)打印結(jié)果可以看出,經(jīng)過(guò)準(zhǔn)換后,數(shù)據(jù)已經(jīng)縮放成了均值為 0,標(biāo)準(zhǔn)差為1的分布。

KNeighborsClassifier的使用

想要使用 sklearn 中使用 kNN 算法進(jìn)行分類,只需要如下的代碼(其中 train_feature、train_label 和 test_feature 分別表示訓(xùn)練集數(shù)據(jù)、訓(xùn)練集標(biāo)簽和測(cè)試集數(shù)據(jù)):

from sklearn.neighbors import KNeighborsClassifier
#生成K近鄰分類器
clf=KNeighborsClassifier() 
#訓(xùn)練分類器
clf.fit(train_feature, train_label)
#進(jìn)行預(yù)測(cè)
predict_result=clf.predict(test_feature)

但是當(dāng)我們需要調(diào)整 kNN 算法的參數(shù)時(shí),上面的代碼就不能滿足我的需求了。這里需要做的改變?cè)?code>clf=KNeighborsClassifier()這一行中。

KNeighborsClassifier() 的構(gòu)造函數(shù)包含一些參數(shù)的設(shè)定。比較常用的參數(shù)有以下幾個(gè):

  • n_neighbors :即 kNN 算法中的 K 值,為一整數(shù),默認(rèn)為 5;
  • metric :距離函數(shù)。參數(shù)可以為字符串(預(yù)設(shè)好的距離函數(shù))或者是callable對(duì)象。默認(rèn)值為閔可夫斯基距離;
  • p :當(dāng) metric 為閔可夫斯基距離公式時(shí)可用,為一整數(shù),默認(rèn)值為 2,也就是歐式距離。

代碼實(shí)現(xiàn)

函數(shù)需要完成的功能是使用 KNeighborsClassifier 對(duì) test_feature 進(jìn)行分類。其中函數(shù)的參數(shù)如下:

  • train_feature : 訓(xùn)練集數(shù)據(jù),類型為 ndarray;

  • train_label : 訓(xùn)練集標(biāo)簽,類型為 ndarray;

  • test_feature : 測(cè)試集數(shù)據(jù),類型為 ndarray。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-501539.html

from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
import numpy as np
def classification(train_feature, train_label, test_feature):
    '''
    對(duì)test_feature進(jìn)行紅酒分類
    :param train_feature: 訓(xùn)練集數(shù)據(jù),類型為ndarray
    :param train_label: 訓(xùn)練集標(biāo)簽,類型為ndarray
    :param test_feature: 測(cè)試集數(shù)據(jù),類型為ndarray
    :return: 測(cè)試集數(shù)據(jù)的分類結(jié)果
    '''
    #********* Begin *********#
    #實(shí)例化StandardScaler函數(shù)
    scaler = StandardScaler()
    train_feature = scaler.fit_transform(np.array(train_feature).reshape(133,13))
    test_feature = scaler.transform(np.array(test_feature).reshape(45,13))
    #生成K近鄰分類器
    clf = KNeighborsClassifier()
    #訓(xùn)練分類器
    clf.fit(train_feature, train_label.astype('int'))
    #進(jìn)行預(yù)測(cè)
    predict_result = clf.predict(test_feature)
    return predict_result 
    #********* End **********#

到了這里,關(guān)于機(jī)器學(xué)習(xí)——kNN算法之紅酒分類的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 機(jī)器學(xué)習(xí):KNN算法對(duì)鳶尾花進(jìn)行分類

    機(jī)器學(xué)習(xí):KNN算法對(duì)鳶尾花進(jìn)行分類

    1.算法概述 KNN(K-NearestNeighbor)算法經(jīng)常用來(lái)解決分類與回歸問(wèn)題, KNN算法的原理可以總結(jié)為\\\"近朱者赤近墨者黑\\\",通過(guò)數(shù)據(jù)之間的相似度進(jìn)行分類。就是通過(guò)計(jì)算測(cè)試數(shù)據(jù)和已知數(shù)據(jù)之間的距離來(lái)進(jìn)行分類。 如上圖,四邊形代表測(cè)試數(shù)據(jù),原型表示已知數(shù)據(jù),與測(cè)試數(shù)據(jù)最

    2024年02月09日
    瀏覽(45)
  • 機(jī)器學(xué)習(xí)中的分類算法詳細(xì)介紹一(KNN、決策樹(shù))

    機(jī)器學(xué)習(xí)中的分類算法詳細(xì)介紹一(KNN、決策樹(shù))

    機(jī)器學(xué)習(xí)中的分類算法有:KNN算法、決策樹(shù)、隨機(jī)森林、SVM、極限學(xué)習(xí)機(jī)、多層感知機(jī)(BP神經(jīng)網(wǎng)絡(luò))、貝葉斯方法。 關(guān)鍵知識(shí):數(shù)據(jù)預(yù)處理(數(shù)據(jù)標(biāo)準(zhǔn)化)、K個(gè)鄰居(需要由用戶指定)、距離計(jì)算方式(需要考慮數(shù)據(jù)的特點(diǎn)) 核心思想:物以類聚人以群分,空間相近則類

    2024年02月09日
    瀏覽(28)
  • 2.機(jī)器學(xué)習(xí)-K最近鄰(k-Nearest Neighbor,KNN)分類算法原理講解

    2.機(jī)器學(xué)習(xí)-K最近鄰(k-Nearest Neighbor,KNN)分類算法原理講解

    ??????個(gè)人主頁(yè):以山河作禮。 ??????: Python領(lǐng)域新星創(chuàng)作者,CSDN實(shí)力新星認(rèn)證,CSDN內(nèi)容合伙人,阿里云社區(qū)專家博主,新星計(jì)劃導(dǎo)師,在職數(shù)據(jù)分析師。 ???? 免費(fèi)學(xué)習(xí)專欄 : 1. 《Python基礎(chǔ)入門》——0基礎(chǔ)入門 2.《Python網(wǎng)絡(luò)爬蟲(chóng)》——從入門到精通 3.《Web全棧開(kāi)

    2024年01月23日
    瀏覽(27)
  • 機(jī)器學(xué)習(xí)與深度學(xué)習(xí)——通過(guò)knn算法分類鳶尾花數(shù)據(jù)集iris求出錯(cuò)誤率并進(jìn)行可視化

    機(jī)器學(xué)習(xí)與深度學(xué)習(xí)——通過(guò)knn算法分類鳶尾花數(shù)據(jù)集iris求出錯(cuò)誤率并進(jìn)行可視化

    什么是knn算法? KNN算法是一種基于實(shí)例的機(jī)器學(xué)習(xí)算法,其全稱為K-最近鄰算法(K-Nearest Neighbors Algorithm)。它是一種簡(jiǎn)單但非常有效的分類和回歸算法。 該算法的基本思想是:對(duì)于一個(gè)新的輸入樣本,通過(guò)計(jì)算它與訓(xùn)練集中所有樣本的距離,找到與它距離最近的K個(gè)訓(xùn)練集樣

    2024年02月03日
    瀏覽(24)
  • (機(jī)器學(xué)習(xí))——使用KNN進(jìn)行水果分類
  • 機(jī)器學(xué)習(xí)之Python使用KNN算法對(duì)鳶尾花進(jìn)行分類

    機(jī)器學(xué)習(xí)之Python使用KNN算法對(duì)鳶尾花進(jìn)行分類

    要求: (1)數(shù)據(jù)集劃分為測(cè)試集占20%; (2)n_neighbors=5; (3)評(píng)價(jià)模型的準(zhǔn)確率; (4)使用模型預(yù)測(cè)未知種類的鳶尾花。 (待預(yù)測(cè)數(shù)據(jù):X1=[[1.5 , 3 , 5.8 , 2.2], [6.2 , 2.9 , 4.3 , 1.3]]) iris數(shù)據(jù)集有150組,每組4個(gè)數(shù)據(jù)。 第一步:引入所需庫(kù) 第二步:劃分測(cè)試集占20% test_size為

    2024年02月08日
    瀏覽(29)
  • 【Python機(jī)器學(xué)習(xí)】KNN進(jìn)行水果分類和分類器實(shí)戰(zhàn)(附源碼和數(shù)據(jù)集)

    【Python機(jī)器學(xué)習(xí)】KNN進(jìn)行水果分類和分類器實(shí)戰(zhàn)(附源碼和數(shù)據(jù)集)

    需要源碼和數(shù)據(jù)集請(qǐng)點(diǎn)贊關(guān)注收藏后評(píng)論區(qū)留言私信~~~ KNN(K-Nearest Neighbor)算法是機(jī)器學(xué)習(xí)算法中最基礎(chǔ)、最簡(jiǎn)單的算法之一。它既能用于分類,也能用于回歸。KNN通過(guò)測(cè)量不同特征值之間的距離來(lái)進(jìn)行分類。 KNN算法的思想非常簡(jiǎn)單:對(duì)于任意n維輸入向量,分別對(duì)應(yīng)于特征

    2024年02月01日
    瀏覽(22)
  • 【機(jī)器學(xué)習(xí)】KNN 算法介紹

    【機(jī)器學(xué)習(xí)】KNN 算法介紹

    KNN 算法,或者稱 k-最近鄰算法,是 有監(jiān)督學(xué)習(xí) 中的 分類算法 。它可以用于分類或回歸問(wèn)題,但它通常用作分類算法。 KNN 的全稱是 K Nearest Neighbors,意思是 K 個(gè)最近的鄰居。該算法用 K 個(gè)最近鄰來(lái)干什么呢?其實(shí),KNN 的原理就是:當(dāng)預(yù)測(cè)一個(gè)新樣本的類別時(shí), 根據(jù)它距離

    2023年04月24日
    瀏覽(29)
  • 機(jī)器學(xué)習(xí)——KNN算法

    機(jī)器學(xué)習(xí)——KNN算法

    機(jī)器學(xué)習(xí)筆記 KNN的算法原理,可以簡(jiǎn)單如下描述: 一個(gè)數(shù)據(jù)集中存在多個(gè)已有標(biāo)簽的樣本值,這些樣本值共有的n個(gè)特征構(gòu)成了一個(gè)多維空間N。當(dāng)有一個(gè)需要預(yù)測(cè)/分類的樣本x出現(xiàn),我們把這個(gè)x放到多維空間n中,找到離其距離最近的k個(gè)樣本,并將這些樣本稱為最近鄰(nea

    2024年02月06日
    瀏覽(18)
  • 機(jī)器學(xué)習(xí)——KNN算法實(shí)例

    機(jī)器學(xué)習(xí)——KNN算法實(shí)例

    目錄 1.項(xiàng)目背景 2.流程步驟? 3.代碼部分 3.1導(dǎo)入可能需要用的包? 3.2準(zhǔn)備數(shù)據(jù):從文本文件中解析數(shù)據(jù) ?3.3分析數(shù)據(jù):用Matplotlib創(chuàng)建散點(diǎn)圖 ?3.4準(zhǔn)備數(shù)據(jù):數(shù)據(jù)歸一化 3.5?測(cè)試算法:作為完整程序驗(yàn)證分類器 ?【關(guān)于K值的選擇】 3.6使用算法:構(gòu)建完整可用系統(tǒng) 4.總結(jié)? ? 關(guān)

    2024年02月11日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包