AI人工智能机器学习之监督线性模型

embedded/2025/2/27 22:57:18/

1、概要

  本篇学习AI人工智能机器监督学习框架下的线性模型,以LinearRegression线性回归和LogisticRegression逻辑回归为示例,从代码层面测试和讲述监督学习中的线性模型。

2、监督学习之线性模型 - 简介

监督学习和线性模型是的两个重要概念。

  • 监督学习是一种机器学习任务,其中模型在已标记的数据集上进行训练。
  • 线性模型是一类通过线性组合输入特征来进行预测的模型。

线性模型的基本形式可以表示为:
y = w 1 x 1 + w 2 x 2 + . . . + w n x n + b y=w_1x_1 + w_2x_2 + ... + w_nx_n + b y=w1x1+w2x2+...+wnxn+b

其中:y 是预测值、x是特征、w是特征的权重(系数、b是是偏置(截距)

本篇,以两个示例讲述监督学习框架下集成学习(ensemble learning)的使用方法:

  • 示例1:LinearRegression线性回归,用于预测连续的目标变量,目标是找到最佳的 w和b,使得预测值与实际值之间的均方误差(MSE)最小
  • 示例2:LogisticRegression逻辑回归, 用于二分类问题,通过 Sigmoid 函数将线性组合映射到 [0, 1] 区间,以计算每个类别的概率

3、线性模型

3.1、安装依赖

python安装机器学习库: pip install scikit-learn

3.2、示例1: LinearRegression线性回归
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error,  r2_score# 特征矩阵X,
X = np.array([[800], [1200], [1600], [2000], [2400]])
# 目标向量y
y = np.array([150000, 200000, 250000, 300000, 350000])# 划分测试集和训练集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)# 创建线性回归模型
model = LinearRegression()# 使用训练集-训练模型
model.fit(X_train, y_train)# 使用测试集-进行预测
y_pred = model.predict(X_test)
print("实际结果:%s, 预测结果: %s" % (y_test, y_pred))# 使用测试集-进行模型评估,使用均方误差(Mean Squared Error, MSE)来评估预测的准确性
mse = mean_squared_error(y_test, y_pred)
# rmse = np.sqrt(mse)  # 均方根误差
# r2 = r2_score(y_test, y_pred)  # 决定系数# 打印评估结果
print(f"均方误差为: {mse}")
# print("均方根误差 (RMSE):", rmse)
# print("决定系数 (R²):", r2)

运行上述代码的输出:

实际结果:[250000], 预测结果: [250000.]
均方误差为: 0.0
3.3、示例2:LogisticRegression逻辑回归
import pandas as pd
from sklearn.linear_model import LogisticRegression# 创建一个示例数据
data = {'feature1': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],'label': [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]
}
df = pd.DataFrame(data)# 特征和标签
X = df[['feature1']]  # 特征
y = df['label']       # 标签# 划分测试集和训练集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建逻辑回归模型
model = LogisticRegression()
model.fit(X, y)# 评估模型性能
# 计算评估指标
conf_matrix = confusion_matrix(y_test, y_pred)
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)# 打印评估结果
print("混淆矩阵:")
print(conf_matrix)
print("\n准确率:", accuracy)
print("精确率:", precision)
print("召回率:", recall)
print("F1 分数:", f1)# 分类报告
print("\n分类报告:")
print(classification_report(y_test, y_pred))

运行上述代码的输出

混淆矩阵:
[[1 0][0 1]]准确率: 1.0
精确率: 1.0
召回率: 1.0
F1 分数: 1.0分类报告:precision    recall  f1-score   support0       1.00      1.00      1.00         11       1.00      1.00      1.00         1accuracy                           1.00         2macro avg       1.00      1.00      1.00         2
weighted avg       1.00      1.00      1.00         2

4、 总结

本篇以评估线性回归模型和逻辑回归为例,从代码层面测试和讲述监督学习中的线性模型。您可以根据不同的应用场景和需求,选择合适的模型,采用合适的评估指标来评估模型的效果。


http://www.ppmy.cn/embedded/167651.html

相关文章

Lumoz Chain正式上线:AI 时代的新算力破局者

新的叙事和技术突破永远是推动行业前行的核心动力。当下,AI Agent无疑是最炙手可热的赛道之一。 当加密世界将目光投向AI领域时,大多数项目仍停留在以AI为工具或应用场景的层面,试图通过集成AI模型或优化链上功能来吸引用户。然而&#xff0c…

从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)?

本文首发:从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)? 阿里云百炼和火山引擎都推出了免费的 DeepSeek 模型体验额度,今天我和大家一起搭建一个本地的专属 AI 助手。  阿里云百炼为 …

【量化-什么是信息?怎么有效的学习?关键字摘取】

到底什么是信息呢?我们怎么衡量信息的价值与多少呢?今天,我们就来说说这个问题。 怎么量化信息? 信息,只有量化了才能被准确地讨论,而量化的方法就和事件发生的概率密切相关。或者说得直白一些&#xff0…

Linux设备驱动开发-UART驱动

UART 有三条线,分别是 Rx,Tx 和 GND 数据发送接收步骤: 1.双方约定波特率 2.拉低(从高电平) Tx 引脚维持 1bit 时间 3.接收端在低电平开始处计时 4.发送端根据数据驱动 Tx 引脚电平 5.接收端 1.5bit 时间后读取引…

《AI赋能星际探索:机器人如何开启宇宙新征程!》

在人类对宇宙无尽的探索中,空间探索任务始终充满挑战。从遥远星球的探测,到空间站的维护,每一项任务都需要高精度、高可靠性的操作。人工智能(AI)的迅猛发展,为空间探索机器人带来了革命性的变革&#xff0…

如何在Ubuntu 22.04或20.04 Linux上安装MobaXterm

MobaXterm是一款流行的跨平台终端模拟器,集成了SSH、SFTP等多种网络工具,非常适合远程管理Linux服务器。然而,需要注意的是,MobaXterm本身是一款面向Windows的操作系统软件,没有官方的Linux版本。因此,在Ub…

Jquery详解

一.Jquery介绍 1.jQuery 是一个快速、简洁的 JavaScript 库,它极大地简化了 HTML 文档遍历、事件处理、动画效果和 AJAX 交互等操作,使开发者能够更轻松地创建动态和交互性强的网页。对原生js的封装,提供了很多时间,调用Api即可,并且对浏览器做了兼容性…

HDFS联邦机制与HA

1.Federation背景介绍 从上图中,我们可以很明显地看出现有的HDFS数据管理,数据存储2层分层的结构。也就是说,所有关于存储数据的信息和管理是放在NameNode这边,而真实数据的存储则是在各个DataNode下。而这些隶属于同一个NameNode,所管理的数据都是在同…