AI人工智能機器學習之神經網絡

1、概要

??本篇學習AI人工智能機器學習之神經網絡,以MLPClassifier和MLPRegressor為例,從代碼層面講述最常用的神經網絡模型MLP。

2、神經網絡 - 簡介

在 Scikit-learn 中,神經網絡是通過 sklearn.neural_network 模塊提供的。最常用的神經網絡模型是多層感知器(MLP,Multi-layer Perceptron),它可以用于分類和回歸任務。

一些基本的概念

  • 多層感知器(MLP):一種前饋神經網絡,由輸入層、隱藏層和輸出層組成。每一層的節點與下一層的節點是全連接的。
  • 激活函數:每個神經元通常會有一個激活函數,如 ReLU、Sigmoid 和 Tanh,用于引入非線性。
  • 損失函數:在訓練過程中用來評估模型性能的函數,MLP 允許使用不同的損失函數,具體取決于任務(如分類或回歸)。
  • 優化算法:用于更新網絡權重的算法,最常用的是隨機梯度下降(SGD)和 Adam。

本篇,以兩個示例講述神經網絡MLP的使用方法:

  • 示例1:MLPClassifier對數據集進行分類
  • 示例2:MLPRegressor對數據進行回歸

本篇相關資料代碼參見:AI人工智能機器學習相關知識資源及使用的示例代碼

3、神經網絡

3.1、安裝依賴

python安裝機器學習庫: pip install scikit-learn

3.2、示例1: MLPClassifier對數據集進行分類
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report# 生成模擬數據集
X, y = make_classification(n_samples=100, n_features=3, n_informative=2, n_redundant=0, n_classes=2, random_state=42)# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)def test_MLPClassifier():# 創建神經網絡分類器實例# hidden_layer_sizes參數,一個元組,定義隱藏層的結構,例如 (100, 50) 表示有兩個隱藏層,第一層100神經元,第二層 50 個神經元。# max_iter參數,最大迭代次數# random_state:隨機種子,使結果可重復model = MLPClassifier(hidden_layer_sizes=(100, 50), max_iter=1000, random_state=42)# 訓練模型model.fit(X_train, y_train)# 進行預測y_pred = model.predict(X_test)# 計算準確率accuracy = accuracy_score(y_test, y_pred)print(f"準確率為: {accuracy:.2f}")# 計算混淆矩陣print(confusion_matrix(y_test, y_pred))# 報告print(classification_report(y_test, y_pred))test_MLPClassifier()

運行上述代碼的輸出:

準確率為: 0.93
[[10  1][ 1 18]]precision    recall  f1-score   support0       0.91      0.91      0.91        111       0.95      0.95      0.95        19accuracy                           0.93        30macro avg       0.93      0.93      0.93        30
weighted avg       0.93      0.93      0.93        30
3.3、示例2:MLPRegressor對數據進行回歸
from sklearn.neural_network import MLPRegressor
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split# 創建回歸數據集
X, y = make_regression(n_samples=100, n_features=1, noise=0.1, random_state=42)# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)def test_MLPRegressor():# 創建和訓練 MLPRegressormlp_regressor = MLPRegressor(hidden_layer_sizes=(10,), max_iter=1000, random_state=42)mlp_regressor.fit(X_train, y_train)# 進行預測y_pred = mlp_regressor.predict(X_test)# 打印預測結果print("Predicted values:", y_pred)print("True values:", y_test)  test_MLPRegressor()

運行上述代碼的輸出:

Predicted values: [-15.9535171   11.18083111   6.66419755  -6.93420128  -4.88154814-5.62929653  -7.89092833 -19.22598705   6.72784808   7.470322088.14723448   2.80206811 -15.14571795  -8.72301651 -14.61559911-8.06564202   7.77080054   1.30566751   6.16147072   3.04358961]
True values: [-55.37503843  61.96236579  34.0206566  -16.26246864  -9.75232562-12.0363855  -19.53933098 -73.53859117  34.32170107  38.991729642.89105035  14.96006767 -50.87199832 -22.1085758  -48.12392116-19.9786311   40.84203409  10.11000622  30.8780412   15.82045024]

4、 總結

本篇以MLPClassifier和MLPRegressor為例,從代碼層面講述最常用的神經網絡模型MLP。雖然sklearn提供了接口來構建和訓練神經網絡模型,但是對于復雜的復雜的神經網絡模型,推薦使用 TensorFlow 或 PyTorch 等庫。

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

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

相關文章

WPF高級 | WPF 與數據庫交互:連接、查詢與數據更新

WPF高級 | WPF 與數據庫交互:連接、查詢與數據更新 前言一、數據庫交互基礎概念1.1 數據庫簡介1.2 數據訪問技術 二、WPF 與數據庫連接2.1 連接字符串2.2 建立連接 三、WPF 中的數據查詢3.1 使用ADO.NET進行數據查詢3.2 使用 Entity Framework 進行數據查詢3.3 使用…

【ESP32S3接入訊飛在線語音識別】

【ESP32S3接入訊飛在線語音識別】 1. 前言1.1 步驟概括1.2 硬件介紹1.3 接線2. 操作流程2.1 創建語音識別應用2.2 記錄API秘鑰3. JSON語音接入api3.1 JSON格式3.2 交互流程3.2 ESP32S3 Sense接入代碼1. 核心功能2. 主要模塊3. 工作流程4. 典型應用場景5. 關鍵技術點6. 待完善功…

學生管理前端

文章目錄 首頁student.html查詢功能 首頁 SpringBoot前端html頁面放在static文件夾下:/src/main/resources/static 默認首頁為index.html,我們可以用兩個超鏈接或者兩個button跳轉到對應的頁面。這里只是單純的跳轉頁面,不需要提交表單等其…

(動態規劃 最長遞增的子序列)leetcode 300

這道題我第一眼反應就是暴力,但是暴力的話就是n*n-1*n-2*...n-(n-1) 也就是O(n^n)dfs做絕對超時 貪心也不行,這里是子序列,要考慮在ni的范圍內考慮多種路線取最優,所以用動態規劃 如何用動態規劃呢? 答:…

RabbitMQ系列(六)基本概念之Routing Key

在 RabbitMQ 中,Routing Key(路由鍵) 是用于將消息從交換機(Exchange)路由到指定隊列(Queue)的關鍵參數。其核心作用是通過特定規則匹配綁定關系,確保消息被正確分發。以下是其核心機…

Spark內存并行計算框架

spark核心概念 spark集群架構 spark集群安裝部署 spark-shell的使用 通過IDEA開發spark程序 1. Spark是什么 Apache Spark? is a unified analytics engine for large-scale data processingspark是針對于大規模數據處理的統一分析引擎 spark是在Hadoop基礎上的改進&…

Ubuntu 安裝 Nginx并配置反向代理

Ubuntu版本:Ubuntu 24.04.2 LTS 一、安裝Nginx ?更新系統軟件包? 安裝前需確保系統處于最新狀態,避免依賴沖突 sudo apt update && sudo apt upgrade -y ?安裝Nginx主程序? Ubuntu官方倉庫已包含穩定版Nginx,直接安裝即可 sudo…

Solr中得Core和Collection的作用和關系

Solr中得Core和Collection的作用和關系 一, 總結 在Apache Solr中,Core和Collection 是兩個核心概念,他們分別用于單機模式和分布式模式(SolrCloud)中,用于管理和組織數據。 二,Core 定義&am…

yolov8,yolo11,yolo12 服務器訓練到部署全流程 筆記

正在進行中,隨時更新 一. Anaconda配置 1.安裝anaconda (1)下載.sh文件 Index of /anaconda/archive/ | 清華大學開源軟件鏡像站 | Tsinghua Open Source Mirror (2)scp到服務器后,運行安裝包 bash Anaconda3-2020.07-Linux-x86_64.sh (3)安裝anacond…

從零開始開發純血鴻蒙應用之語音朗讀

從零開始開發純血鴻蒙應用 〇、前言一、API 選型1、基本情況2、認識TextToSpeechEngine 二、功能集成實踐1、改造右上角菜單2、實現語音播報功能2.1、語音引擎的獲取和關閉2.2、設置待播報文本2.3、speak 目標文本2.4、設置語音回調 三、總結 〇、前言 中華漢字洋洋灑灑何其多…

【AGI】DeepSeek開源周:The whale is making waves!

DeepSeek開源周:The whale is making waves! 思維火花引言一、DeepSeek模型體系的技術演進1. 通用語言模型:DeepSeek-V3系列2. 推理優化模型:DeepSeek-R1系列3. 多模態模型:Janus系列 二、開源周三大工具庫的技術解析1…

25年前端如何走的更穩

2025年,隨著deepseek引起的AI大模型技術的深度革命,帶來了很多機會和挑戰,前端程序員作為互聯網里一個普通但必不可少的崗位,在當前形勢下,需要主動變革才能走的更穩。本文簡單介紹三個方向,Web3前端、全棧…

DockerでOracle Database 23ai FreeをセットアップしMAX_STRING_SIZEを拡張する手順

DockerでOracle Database 23c FreeをセットアップしMAX_STRING_SIZEを拡張する手順 はじめに環境準備ディレクトリ作成Dockerコンテナ起動 データベース設定変更コンテナ內でSQL*Plus起動PDB操作と文字列サイズ拡張設定検証 管理者ユーザー作成注意事項まとめ はじめに Oracle…

市場加速下跌,但監管「堅冰」正在消融

作者:Techub 熱點速遞 撰文:Yangz,Techub News 與近日氣溫逐步回暖不同,自 2 月 25 日比特幣跌破 9 萬美元以來,加密貨幣市場行情一路下滑。今日 10 時 50 分左右,比特幣更是跌破 8 萬美元大關&#xff0c…

【Android】安卓付款密碼輸入框、支付密碼輸入框

如圖 代碼部分&#xff1a; public class PayPasswordDialog extends AppCompatDialogFragment {private String mPayPass "";private String mTitle, mMoney;private final TextView[] mPayPassTextViewArray new TextView[6];private List<Integer> mPayP…

Java數據結構_一篇文章了解常用排序_8.1

本文所有排序舉例均默認為升序排列。 目錄 1. 常見的排序算法 2. 常見排序算法的實現 2.1 插入排序 2.1.1 基本思想&#xff1a; 2.1.2 直接插入排序 2.1.3 希爾排序&#xff08;縮小增量排序&#xff09; 2.2 選擇排序 2.2.1 基本思想&#xff1a; 2.2.2 直接選擇排…

性能調優篇——索引優化與執行計劃解析

引言 當數據庫表數據突破千萬級時&#xff0c;一個未優化的索引可能讓查詢耗時從毫秒級暴增至分鐘級。某電商平臺曾因商品搜索接口的索引缺失&#xff0c;導致大促期間數據庫CPU飆升至98%&#xff0c;直接引發服務雪崩。本文將深入B樹索引的存儲奧秘&#xff0c;詳解慢查詢日志…

計算機畢業設計SpringBoot+Vue.js人口老齡化社區服務與管理平臺 (源碼+文檔+PPT+講解)

溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 作者簡介&#xff1a;Java領…

C#上位機--三元運算符

引言 在 C# 上位機開發中&#xff0c;我們經常需要根據不同的條件來執行不同的操作。條件判斷是編程中不可或缺的一部分&#xff0c;而三元運算符就是一種簡潔而強大的條件判斷工具。本文將詳細介紹 C# 中的三元運算符&#xff0c;探討其在上位機開發中的應用場景&#xff0c;…

AI時代保護自己的隱私

人工智能最重要的就是數據&#xff0c;讓我們面對現實&#xff0c;大多數人都不知道他們每天要向人工智能提供多少數據。你輸入的每條聊天記錄&#xff0c;你發出的每條語音命令&#xff0c;人工智能生成的每張圖片、電子郵件和文本。我建設了一個網站(haptool.com)&#xff0c…