“量子躍遷與數據織網:深入探索K最近鄰算法在高維空間中的優化路徑、神經網絡融合技術及未來機器學習生態系統的構建“

🎼個人主頁:【Y小夜】

😎作者簡介:一位雙非學校的大二學生,編程愛好者,

專注于基礎和實戰分享,歡迎私信咨詢!

🎆入門專欄:🎇【MySQL,Java基礎,Rust】

🎈熱門專欄:🎊【Python,Javaweb,Vue框架】

感謝您的點贊、關注、評論、收藏、是對我最大的認可和支持!??

學習推薦:

????????人工智能是一個涉及數學、計算機科學、數據科學、機器學習、神經網絡等多個領域的交叉學科,其學習曲線相對陡峭,對初學者來說可能會有一定的挑戰性。幸運的是,隨著互聯網教育資源的豐富,現在有大量優秀的在線平臺和網站提供了豐富的人工智能學習材料,包括視頻教程、互動課程、實戰項目等,這些資源無疑為學習者打開了一扇通往人工智能世界的大門。

????????前些天發現了一個巨牛的人工智能學習網站:前言 – 人工智能教程通俗易懂,風趣幽默,忍不住分享一下給大家。

目錄

🎯文章目的

🎯K最近鄰算法在分類任務中的應用

🥏在skearn中生成一個二元分類數據集,創建K最近鄰分類模型,訓練模型,并進行可視化,預測新數據的分類結果,查看預測準確率。

🎈代碼解析

🎈運行結果

🥏在skearn中生成一個多元分類數據集,創建K最近鄰分類模型,訓練模型,并進行可視化,查看預測準確率。

🎈代碼解析

🎈運行結果

🎯K最近鄰算法在回歸分析中的應用

🥏在skearn中生成一個回歸分析任務數據集,并進行可視化

🎈代碼解析

🎈運行結果

🥏訓練K最近鄰模型進行并進行回歸分析預測,并進行可視化

🎈代碼解析

🎈運行結果

🥏查看模型準確率,并進行模型調優,調整K參數的值,查看K參數分別取1,2,5,10時,模型的訓練準確率和預測準確率有何變化。

🎈k為2時

🎈k為5時

🎈k為10時


🎯文章目的

(一)理解K最近鄰算法的基本原理

(二)能夠使用sklearn庫進行K最近鄰分類和回歸模型的訓練和預測

(三)學會調整超參數K和權重參數weights

🎯K最近鄰算法在分類任務中的應用

🥏在skearn中生成一個二元分類數據集,創建K最近鄰分類模型,訓練模型,并進行可視化,預測新數據的分類結果,查看預測準確率。

🎈代碼解析

from sklearn.datasets import make_blobs
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
data=make_blobs(n_samples=100,centers=2,random_state=9)
x,y=data
plt.scatter(x[y==1,0],x[y==1,1],cmap=plt.cm.spring,edgecolor='k',marker='^')
plt.scatter(x[y==0,0],x[y==0,1],cmap=plt.cm.spring,edgecolor='k',marker='o')
plt.show()

?????????這段代碼使用了scikit-learn庫中的make_blobs函數生成了一個包含100個樣本的數據集,其中有兩個類別。然后使用matplotlib庫繪制了散點圖,將不同類別的樣本用不同的標記表示出來。

具體來說,代碼首先導入了所需的庫和模塊:

from sklearn.datasets import make_blobs
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split

接下來,使用make_blobs函數生成了一個包含100個樣本的數據集,其中有兩個類別(centers=2),并設置了隨機種子為9(random_state=9):

data = make_blobs(n_samples=100, centers=2, random_state=9)

然后,將數據集拆分為特征矩陣X和目標向量y:

x, y = data

最后,使用matplotlib庫繪制了散點圖,將不同類別的樣本用不同的標記表示出來:

plt.scatter(x[y==1, 0], x[y==1, 1], cmap=plt.cm.spring, edgecolor='k', marker='^')
plt.scatter(x[y==0, 0], x[y==0, 1], cmap=plt.cm.spring, edgecolor='k', marker='o')
plt.show()

這樣,就可以在圖形界面中看到兩個類別的樣本被繪制成散點圖的形式。


import numpy as np
clf=KNeighborsClassifier()
clf.fit(x,y)
x_min,x_max=x[:,0].min()-1,x[:,0].max()+1
y_min,y_max=x[:,1].min()-1,x[:,1].max()+1
xx,yy=np.meshgrid(np.arange(x_min,x_max,.02),np.arange(y_min,y_max,.02))
z=clf.predict(np.c_[xx.ravel(),yy.ravel()])
z=z.reshape(xx.shape)
plt.pcolormesh(xx,yy,z,cmap=plt.cm. Set2)
plt.scatter(x[y==1,0],x[y==1,1],cmap=plt.cm.spring,edgecolor='k',marker='^')
plt.scatter(x[y==0,0],x[y==0,1],cmap=plt.cm.spring,edgecolor='k',marker='o')
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
plt.title("Classifier:KNN")
plt.show()
print(clf.score(x,y))

????????這段代碼是使用K近鄰分類器(KNN)對數據進行分類,并繪制分類結果的散點圖。首先導入numpy庫,然后創建一個KNN分類器對象,接著使用fit方法訓練模型。接下來,計算數據的最小值和最大值,用于創建網格。然后使用predict方法預測網格上的點所屬的類別,并將結果轉換為與網格形狀相同的數組。最后,使用matplotlib庫繪制分類結果的散點圖,并顯示分類器的準確率。

解析:

  1. 導入numpy庫
  2. 創建KNN分類器對象
  3. 使用fit方法訓練模型
  4. 計算數據的最小值和最大值
  5. 創建網格
  6. 使用predict方法預測網格上的點所屬的類別
  7. 將結果轉換為與網格形狀相同的數組
  8. 使用matplotlib庫繪制分類結果的散點圖
  9. 顯示分類器的準確率

🎈運行結果

?

?

🥏在skearn中生成一個多元分類數據集,創建K最近鄰分類模型,訓練模型,并進行可視化,查看預測準確率。

🎈代碼解析

from sklearn.datasets import make_blobs
from sklearn.neighbors import KNeighborsClassifier
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
data2=make_blobs(n_samples=300,centers=4,random_state=4)
x2,y2=data2
plt.scatter(x2[y2==0,0],x2[y2==0,1],cmap=plt.cm.spring,edgecolor='k',marker='o')
plt.scatter(x2[y2==1,0],x2[y2==1,1],cmap=plt.cm.spring,edgecolor='k',marker='^')
plt.scatter(x2[y2==2,0],x2[y2==2,1],cmap=plt.cm.spring,edgecolor='k',marker='s')
plt.scatter(x2[y2==3,0],x2[y2==3,1],cmap=plt.cm.spring,edgecolor='k',marker='D')
plt.show()

????????這段代碼使用sklearn庫生成了一個包含300個樣本的數據集,其中包含4個類別。然后使用matplotlib庫繪制了散點圖,將不同類別的樣本用不同的標記表示出來。


import numpy as np
clf=KNeighborsClassifier()
clf.fit(x2,y2)
x_min,x_max=x2[:,0].min()-1,x2[:,0].max()+1
y_min,y_max=x2[:,1].min()-1,x2[:,1].max()+1
xx,yy=np.meshgrid(np.arange(x_min,x_max,.02),np.arange(y_min,y_max,.02))
z=clf.predict(np.c_[xx.ravel(),yy.ravel()])
z=z.reshape(xx.shape)
plt.pcolormesh(xx,yy,z,cmap=plt.cm.Set3)
plt.scatter(x2[y2==0,0],x2[y2==0,1],cmap=plt.cm.spring,edgecolor='k',marker='o')
plt.scatter(x2[y2==1,0],x2[y2==1,1],cmap=plt.cm.spring,edgecolor='k',marker='^')
plt.scatter(x2[y2==2,0],x2[y2==2,1],cmap=plt.cm.spring,edgecolor='k',marker='s')
plt.scatter(x2[y2==3,0],x2[y2==3,1],cmap=plt.cm.spring,edgecolor='k',marker='D')
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
plt.title("Classifier:KNN")
plt.show()
print(clf.score(x2,y2))

?????????這段代碼使用K近鄰分類器(KNN)對數據進行分類,并繪制分類結果的散點圖。首先導入numpy庫,然后創建一個KNN分類器對象,接著使用fit方法訓練模型。接下來,計算數據的最小值和最大值,用于創建網格。然后使用predict方法預測網格上的點所屬的類別,并將結果轉換為與網格形狀相同的數組。最后,使用matplotlib庫繪制分類結果的散點圖,并顯示分類器的準確率。

🎈運行結果

?

?

🎯K最近鄰算法在回歸分析中的應用

🥏在skearn中生成一個回歸分析任務數據集,并進行可視化

🎈代碼解析

import matplotlib.pyplot as plt
from sklearn.datasets import make_regression
x,y=make_regression(n_features=1,n_informative=1,noise=30,random_state=5)
plt.scatter(x,y,c='b',edgecolor='k')
plt.show()

????????這段代碼使用matplotlib庫繪制了一個散點圖,其中x和y是使用sklearn.datasets中的make_regression函數生成的回歸數據集。數據集的特征數為1,有1個信息特征,噪聲為30,隨機種子為5。散點圖中的點用藍色表示,邊緣顏色為黑色。


🎈運行結果

?

🥏訓練K最近鄰模型進行并進行回歸分析預測,并進行可視化

🎈代碼解析

from sklearn.neighbors import KNeighborsRegressor
import numpy as np
reg=KNeighborsRegressor()
reg.fit(x,y)
z=np.linspace(-2.5,2.5,200).reshape(-1,1)
plt.scatter(x,y,c='b',edgecolor='k')
plt.plot(z,reg.predict(z),c='r',linewidth=3)
plt.title('KNN Regressor')
plt.show()
print(reg.score(x,y))

?????????這段代碼使用sklearn庫中的KNeighborsRegressor類實現了K近鄰回歸算法。首先導入了KNeighborsRegressor類和numpy庫,然后創建了一個KNeighborsRegressor對象reg并使用fit方法訓練模型。接著生成了一個等差數列z,并將其轉換為二維數組。最后使用matplotlib庫繪制了散點圖和回歸線,并輸出了回歸模型的得分。

🎈運行結果

?

🥏查看模型準確率,并進行模型調優,調整K參數的值,查看K參數分別取1,2,5,10時,模型的訓練準確率和預測準確率有何變化。

🎈k為2時

reg2=KNeighborsRegressor(n_neighbors=2)
reg2.fit(x,y)
plt.scatter(x,y,c='b',edgecolor='k')
plt.plot(z,reg2.predict(z),c='r',linewidth=3)
plt.title("KNN Regressor:n_neighbors")
plt.show()
print(reg2.score(x,y))

?

🎈k為5時

reg3=KNeighborsRegressor(n_neighbors=5)
reg3.fit(x,y)
plt.scatter(x,y,c='b',edgecolor='k')
plt.plot(z,reg3.predict(z),c='r',linewidth=3)
plt.title("KNN Regressor:n_neighbors")
plt.show()
print(reg3.score(x,y))

?

🎈k為10時

reg4=KNeighborsRegressor(n_neighbors=10)
reg4.fit(x,y)
plt.scatter(x,y,c='b',edgecolor='k')
plt.plot(z,reg4.predict(z),c='r',linewidth=3)
plt.title("KNN Regressor:n_neighbors")
plt.show()
print(reg4.score(x,y))

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62254.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62254.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62254.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

硬件選型規則

光源選型: 先用型號中帶H的,沒有的選標準的. 光源和光源控制器的搭配需要確保接口一致。 根據型號表中的最佳工作距離和相機的尺寸。 光源控制器選型: 首先選擇海康風格系列光源控制器考慮與光源的接口匹配。功率應該滿足接近光源功率。檢查是否退市…

【QNX+Android虛擬化方案】135 - QNX側如何Dump 88Q5152 MIBS報文計數

【QNX+Android虛擬化方案】135 - QNX側如何Dump 88Q5152 MIBS報文計數 一、讀取 88Q5152 MIBS 計數二、讀取 88Q5152 WDT 相關寄存器基于原生純凈代碼,自學總結 純技術分享,不會也不敢涉項目、不泄密、不傳播代碼文檔!!! 本文禁止轉載分享 !!! 匯總鏈接:《【QNX+Andro…

C#核心(15)繼承中的構造函數

前言 我們之前學過構造函數是什么東西,今天的內容也和構造函數緊密相關,一個繼承了父親的子類里面構造函數的規則是什么樣的,今天內容很簡單,請聽我慢慢講來。 基本概念 特點:當申明一個子類時,先執行父…

TVbox源貢獻指南

歡迎各路大佬踴躍提PR,分享爬蟲代碼。 源碼倉庫地址 https://github.com/lushunming/AndroidCatVodSpider 快速開始 本工程是一個完整的AndroidStudio工程,請你用AS打開編輯。 工程調試完畢后要需要導出生成jar文件配合軟件使用,執行根目…

FastAPI快速入門

文章目錄 了解FastAPI程序結構第一步,導入FastAPI第二步,創建一個app實例第三步,編寫一個 路徑操作裝飾器第五步、運行開發服務器uvicorn main:app --reload即可訪問api鏈接。符案例 聲明路徑參數聲明路徑參數的類型get請求查詢參數請求體如何…

云計算.運維.面試題

1、計算機能直接識別的語言( C )。 A、匯編語言 B、自然語言 C、機器語言 D、高級語言 2、應用軟件是指( D )。 A、所有能夠使用的軟件 B、能被各應用單位共同使用的某種軟件 C、所有計算機上都應使用的基本軟件D、專門為某一應用目的而編制的軟件 3、計算機的顯示器是一…

如何優雅地實現單例模式?內部靜態類還是雙重檢查鎖定?

在最近的一個項目中,我需要為一個核心配置類實現單例模式。在設計過程中,我發現要同時滿足延遲加載和線程安全這兩個要求,常見的實現方式有兩種:內部靜態類和雙重檢查鎖定(Double-Checked Locking, DCL)。 …

【計算機網絡】 —— 數據鏈路層(壹)

文章目錄 前言 一、概述 1. 基本概念 2. 數據鏈路層的三個主要問題 二、封裝成幀 1. 概念 2. 幀頭、幀尾的作用 3. 透明傳輸 4. 提高效率 三、差錯檢測 1. 概念 2. 奇偶校驗 3. 循環冗余校驗CRC 1. 步驟 2. 生成多項式 3. 例題 4. 總結 四、可靠傳輸 1. 基本…

golang實現簡單的redis服務

golang 手搓redis服務器倉庫地址:實現思路: golang 手搓redis服務器 倉庫地址: 倉庫: https://github.com/dengjiayue/my-redis.git 實現思路: ● 協議: tcp通信 ● 數據包: 長度(4byte)方法(1byte)數據json ● 數據處理: 單線程map讀寫 ○ 依次處理待處理隊列的請求(chan)…

智慧銀行反欺詐大數據管控平臺方案(八)

智慧銀行反欺詐大數據管控平臺的核心理念,在于通過整合先進的大數據技術、算法模型和人工智能技術,構建一個全面、智能、動態的反欺詐管理框架,以實現對金融交易的全方位監控、欺詐行為的精準識別和高效處理。這一理念強調數據驅動決策&#…

3D 生成重建019-LERF用文本在Nerf中開啟上帝之眼

3D 生成重建019-LERF用文本在Nerf中開啟上帝之眼 文章目錄 0 論文工作1 論文方法2 實驗結果 0 論文工作 人類利用自然語言描述物理世界,根據各種特性(視覺外觀、語義、抽象關聯)尋找具體的3D位置。在這項工作中,作者提出了語言嵌…

如何選擇合適的期刊投稿?從課題組經驗到在線工具的使用全解析

~~~本文是作者個人的經驗分享,建立在導師讓自己選刊的情況下~~~ 投稿選刊是科研過程中至關重要的一步,選刊過程可能讓許多初投稿的研究者感到迷茫和困惑:期刊那么多,如何找到最合適的? 本文將從多個角度介紹如何選擇投…

024、Docker與SSH在分布式系統中的實踐指南

1. Docker SSH配置最佳實踐 Docker容器通常不需要SSH服務來運行,因為它們設計為輕量級、無狀態的,并且通常通過Docker命令行界面與宿主機進行交互。但是,在某些情況下,您可能需要通過SSH訪問Docker容器進行調試、維護或其他操作。…

【kafka】消息隊列的認識,Kafka與RabbitMQ的簡單對比

什么是消息隊列? 消息隊列(Message Queue,簡稱 MQ)是一個在不同應用程序、系統或服務之間傳遞數據的機制。 它允許系統間異步地交換信息,而無需直接交互,確保消息的可靠傳輸。 想象一下,你正在…

.NET MAUI與.NET for Android/IOS的關系

2024年11月13日微軟發布了.Net9.0,我打算體驗一下。安裝好.Net9.0 SDK后發現Visual Studio識別不到9.0,但是通過命令行dotnet --info查看是正常的,后面看到了VS有版本可以升級,把VS升級到17.12.0就可以了。更新完打開以后看到如下界面 這里…

SqlDataAdapter

SqlDataAdapter 是 .NET Framework 和 .NET Core 中提供的一個數據適配器類,屬于 System.Data.SqlClient 命名空間(或在 .NET 6 中屬于 Microsoft.Data.SqlClient 命名空間)。它的作用是充當數據源(如 SQL Server 數據庫&#xff…

【vivado】時序報告--best時序和worst時序

利用vivado進行開發時,生成best時序報告和worst時序報告。 best時序報告 slow選擇min_max,fast選擇none。 worst時序報告 fast選擇min_max,slow選擇none。

FastAPI 響應狀態碼:管理和自定義 HTTP Status Code

FastAPI 響應狀態碼:管理和自定義 HTTP Status Code 本文介紹了如何在 FastAPI 中聲明、使用和修改 HTTP 狀態碼,涵蓋了常見的 HTTP 狀態碼分類,如信息響應(1xx)、成功狀態(2xx)、客戶端錯誤&a…

力扣題庫-擲骰子模擬詳細解析

題目如下: 有一個骰子模擬器會每次投擲的時候生成一個 1 到 6 的隨機數。 不過我們在使用它時有個約束,就是使得投擲骰子時,連續 擲出數字 i 的次數不能超過 rollMax[i](i 從 1 開始編號)。 現在,給你一…

深入淺出:PHP中的數據類型全解析

文章目錄 引言理解數據類型標量類型整數 (integer)浮點數 (float)布爾值 (boolean)字符串 (string) 復合類型數組 (array)對象 (object)資源 (resource)NULL 特殊類型Callable強制類型轉換 實戰案例總結與展望參考資料 引言 在編程的世界里,數據類型是構建任何應用…