AI预测-一文解析AI预测数据工程

news2025/2/28 3:31:37

AI预测相关目录

AI预测流程,包括ETL、算法策略、算法模型、模型评估、可视化等相关内容
最好有基础的python算法预测经验

  1. EEMD策略及踩坑
  2. VMD-CNN-LSTM时序预测
  3. 对双向LSTM等模型添加自注意力机制
  4. K折叠交叉验证
  5. optuna超参数优化框架
  6. 多任务学习-模型融合策略
  7. Transformer模型及Paddle实现
  8. 迁移学习在预测任务上的tensoflow2.0实现
  9. holt提取时序序列特征
  10. TCN时序预测及tf实现
  11. 注意力机制/多头注意力机制及其tensorflow实现
  12. 一文解析AI预测数据工程

文章目录

  • AI预测相关目录
  • 一、特征工程概述
  • 二、数据异常处理
  • 三、数据单项分析
    • 3.1 可视化分析
    • 3.2 统计特征
  • 四、数据关联分析
    • 4.1 可视化分析
    • 4.2 热度图
  • 五、数据编码处理
    • 5.1 朴素编码(Naive Encoding)
    • 5.2 独热编码(One-Hot Encoding)
    • 5.3 词向量(Word Embedding)
    • 5.4 其他具有设计性的编码
  • 六、数据编码处理
    • 6.1 数据特征提取
    • 6.2 数据增强


一、特征工程概述

在这里插入图片描述
数据工程包括异常处理、数据单项分析、数据关联分析、数据编码处理、数据特征工程等方面,对AI预测可以起到决定性作用。

二、数据异常处理

见文章:

https://blog.csdn.net/qq_43128256/article/details/136768729?spm=1001.2014.3001.5502

三、数据单项分析

3.1 可视化分析

例如,对温度时间序列数据进行分析时,可通过可视化相近日期的温度数据,观测每日的温度趋势是否符合常识、是否走势大致相同…

3.2 统计特征

例如,分析某一字段数值时,计算其数值均值、方差、中位数…观测其数据项分布是否符合常识、波动是否合理…

四、数据关联分析

4.1 可视化分析

例如,对温度时间序列数据和气压时间序列数据进行分析时,可通过可视化的手段观测两条曲线的趋势与相关性是否整常。

4.2 热度图

在这里插入图片描述
如图所示,所谓热度图本质是对相关性系数矩阵的可视化。
相关性强弱看其系数绝对值大小,正数表示正相关,负数表示负相关。
自身与自身的相关性为1。

import seaborn as sns  
import numpy as np  
import matplotlib.pyplot as plt  
  
# 创建一个随机的二维数组  
data = np.random.rand(10, 12)  
  
# 创建一个热度图  
heatmap = sns.heatmap(data)  
  
# 显示图形  
plt.show()

五、数据编码处理

预测时数据集中往往遇到以文本形式存在的数值,对于这种类型的字段,有必要利用数据编码技术实现文本的数字化,使其变为可以用于算法计算的数值类型数据。
数据编码处理是机器学习、自然语言处理等领域中非常重要的步骤,其主要目的是将原始数据转换为算法能够理解和处理的格式。以下是朴素编码、独热编码(One-Hot Encoding)和词向量的详细介绍:

5.1 朴素编码(Naive Encoding)

朴素编码是一种简单的数据编码方法,它通常用于将分类数据转换为数值形式。对于每个分类变量,朴素编码会为其分配一个唯一的整数值。例如,对于颜色分类变量(红色、蓝色、绿色),朴素编码可能会将红色编码为1,蓝色编码为2,绿色编码为3。然而,这种编码方法存在一个潜在问题,即它假设了编码的数值之间存在某种顺序或距离关系,这在很多情况下并不成立。因此,朴素编码在处理没有自然顺序的分类变量时可能会导致误导性的结果。

5.2 独热编码(One-Hot Encoding)

独热编码是一种解决朴素编码中数值顺序问题的方法。它将分类变量转换为一个二进制向量,其中向量的长度等于分类变量的可能取值数量。对于每个分类变量的取值,独热编码会在向量中对应的位置设置为1,其他位置设置为0。例如,对于颜色分类变量(红色、蓝色、绿色),独热编码会将红色表示为[1, 0, 0],蓝色表示为[0, 1, 0],绿色表示为[0, 0, 1]。这样,每个分类变量的取值都被表示为一个独立的维度,从而消除了数值之间的序关系问题。独热编码特别适用于那些没有自然顺序的分类变量,如颜色、国家、产品类别等。

from sklearn.preprocessing import OneHotEncoder  
import numpy as np  
  
# 假设我们有一个包含几个分类特征的数组  
categorical_features = np.array([['cat1', 'dog', 'fish'], ['dog', 'cat1', 'cat2']]).reshape(-1, 1)  
  
# 初始化 OneHotEncoder  
encoder = OneHotEncoder(sparse=False)  
  
# 使用 fit_transform 方法对数据进行编码  
onehot_encoded = encoder.fit_transform(categorical_features)  
  
print(onehot_encoded)

5.3 词向量(Word Embedding)

词向量是自然语言处理中用于表示词汇的一种方法。与传统的基于规则或统计的自然语义处理方法不同,词向量将单词映射到一个低维实数向量空间中,使得具有相似含义或上下文的单词在向量空间中具有相近的位置。这种表示方法有助于捕捉词汇之间的语义关系,并使得机器学习算法能够更好地处理文本数据。词向量的生成通常基于大规模的语料库和深度学习技术,如Word2Vec、GloVe等。词向量在自然语言处理任务中取得了显著的效果提升,特别是在文本分类、情感分析、机器翻译等领域。

from gensim.models import Word2Vec  
from nltk.tokenize import word_tokenize  
import nltk  
  
# 下载 nltk 的punkt分词器模型,如果你还没有下载的话  
nltk.download('punkt')  
  
# 假设我们有一些文本数据  
sentences = [word_tokenize("I love natural language processing".split()),  
             word_tokenize("NLP is awesome".split()),  
             word_tokenize("Machine learning is fun".split())]  
  
# 初始化并训练 Word2Vec 模型  
model = Word2Vec(sentences, min_count=1)  
  
# 获取一个词的向量表示  
vector = model.wv['love']  
  
# 查找最相似的词  
similar_words = model.wv.most_similar('love')  
print(similar_words)

5.4 其他具有设计性的编码

如对季节进行1-2-3-4编码,对月份进行1-2-3-…-11-12编码,对工作日、周六、周日进行1-1-1-1-1-2-3的编码等等。

六、数据编码处理

数据特征构建和数据集划分属于AI基础,略。

6.1 数据特征提取

聚类

如K-SSE配合K均值聚类,先确定聚类数目,再对数据进行聚类,根据聚类结果给数据打上类别标签,如此,聚类算法实际上提取了蕴含在数据中的隐含信息,不同类别间的数据具有一定区分度。

import numpy as np  
import matplotlib.pyplot as plt  
from sklearn.cluster import KMeans  
from sklearn.datasets import make_blobs  
  
# 生成模拟数据  
n_samples = 300  
n_features = 2  
centers = 4  # 假设真实聚类数目为4  
X, y_true = make_blobs(n_samples=n_samples, n_features=n_features, centers=centers, cluster_std=0.60, random_state=0)  
  
# 定义K值范围  
k_range = range(1, 10)  
  
# 存储每个K值的SSE  
sse = []  
  
# 遍历K值范围,进行K均值聚类并计算SSE  
for k in k_range:  
    kmeans = KMeans(n_clusters=k, init='k-means++', max_iter=300, n_init=10, random_state=0)  
    kmeans.fit(X)  
    sse.append(kmeans.inertia_)  # inertia_属性即SSE  
  
# 绘制K-SSE曲线  
plt.plot(k_range, sse, marker='o')  
plt.xlabel('Number of clusters K')  
plt.ylabel('SSE')  
plt.title('K-SSE Curve')  
plt.show()  
  
# 根据K-SSE曲线确定最佳聚类数目  
# 通常是选择SSE开始平坦化的点对应的K值  
best_k = sse.index(min(sse[1:])) + 1  # 排除K=1的情况,因为它通常会有很高的SSE  
print(f"Best number of clusters based on K-SSE: {best_k}")  
  
# 使用最佳K值进行K均值聚类  
best_kmeans = KMeans(n_clusters=best_k, init='k-means++', max_iter=300, n_init=10, random_state=0)  
best_kmeans.fit(X)  
  
# 可视化聚类结果  
plt.scatter(X[:, 0], X[:, 1], c=best_kmeans.labels_, cmap='viridis')  
centers = best_kmeans.cluster_centers_  
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5)  
plt.title('KMeans Clustering')  
plt.show()

门限

实际上是手动根据业务需求,设置阈值划分,根据阈值范围给数据进行标签生成。

开源框架

利用开源项目对数据进行二次处理,形成新的特征数据。例如:

https://blog.csdn.net/qq_43128256/article/details/135677292

6.2 数据增强

数据归一化

数据归一化是一种预处理技术,用于将数据缩放到一个特定的范围,通常是[0, 1]或[-1, 1]。这种技术有助于在机器学习和数据分析中消除量纲或尺度差异,使得不同特征或变量在模型中具有相同的权重。当不同特征的尺度差异很大时,归一化有助于防止某些特征对模型的影响过大,从而改进模型的性能。

import numpy as np  
from sklearn.preprocessing import MinMaxScaler  
  
# 假设我们有一个包含不同尺度特征的数据集  
data = np.array([[100, 20, 50],  
                  [200, 50, 120],  
                  [300, 120, 100],  
                  [400, 85, 70]])  
  
# 初始化MinMaxScaler  
scaler = MinMaxScaler()  
  
# 使用fit_transform方法将数据缩放到[0, 1]范围  
normalized_data = scaler.fit_transform(data)  
  
print("Original Data:")  
print(data)  
  
print("Normalized Data:")  
print(normalized_data)

数据标准化

使用特征的均值和标准差来进行标准化,使得数据具有零均值和单位方差。这在某些算法(如逻辑回归、支持向量机)中可能更为有用,因为它们对特征的尺度更敏感。

from sklearn.preprocessing import StandardScaler  
  
# 初始化StandardScaler  
scaler = StandardScaler()  
  
# 使用fit_transform方法将数据进行标准化  
standardized_data = scaler.fit_transform(data)  
  
print("Standardized Data:")  
print(standardized_data)

标准化后的数据将不再位于[0, 1]范围,而是根据特征的分布,通常会有负数、零和正数。这种方法的一个关键好处是它不会受到数据集中异常值的影响,因为标准差计算考虑了所有数据点。

数据格式转化

例如:一维数据转化(numpy.array格式reshape)为二维数据,可与CNN等可对二维数据进行特征提取的数据进行配合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1523866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mock 测试入门:什么是 Mock 测试

Mock测试 什么是 Mock ? Mock 的意思就是,当你很难拿到源数据时,你可以使用某些手段,去获取到跟源数据相似的假数据,拿着这些假数据,前端可以先行开发,而不需要等待后端给了数据后再开发。 Mo…

【Spark编程基础】RDD 编程初级实践(附源代码)

目录 一、实验目的二、实验平台三、实验内容1.spark-shell 交互式编程2.编写独立应用程序实现数据去重3.编写独立应用程序实现求平均值问题 一、实验目的 1、熟悉 Spark 的 RDD 基本操作及键值对操作; 2、熟悉使用 RDD 编程解决实际具体问题的方法 二、实验平台 …

2024年5家香港服务器推荐,性价比top5

​​香港服务器是中小企业建站、外贸建站、个人博客建站等领域非常受欢迎的服务器,2024年有哪些云厂商的香港服务器是比较有性价比的?这里根据小编在IT领域多年服务器使用经验,给大家罗列5家心目中最具性价比的香港服务器厂商。 这五家香港服…

Gin 框架中前端向后端传值的几种方式介绍

我将为您详细讲解 Gin 框架中前端向后端传值的几种方式,并给出相应的简单例子。Gin 是一个高性能的 Web 框架,用于构建后端服务。在 Web 应用程序中,前端通常需要向后端发送数据,以便后端能够进行处理。以下是几种常见的前端向后端…

【基于HTML5的网页设计及应用】——改变文字和背景颜色

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

了解 HTTP 请求的五个关键要素

一个成功的 HTTP 请求不仅仅意味着简单地发送一个请求并接收到响应。事实上,每个 HTTP 请求都需要具备五大要点,这些要点确保了请求的正确性、可靠性和用户体验。在本文中,我们将探讨这五大要点,即发送适当的请求、显示加载状态、…

FFplay使用滤镜添加字幕到现有视频显示

1.创建字幕文件4k.srt 4k.srt内容: 1 00:00:01.000 --> 00:00:30.000 日照香炉生紫烟2 00:00:31.000 --> 00:00:60.000 遥看瀑布挂前川3 00:01:01.000 --> 00:01:30.000 飞流直下三千尺4 00:01:31.000 --> 00:02:00.000 疑是银河落九天2.通过使用滤镜显示字幕在视…

HarmonyOS-鸿蒙系统概述

你了解鸿蒙系统吗? 你看好鸿蒙系统吗? 今年秋季即将推出的HarmonyOS Next 星河版热度空前,一起来了解一下吧。本文将从HarmonyOS 的应用场景、发展历程、架构、开发语言、开发工具、生态建设六个角度聊一聊个人的理解。 1、应用场景 鸿蒙…

react-面试题

一、组件基础 1. React 事件机制 <div onClick{this.handleClick.bind(this)}>点我</div> React并不是将click事件绑定到了div的真实DOM上&#xff0c;而是在document处监听了所有的事件&#xff0c;当事件发生并且冒泡到document处的时候&#xff0c;React将事…

浅谈C/C++的常量const、指针和引用问题

今天我们来探讨C/C中const、指针和引用的相关问题。这些概念是编程中的重要组成部分&#xff0c;它们的正确使用对于代码的可读性和可维护性至关重要。通过深入了解const的不可变性、指针的灵活性以及引用的简洁性&#xff0c;我们能够更好地掌握编程的精髓&#xff0c;并写出更…

GEE错误——Line 12: xxx.size is not a function(计算列表长度出现错误)

简介 这里我们再计算研究区面积的时候出现了一个错误,这里的问题是Line 12: points8.size is not a function 主要问题是xxx不是一个数组或者对象,无法调用size方法。这里的问题是我们要获取这个对象的时候出现了问题,也就说你给函数传输的并不是一个对象,而不知道是什么…

研究生总结

Note:本博客更多是关于自己的感悟&#xff0c;没有翻阅文件详细查证&#xff0c;如果存在错过&#xff0c;也请提出指正。 1. 半监督回归 相比于半监督分类&#xff0c;半监督回归相对冷门。回归和分类之间有着难以逾越的天谴&#xff0c;预测精度。分类中的类别是可数的&…

STM32的简单介绍

STM32是一种基于ARM Cortex-M内核的32位微控制器&#xff0c;由意法半导体公司开发和生产。STM32具有丰富的外设和功能&#xff0c;适用于各种应用场合&#xff0c;如工业控制、消费电子、物联网、人机交互等。STM32的优势包括低功耗、高性能、高可靠性、易于开发等。STM32的系…

elementUI两个select单选框联动

实现需求&#xff1a;两个单选框内容两栋&#xff0c;在选择第一个时&#xff0c;第二个选框能自动更新对应选项。且在切换第一个选项内容时&#xff0c;第二个选框会被清空且切换到新的对应选项。 设置值班班次和备班情况两个选项 &#xff0c;完整代码如下&#xff1a; <…

数据库系统原理实验报告2 | 创建数据库和表

整理自博主本科《数据库系统原理》专业课自己完成的实验报告&#xff0c;以便各位学习数据库系统概论的小伙伴们参考、学习。 专业课本&#xff1a; ———— 本次实验使用到的图形化工具&#xff1a;Heidisql 目录 一、实验目的 二、实验内容 1、创建数据库 2、创建表 1.…

【网络原理】TCP协议详细解析

文章目录 &#x1f332;TCP协议的概念&#x1f338;TCP协议段格式&#x1f338;TCP的特性 &#x1f333;TCP原理详解&#x1f338;确认应答机制&#xff08;安全机制&#xff09;&#x1f338;超时重传机制&#xff08;安全机制&#xff09;&#x1f338;连接管理&#xff08;安…

PHP魔术方法详解

php魔术方法是一些特殊的方法&#xff0c;由特定的环境来进行触发。 这些魔术方法让开发者能够更好地控制对象的行为&#xff0c;特别是在处理不常见的操作或者需要自动化处理某些任务时非常有用。 1、_construct()构造函数&#xff1a; <?php highlight_file(__FILE__);…

微信开发者工具如何使用?使用注意事项

&#xff08;1&#xff09;单位如何进行换算&#xff1f; 1 px 750/屏幕宽度 rpx 1 rpx 屏幕宽度/750 px &#xff08;2&#xff09;如何新建文件&#xff1f; 1> 点开app.json 2> 在“pages/index/index”后面接“&#xff0c;pages/自定义文件夹名/自定义文件名”…

Linux安装JDK1.8 tomcat MariaDB(MySQL删减版)

本文主要使用yum的方式来操作&#xff08;centos) 安装JDK: 先搜索&#xff0c;确定软件包的完整名称 yum list | grep jdk 不同的系统上加载出来的JDK版本有可能不太一样&#xff0c;但是&#xff0c;我们主要使用JDK1.8就&#x1f197;了&#xff01; 再进行安装 yum insta…

Node.js 中 HTML 解析全面指南:探索不同的方法

在 Web 开发中&#xff0c;解析 HTML 是一个常见的任务&#xff0c;特别是当我们需要从网页中提取数据或操作 DOM 时。掌握 Node.js 中解析 HTML 的各种方式&#xff0c;可以大大提高我们提取和处理网页数据的效率。本文将介绍如何在 Node.js 中解析 HTML。 基本概念 HTML 解析…