AI人工智能机器学习之神经网络

news/2025/3/3 3:06:13/

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.ppmy.cn/news/1576188.html

相关文章

【pytest框架源码分析三】pluggy源码分析之hook注册调用流程

pluggy的hook调用,最重要的就是使用了__call__魔法函数,这个函数能够在我们调用实例时,自动调用这个函数,无需自己手动调用。 前面介绍了各个类的方法,这里简述下pluggy的调用流程(主要介绍主流程&#xff…

从【人工智能】到【计算机视觉】,【深度学习】引领的未来科技创新与变革

前几天偶然发现了一个超棒的人工智能学习网站,内容通俗易懂,讲解风趣幽默,简直让人欲罢不能。忍不住分享给大家,点击这里立刻跳转,开启你的AI学习之旅吧! 前言 – 人工智能教程https://www.captainbed.cn/l…

大型语言模型技术对比:阿里Qwen qwq、DeepSeek R1、OpenAI o3与Grok 3

1. 引言 在人工智能(AI)领域中,大型语言模型(Large Language Models,简称LLM)近年来取得了显著的突破。从早期的GPT-3到如今的各种高级模型,这些技术不仅推动了自然语言处理(NLP&am…

JavaScript算法-合并两个有序链表

合并两个有序链表 描述 将两个已按升序排列的链表合并为一个新的升序链表,并返回该链表。 示例: 输⼊:1->3->5, 2->4->6 输出:1->2->3->4->5->6前置知识 递归链表 思路 使⽤递归的方式来实现&…

《Llama 3.2-Vision:开启多模态AI新时代》:此文为AI自动生成

Llama 3.2-Vision 是什么 在人工智能的快速发展进程中,多模态技术成为了推动行业变革的关键力量。Llama 3.2-Vision 作为 Meta 公司推出的新一代多模态大语言模型,以其卓越的视觉与语言融合能力,为 AI 领域带来了全新的突破。它的出现&#…

2025-03-01 学习记录--C/C++-C语言 整数类型对比

C语言 整数类型对比 类型位数范围(有符号)范围(无符号)格式化符号char8-128 到 1270 到 255%c 或 %hhdshort16-32,768 到 32,7670 到 65,535%hdint32-2,147,483,648 到 2,147,483,6470 到 4,294,967,295%dlong32 或 64-2,147,483…

Python 实战:构建分布式文件存储系统全解析

Python 实战:构建分布式文件存储系统全解析 在当今数据爆炸的时代,分布式文件存储系统凭借其高可扩展性、高可靠性等优势,成为了数据存储领域的热门选择。本文将详细介绍如何使用 Python 构建一个简单的分布式文件存储系统。从系统架构设计&…

【Python爬虫(55)】Scrapy进阶:深入剖析下载器与下载中间件

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取,还涉及数据处理与分析。无论是新手小白还是进阶开发…