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

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

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

相关文章

《操作系统实践-基于Linux应用与内核编程》第10章-Linux综合应用

前言: 内容参考《操作系统实践-基于Linux应用与内核编程》一书的示例代码和教材内容,所做的读书笔记。本文记录再这里按照书中示例做一遍代码编程实践加深对操作系统的理解。 引用: 《操作系统实践-基于Linux应用与内核编程》 作者:房胜、李旭健、黄…

复现文件上传漏洞

一、搭建upload-labs环境 将下载好的upload-labs的压缩包,将此压缩包解压到WWW中,并将名称修改为upload,同时也要在upload文件中建立一个upload的文件。 然后在浏览器网址栏输入:127.0.0.1/upload进入靶场。 第一关 选择上传文件…

数字孪生-使用Unity构建能实时显示应力应变的孪生模型

Motivation - 采用Unity作为孪生技术栈的经历? 最开始想要利用Ansys的Twin Builder模块来进行数字孪生的开发,但是Ansys 的Twin Builder在部署的时候,需要license,要获得license所要花费的价格是难以接受的。 后来想要利用QTVTK的方式来进行…

MATLAB:拟合与插值

一、关于多项式的基本操作 若要求非线性方程的根,则采用fzero, fminbnd函数 二、多项式拟合 clc, clear x0:0.2:10; y0.25*x20*sin(x); plot(x,y,k.,MarkerSize,15) grid on; hold on [p1,s1,mu1]polyfit(x,y,3); %3阶多项式拟合 y1polyval(p1,x,s1,mu1); [p2,s…

2024.3.17 机器学习周报

引言 Abstract 文献阅读 1、题目 R-TRANSFORMER: RECURRENT NEURAL NETWORK ENHANCED TRANSFORMER 2、引言 递归神经网络长期以来一直是序列建模的主要选择。然而,它严重遭受两个问题:在捕获非常长期的依赖性和无法并行化的顺序计算过程中无能为力…

云服务器2核4G能支持多少人同时访问?拿本记上!

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?5M带宽下载速度峰值可达640KB/秒,阿腾云以搭建网站为例,假设优化后平均大小为60KB,则5M带宽可支撑10个用户同时在1秒内打开网站,并发数为10,经阿腾云测试&a…

[蓝桥杯练习题]确定字符串是否包含唯一字符/确定字符串是否是另一个的排列

确定字符串是否包含唯一字符 #include<bits/stdc.h> using namespace std; int main(){ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);map<char,int>m;string s;cin>>s;for(int i0;i<s.size();i){if(isalpha(s[i]))s[i]tolower(s[i]);if(…

如何使用“Docker registry创建本地仓库,在服务器之间进行文件push和pull”?

1.1、在服务器1&#xff0c;运行registry docker run -d -p 5000:5000 -v ${PWD}/registry:/var/lib/registry --restart always --name registry registry:2.7.11.2、编辑/etc/docker/daemon.json 文件&#xff0c; 192.168.xxx.xxx 换成你自己 registry 服务的地址 sudo na…

印度交易所股票行情数据API接口

1. 历史日线 # Restful API https://tsanghi.com/api/fin/stock/XNSE/daily?token{token}&ticker{ticker}默认返回全部历史数据&#xff0c;也可以使用参数start_date和end_date选择特定时间段。 更新时间&#xff1a;收盘后3~4小时。 更新周期&#xff1a;每天。 请求方式…

下载程序到嵌入式开发板教程

一、设置共享目录 ubuntu与Window共同拥有的目录。 第一步&#xff1a;在Windows下创建一个文件夹share 第二部&#xff1a;点击虚拟机--->设置--->选项--->共享文件夹 进入共享目录的命令&#xff1a;cd/mnt/hgfs/share 二、C语言编译器 使用Linux平台下的gcc编…

MyBatis Plus(代码生成器)

一、安装 安装MyBatisPlus插件 二、配置 1、 在生成代码之前首先需要配置所要连接的数据库 下面所对应的分别是&#xff1a; 所要连接的数据库 数据库驱动 用户名 密码 2、 点击Other->Code Generator 开始配置所需选项

【NR 定位】3GPP NR Positioning 5G定位标准解读(十四)-DL-TDOA 定位

前言 3GPP NR Positioning 5G定位标准&#xff1a;3GPP TS 38.305 V18 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;…

基于卷积神经网络实现手写数字识别

基于卷积神经网络实现手写数字识别 基于卷积神经网络实现手写数字识别。具体过程如下&#xff1a; &#xff08;1&#xff09; 定义ConvNet结构类及其前向传播方式 &#xff08;2&#xff09; 设置超参数以及导入相关的包。 &#xff08;3&#xff09; 定义训练网络函数和绘…

桌面待办,电脑桌面待办事项便利贴怎么搞的

电脑桌面待办事项贴便利&#xff0c;是一款非常实用的小工具&#xff0c;可以帮助我们高效管理工作和生活中的各种任务。通过简单的操作&#xff0c;你可以在电脑桌面上添加待办事项&#xff0c;随时提醒自己完成任务&#xff0c;提高工作效率。那么&#xff0c;桌面待办&#…

Hack The Box-Jab

目录 信息收集 nmap enum4linux 服务信息收集 Pidgin kerbrute hashcat 反弹shell & get user 提权 系统信息收集 端口转发 漏洞利用 get root 信息收集 nmap 端口探测┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.4 --min-rate 10000 -oA…

vitepress里使用gitalk(图文教程)

vitepress里使用gitalk Gitalk 是一个基于 GitHub Issue 和 Preact 开发的评论插件 生成client配置 创建OAuth application 填写完毕&#xff0c;点击 Register application 即可 生成client secrets 一开始没有自动生成 Client secrets&#xff0c;需要手动生成&#xff…

Day17 深入类加载机制

Day17 深入类加载机制 文章目录 Day17 深入类加载机制一、初识类加载过程二、深入类加载过程三、利用类加载过程理解面试题四、类加载器五、类加载器分类六、类加载器之间的层次关系七、双亲委派模型 - 概念八、双亲委派模型 - 工作过程九、双亲委派模型 - 好处十、双亲委派原则…

MySQL:视图

1. 概述 在MySQL中&#xff0c;视图&#xff08;View&#xff09;是一个虚拟存在的表&#xff0c;其内容是由查询定义的。视图本身并不包含数据&#xff0c;它只包含一条SQL查询语句&#xff08;即定义视图的SELECT语句&#xff09;。当通过视图访问数据时&#xff0c;MySQL会执…

【软考高项】八、信息技术发展之新一代信息技术及应用

1、物联网 定义&#xff1a;通过信息传感设备&#xff0c;按约定的协议将任何物品与互联网相连接&#xff0c;进行信息交换和通信&#xff0c;以实现智能化识别、定位、跟踪、监控和管理的网络 分层&#xff1a; 感知层---各种传感器构成 网络层---物联网的中枢&#xff0c…

西门子TIA中配置Anybus PROFINET IO Slave 模块

1、所需产品 Siemens S7 PLC CPU 315-2 PN/DP 6ES7 315-2EH-0AB0 Siemens PLC 编程电缆 n.a. n.a. PC ,并安装Siemens PLC编程软件 TIA Portal V11 X-gateway Slave 接口的GSDML文件 根据网关的软件版本而定 Anybus Communicator GSD文件 GSDML-V1.0-HMS-ABCPRT-20050317.xl…