单分类支持向量机
建立高排放源识别模型仅将正标签的样本作为数据,采用单分类算法。
单类指的是训练集中只有一类样本,剩余的样本称为负类。单类支持向量机的基本思想是:通过非线性变换把数据映射到高维的特征空间,然后在特征空间中,把原点作为异常点,求出训练样本与原点最大间隔的超平面。对测试样本,通过超平面进行分类。常见的有基于边界的单类支持向量机和基于密度的单类支持向量机。
基于边界的单类支持向量机通过寻找最小化的超平面或超球,将样本数据尽量的包含在超球中,通过超平面或超球判断测试数据是否属于正常类。基于密度的单类支持向量机通过估计样本数据的概率密度,再根据设定的阈值来判断样本是否属于正常类。
数据集:
4092个数据样本:遥感数据(11个属性)以及车辆检测机构对应标签
对该数据进行TSNE数据降维并可视化
TSNE:TSNE就是一种数据可视化的工具,能够将高维数据降到2-3维(降维),然后画成图。
import numpy as np
import pandas as pd
from sklearn.manifold import TSNE
from sklearn.metrics import confusion_matrix
import seaborn as sb
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn import svm
data = pd.read_csv('DataSDS.csv') #读取数据
row_num = len(data)#返回数据行数
data = np.array(data.iloc[0:row_num, ])
col_num = data.shape[1]#返回矩阵数据列数
X = data[:, 2:col_num - 1]#2-为特征
Y = data[:, 1]#第一列为标签
rg = np.max(X, 0) - np.min(X, 0)#np.max(a, axis= 0) #返回列的最大值 axis= 0返回行的最大值
X = (X - np.min(X, 0)) / rg * 100
#min max归一化算法:该方法将数据进行一次线性变换,将数据映射到[0,1]区间。Min-Max归一化不改变数据的分布。其缺点为,过度依赖最大最小数,且容易受到离群点、异常数据的影响。
X2d = TSNE(n_components=2, random_state=0).fit_transform(X)#t-分布随机邻域嵌入 数据降维及可视化
plt.figure()
plt.scatter(X2d[:, 0], X2d[:, 1], c=Y)
plt.show()
模型评价指标
正样本-高排
高排:Nhe=TP+FN
真阳:The
假阳:Fhe
高排预测为高排 的为 True positive(TP)—— 真阳
高排预测为正常 的为 False negative(FN)—— 假阴
正常预测为正常 的为 True negative(TN)—— 真阴
正常预测为高排 的为 False positive(FP)—— 假阳
漏报率:真阳/(真阳+假阳)=(N-T)/N
虚警率:反映模型正确预测正样本纯度的能力。即负样本被预测为正样本占总的负样本的比例。
假阳/(真阳+假阳)=F/T+F
一个识别性能良好的模型应同时具有较低的漏报率和虚警率。
几篇文献方法
一、基于单分类的道路高排放源识别方法
- 单分类支持向量机(OC-SVM)
为了实现奇异点或异常点检测,当异常类难以表述或异常样本不易获取即可采用单分类算法解决。 - 基于标签传播的半监督单分类支持向量机(S2-OCSVM)
对于数据集中存在大量无标签数据,半监督算法可以从右标签数据和无标签数据中学习数据分布。
该算法不仅使用有标签数据作为训练数据,无标签数据将通过标签传播
二、基于深度学习特征聚类的高排放移动污染源自动识别
- 利用随机森林算法筛选出不同污染物(CO HC NO)排放的主要影响特征
- 对多维影响特征进行聚类分析,获取高排放类别标签
- 基于深度森林的移动污染源分类模型
本文难点:
一是影响污染物排放特征属性较多,使车辆数据分析工作量较大
二是如何确定高排放移动源的类别标签以及实现高排放的自动识别
主要贡献: - 使用随机森林实现特征选择,筛选出污染气体排放浓度的主要影响特征
- 基于深度聚类确定高排放类别标签,利用自适应的K-means聚类算法对污染物的多种影响特征进行深度聚类
- 分布高度偏斜,高排放类别样本稀缺,基于样本平衡策略的深度森林分类模型,实现对高排放移动源的自动识别