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.mzph.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…