当前位置: 首页 > article >正文

一文总结python的异常数据处理示例

AI应用开发相关目录

本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧
适用于具备一定算法及Python使用基础的人群

  1. AI应用开发流程概述
  2. Visual Studio Code及Remote Development插件远程开发
  3. git开源项目的一些问题及镜像解决办法
  4. python实现UDP报文通信
  5. python实现日志生成及定期清理
  6. Linux终端命令Screen常见用法
  7. python实现redis数据存储
  8. python字符串转字典
  9. python实现文本向量化及文本相似度计算
  10. python对MySQL数据的常见使用
  11. 一文总结python的异常数据处理示例

文章目录

  • AI应用开发相关目录
    • 一、前言
    • 二、代码示例


一、前言

数据是一切应用开发的基础,异常数据处理可以保障数据质量。
本文总结了基于数据分布、聚类算法、树、距离以及概率的异常数据处理算法及其示例。

二、代码示例

数据
在这里插入图片描述
基于数据分布的异常处理算法

# 基于箱线图的异常数据检测
KW_data = data['线路长度'].tolist()
Q1 = np.quantile(KW_data,0.25,interpolation='lower')#下四分位数
Q3 = np.quantile(KW_data,0.75,interpolation='higher')#上四分位数
QE = Q3-Q1

max_value = Q3+1.5*QE
min_value = Q3-1.5*QE
error_index = []
for i in range(len(KW_data)):
    if (KW_data[i]>= min_value) and (KW_data[i] <= max_value):
        pass
    else:
        error_index.append(i)

在这里插入图片描述

基于聚类算法的异常处理算法

# DBSCAN聚类
import numpy as np
from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler

# 创建数据集
X = np.array(data[['线路长度','导线长度','塔材','挂线金具','混凝土','土石方熨','本体投资']])

# 对数据进行标准化处理
X = StandardScaler().fit_transform(X)

# 使用DBSCAN算法进行聚类
dbscan = DBSCAN(eps=0.3, min_samples=2)
dbscan.fit(X)

# 获取异常数据的索引
outliers_mask = dbscan.labels_ == -1
outliers_indices = np.where(outliers_mask)[0]

# 输出异常数据的索引
print("异常数据的索引:", outliers_indices)

在这里插入图片描述

基于树的异常处理算法

# 基于孤立森林的异常数据检测

import numpy as np  
from sklearn.ensemble import IsolationForest  
import matplotlib.pyplot as plt  
  
# 生成示例数据  
X = np.array(data[['塔材','本体投资']])# 可多
  
# 使用孤立森林算法进行异常检测  
clf = IsolationForest(contamination='auto')  
pred = clf.fit_predict(X)  
  
# 将预测结果可视化  
plt.scatter(X[:, 0], X[:, 1], c=pred)  
plt.show()

在这里插入图片描述
基于数据间距的异常处理算法

# 基于局部异常因子的异常检测算法

import numpy as np  
from sklearn.neighbors import LocalOutlierFactor  
  
# 生成示例数据  
X = np.array(data[['塔材','本体投资']])# 可多
  
# 使用局部异常因子算法进行异常检测  
clf = LocalOutlierFactor(n_neighbors=20, contamination='auto')  
pred = clf.fit_predict(X)  
  
# 将预测结果可视化  
plt.scatter(X[:, 0], X[:, 1], c=pred)  
plt.show()

在这里插入图片描述
基于概率的异常处理算法

# 示例数据集
db_path = os.getcwd()+'\\db.sqlite3'
# 数据读取
gradedb = sqlite3.connect(db_path)
cursor=gradedb.cursor()
cursor.execute("SELECT * FROM returning_files_table;")
Tables=cursor.fetchall()
raw_data  = []
for i in Tables:
    raw_data.append([i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8]])
raw_data = pd.DataFrame(raw_data, columns=['标段', '线路长度', '导线长度', '塔材', '挂线金具', '盘型绝缘子', '混凝土', '土石方熨', '本体投资'])
a0 = raw_data['标段'].tolist()
a1 = [float(i) for i in raw_data['线路长度']]
a2 = [float(i) for i in raw_data['导线长度']]
a3 = [float(i) for i in raw_data['塔材']]
a4 = [float(i) for i in raw_data['挂线金具']]
a5 = raw_data['盘型绝缘子'].tolist()
a6 = [float(i) for i in raw_data['混凝土']]
a7 = [float(i) for i in raw_data['土石方熨']]
a8 = [float(i) for i in raw_data['本体投资']]
data = []
for i in range(len(a0)):
    data.append([a0[i],a1[i],a2[i],a3[i],a4[i],a5[i],a6[i],a7[i],a8[i]])
data = pd.DataFrame(data, columns=['标段', '线路长度', '导线长度', '塔材', '挂线金具', '盘型绝缘子', '混凝土', '土石方熨', '本体投资'])
# 从数据集中删除PassengerId,Name变量
data.drop(['标段'], axis=1, inplace=True) 
data = data[['线路长度','导线长度','塔材','挂线金具','混凝土','土石方熨','本体投资']]
data.head()
import pandas as pd
from sksos import SOS

X = np.array(data[['塔材','本体投资']]) # 两个维度
detector = SOS()
data["score"] = detector.predict(X)
data.sort_values("score", ascending=False).head(10)

在这里插入图片描述


http://www.kler.cn/a/271691.html

相关文章:

  • [Java]泛型(一)泛型类
  • Golang笔记——常用库context和runtime
  • JavaScript函数中this的指向
  • 快速分析LabVIEW主要特征进行判断
  • 【llm对话系统】大模型 RAG 之回答生成:融合检索信息,生成精准答案
  • WordPress event-monster插件存在信息泄露漏洞(CVE-2024-11396)
  • Python实战:Matplotlib绘图基础与实践
  • 科研绘图一:箱线图(添加贝赛尔曲线)
  • Android Studio字体大小调节
  • 记录对NSIS的一些微调 实现Electron安装包美化
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Rating)
  • 数据结构 之 树
  • SSA-LSTM多输入分类预测 | 樽海鞘优化算法-长短期神经网络 | Matlab
  • 2024.3.17每日一题
  • 【C语言】关于字符的一些实用函数
  • JS:轮播图终极版
  • kafka集群介绍
  • 探秘Nutch:揭秘开源搜索引擎的工作原理与无限应用可能(三)
  • 【NC14399】素数判断
  • Java实现简单的通讯录
  • 制定游戏开发里程碑和迭代周期的最佳实践是什么?
  • 为什么使用RedisDesktopManager可以连上redis,微服务似乎无法访问redis
  • 产品推荐 - 基于FPGA XC7K325T+DSP TMS320C6678的双目交汇视觉图像处理平台
  • 3 种方法限制 K8s Pod 磁盘容量使用
  • 基于element-plus +腾讯云COS实现图片上传
  • 用Origin快速拟合荧光寿命、PL Decay (TRPL)数据分析处理