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

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等可对二维数据进行特征提取的数据进行配合。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flink程序员开发利器本地化WebUI生成

前言 在flink程序开发或者调试过程中,每次部署到集群上都需要不断打包部署,其实是比较麻烦的事情,其实flink一直就提供了一种比较好的方式使得开发同学不用部署就可以观察到flink执行情况。 上代码 第一步:开发之前需要引入在本…

中间件漏洞(redis)

目录 1.Redis服务器被挖矿案例 2.redis常见用途 3.redis环境配置 4.redis的持久化机制 5.redis动态修改配置 6.webshell提权案例 7.定时任务bash反弹连接提权案例 8.SSH Key提权案例 9.redis安全加固分析 1.Redis服务器被挖矿案例 我没有体验过,那就看看别…

Flutter:构建美观应用的跨平台方案

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【Fitten Code】“吊打“Github Copilot的国内免费代码辅助插件

🌻个人主页:相洋同学 🥇学习在于行动、总结和坚持,共勉! 目录 1.Github Copilot 2.Fitten Code 2.1 对话体验: 2.2 代码补全体验: 2.3 Pycharm安装方法: 2.4 Vscode安装方法…

git基础命令(一)

目录 基础概念git statusgit addgit diffgit loggit commit文件可以处于以下三种状态之一远程存储库与本地存储库参考 用于知识记录。后续有新的的内容,例子,将持续更新本文档。 基础概念 工作树:git add 之前,变动内容的文件列表…

Linux课程_____用户的管理

一、规则 用户至少属于一个组,在创建时如果不指定组,将会创建同名的组 用户只能有一个基本组(主组),但可以隶属于多个附加组 如果一个组作为某用户的基本组,此组将不能被删除 UID: 用户标识 GID: 组的标识 root管理员的uid及gid 都为0 二、用户的配置文件 1./etc/passwd …

<c语言学习> 整数和浮点数的存储方式

1.整数 有符号整数 第一位为符号位 1代表负数 0代表正数 举例: signed char 8 ---------------------> 0000 1000 -8 ----------------------> 1111 1000 (补码形式存储) 补码存储(计算)的妙处&…

Discourse 分类图片

我们可以在 Discourse 上为分类添加图片。 进入分类编辑界面,然后选择 Image 标签。 在 Images 标签下,上传分类需要的图片。 图片大小 图片的大小是 Discourse 进行控制的,高度为 150 PX 像素。 如果上传的图片大于 150 px 的高度像素&…

【JavaSE】类与对象

前言 Java是一门纯面向对象的语言,在面向对象的世界里,一切都为对象。它是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。类与对象是我们学习面向对象最基础的知识,是面向对象实现的基石,可见它是有多么重…

打破数据孤岛,TDengine 与 Tapdata 实现兼容性互认证

当前,传统行业正面临着数字化升级的紧迫需求,但海量时序数据的处理以及数据孤岛问题却日益突出。越来越多的传统企业选择引入时序数据库(Time Series Database,TSDB)升级数据架构,同时,为了克服…

cesium 动态立体墙效果

cesium 动态立体墙效果 以下为源码直接复制可用 实现效果 实现思路 通过修改“material”自定义材质实现动态效果 核心类(WallImageTrailMaterialProperty)自定义材质 class WallImageTrailMaterialProperty {constructor(options) {this

推荐一款好用的前端分页插件jqPaginator

jqPaginator 简洁、高度自定义的jQuery分页组件,适用于多种应用场景。 现在网上各种各样的分页组件很多,但是很难找到十分“称心如意”的,于是jqPaginator诞生了。 我心中理想的分页组件,要不受CSS框架限制,可以使用…

汽车电子零部件(6):DMS/OMS、CMS

前言: 有一个部件过去不曾有,而如今有可能要标准化标配化,那就是Driver Monitoring System (DMS)驾驶员监控系统、Occupant Monitoring System (OMS)乘客监控系统和Camera Monitor System(CMS)摄像头监控系统。 汽车视觉技术的创新推动先进驾驶辅助系统的变革(ADAS),并…

力扣39. 组合总和

Problem: 39. 组合总和 文章目录 题目描述思路及解题方法复杂度Code 题目描述 思路及解题方法 该问题是组合问题的一个变体,可以归纳为元素无重复可复选问题,其代码的实现几乎和组合问题一模一样,由于在组合问题中我们只需要利用一个变量在递…

汽车电子与软件架构概述

汽车电子与软件架构概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠自己…

C语言 数据在内存中的存储

目录 前言 一、整数在内存中的存储 二、大小端字节序和字节序判断 2.1.练习一 2.2 练习二 2.3 练习三 2.4 练习四 2.5 练习五 2.6 练习六 三、浮点数在内存中的存储 3.1 浮点数存的过程 3.2 浮点数取的过程 总结 前言 数据在内存中根据数据类型有不同的存储方式,今…

jvm调优实战操作

1.什么是jvm jvm就是lava虚拟机,他是java运行环境的一部分,它虚构出来的一台计算机,在通过在实际的计算机上仿真模拟各种计算机功能来实现Java应用程序,有JVM从软件层面屏蔽了底层硬件、指令层面的细节让他兼容各种系统 2.我们调…

【matlab】如何批量修改图片命名

【matlab】如何批量修改图片命名 (●’◡’●)先赞后看养成习惯😊 假如我的图片如下,分别是1、2、3、4、5的命名 需求一:假如现在我需要在其后面统一加上_behind字符串,并且保留原命名,同时替换掉原先的图片,也就是不copy新的一份,直接在原文件夹中处理,我们可以进行…

设计模式 — — 单例模式

一、是什么 单例模式只会在全局作用域下创建一次实例对象,让所有需要调用的地方都共享这一单例对象 二、实现 // 单例构造函数 function CreateSingleton (name) {this.name name;this.getName(); };// 获取实例的名字 CreateSingleton.prototype.getName func…

MyBatis是纸老虎吗?(三)

上篇文章——《MyBatis是纸老虎吗?(二)》——梳理了MyBatis的执行流程,这篇文章想详细聊聊MyBatis的解析过程。当我把这个想法讲个同事时,他不可置信的说道:“这有什么好梳理的?难道你要介绍xml…