机器学习-决策树-异常检测-主成分分析

这篇具有很好参考价值的文章主要介绍了机器学习-决策树-异常检测-主成分分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

决策树(Decision Tree)

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
一种对实例进行分类的树形结构,通过多层判断区分目标所属类别
本质:通过多层判断,从训练数据集中归纳出一组分类规则
优点:

  • 计算量小,运算速度快
  • 易于理解,可清晰查看个属性的重要性

缺点:

  • 忽略属性间的相关性
  • 样本类别分布不均匀时,容易影响模型表现

决策树求解
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
问题核心:特征选择,每一个节点,应该选用哪个特征
三种求解方法:

  • ID3
  • C4.5
  • CART

ID3:利用信息熵原理选择信息增益最大的属性作为分类属性,递归地拓展决策树的分枝,完成决策树的构造
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
目标:划分后样本发布不确定性尽可能小,即划分后信息熵小,信息增益大
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能

异常检测(Anomaly Detection)

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
自动寻找图片中异常的目标
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
案例:
异常消费检测、劣质产品检测、缺陷基因检测…
根据输入数据,对不符合预期模式的数据进行识别
一维数据集:
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
寻找低概率数据(事件)
概率密度
概率密度函数一个描述随机变量在某个确定的取值点附件的可能性的函数
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
高斯分布
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
基于高斯分布实现异常检测
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
3、根据数据点概率,进行判断
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
当数据维度高于一维
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能

主成分分析(PCA)

数据降维(Dimensionality Reduction)
数据降维案例(经济分析)
任务(真实事件):通过美国1929-1938年各年经济数据,预测国民收入与支出
数据包括:雇主补贴、消费资料和生产资料、纯公共支出、净增库存、股息、利息、外贸平衡等十七个指标
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
数据降维:指在某些限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程
作用:

  • 减少模型分析数据量,提升处理效率,降低计算难度
  • 实现数据可视化

数据量下降举例:2D数据降维到1D数据
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
3D数据降维到2D数据
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
国家分布可视化(基于50项经济指标)
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
数据降维的实现:主成分分析(PCA)
PCA(principal components analysis):数据降维技术中,应用最最多的方法
目标:寻找k(k<n)维新数据,使它们反映事物的主要特征
核心:在信息损失尽可能少的情况下,降低数据维度
如何保留主要信息:投影后的不同特征数据尽可能分得开(即不相关)
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
如何实现?
使投影后数据的方差最大,因为方差越大数据也越分散
计算过程:

  • 原始数据预处理机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
  • 计算协方差矩阵特征向量、及数据在各特征向量投影的方差
  • 根据需求(任务指定或方差比例)确定降维维度k
  • 选取k维特征向量,计算数据在其形成空间的投影

实战准备

lris数据集

lris鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例
3类共150条数据,每类各50个数据
每条数据都有4项特征:
花萼长度(Sepal Length)、花萼宽度(Sepal Width)、
花瓣长度(Petal Length)、花瓣宽度(Petal Width)

通过4个特征预测花卉属于三类(iris-setosa,iris-versicolour,iris-virginica)中的哪一品种
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能

决策树实现iris数据分类

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
模型训练

from sklearn import tree
dc_tree=tree.DecisionTreeClassifier(criterion='entropy',min_samples_leaf=5)
dc_tree.fit(X,y)

可视化决策树

tree.plot_tree(dc_tree,filled='True',
               feature_names=['SepalLength','SepalWidth',
                              'PetalLength','PetalWidth'],
               class_names=['setosa','versicolor','virginica'])

异常数据检测

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
计算数据均值、标准差:

x1_mean = x1.mean()
x1_sigma = x1.std()

计算对应的高斯分布数值:

from scipy.stats import norm
x1_range = np.linspace(0,20,300)
normal1 = norm.pdf(x1_range,x1_mean,x1_sigma)

可视化高斯分布曲线

plt.plot(x1_range,normal1)

模型训练:

from sklearn.covariance import EllipticEnvelope
clf=EllipticEnvelope()
clf.fit(data)

可视化异常数据:

annamoly_points = plt.scatter(data.loc[:,'x1'][y_predict==-1],
                              data.loc[:,'x2'][y_predict==-1],
                              marker = 'o',
                              facecolor = "none",
                              edgecolor = "red",s=250)

PCA(iris数据降维后分类)

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
数据标准化预处理:

from sklearn.preprocessing import StandardScaler
X_norm = StabdardScaler().fit_transform(X)

模型训练获得PCA降维后数据:

from sklearn.decomposition import PCA
pca = PCA(n_components=4)
X_reduced = pca.fit_transform(X_norm)

计算个成分投影数据方差比例:

var_ratio = pca.explained_variance_ratio_

可视化方差比例:

plt.bar([1,2,3,4],var_ratio)
plt.title('variance ratio of each component')
plt.xticks([1,2,3,4],['PC1','PC2','PC3','PC4'])
plt.ylabel('var_ratio')
plt.show()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
可视化PCA后的数据:

setosa = plt.scatter(X_reduced[:,0][y==0],X_reduced[:,1][y==0])
versicolor = plt.scatter(X_reduced[:,0][y==1],X_reduced[:,1][y==1])
virginica = plt.scatter(X_reduced[:,0][y==2],X_reduce[:,1][y==1])

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能

实战-决策树实现iris数据分类

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能

  1. 基于iris_data.csv数据,建立决策树模型,评估模型表现
  2. 可视化决策树结构
  3. 修改min_samples_leaf参数,对比模型结果

导入导加载数据

import pandas as pd
import numpy as np
data = pd.read_csv('iris_data.csv')
data.head()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
赋值

X=data.drop(['target','label'],axis=1)
y=data.loc[:,'label']

模型建立 训练

from sklearn import tree
dc_tree = tree.DecisionTreeClassifier(criterion='entropy',min_samples_leaf=5)
dc_tree.fit(X,y)

评估

y_predict = dc_tree.predict(X)
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y,y_predict)
print(accuracy)

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能

from matplotlib import pyplot as plt
fig=plt.figure(figsize=(10,10))
tree.plot_tree(dc_tree,filled='True',feature_names=['SepalLength','SepalWidth','PatalLength','PetalWidth'],class_names=['setosa','versicolor','virginica'])

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能

实战-异常数据检测

  1. 基于anomaly_data.csv数据,可视化数据分布情况、及其对应高斯分布的概率密度函数
  2. 建立模型,实现异常数据点预测
  3. 可视化异常检测处理结果
  4. 修改概率分布阈值

EllipticEnvelope(contamination=0.1)中的contamination,查看阈值改变对结果的影响
机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
导入包 加载数据

import pandas as pd
import numpy as np
data = pd.read_csv('anomaly_data.csv')
data.head()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
数据可视化

from matplotlib import pyplot as plt
fig1=plt.figure(figsize=(10,5))
plt.scatter(data.loc[:,'x1'],data.loc[:,'x2'])
plt.title('data')
plt.xlabel('x1')
plt.ylabel('x2')
plt.show()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
赋值

x1=data.loc[:,'x1']
x2=data.loc[:,'x2']

可视化数据分布

fig2=plt.figure(figsize=(20,5))
plt.subplot(121)
plt.hist(x1,bins=100)
plt.title('x1 distribution')
plt.xlabel('x1')
plt.ylabel('counts')
plt.subplot(122)
plt.hist(x2,bins=100)
plt.title('x2 distribution')
plt.xlabel('x2')
plt.ylabel('counts')
plt.show()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
计算均值和标准差

x1_mean = x1.mean()
x1_sigma = x1.std()
x2_mean = x2.mean()
x2_sigma = x2.std()
print(x1_mean,x1_sigma,x2_mean,x2_sigma)

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
高斯分布的概率密度函数

from scipy.stats import norm
x1_range = np.linspace(0,20,300)
x1_normal = norm.pdf(x1_range,x1_mean,x1_sigma)
x2_range = np.linspace(0,20,300)
x2_normal = norm.pdf(x2_range,x2_mean,x2_sigma)

可视化

fig2 = plt.figure(figsize=(20,5))
plt.subplot(121)
plt.plot(x1_range,x1_normal)
plt.title('normal p(x1)')
plt.subplot(122)
plt.plot(x2_range,x2_normal)
plt.title('normal p(x2)')
plt.show()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
建立模型 训练

from sklearn.covariance import EllipticEnvelope
ad_model = EllipticEnvelope()
ad_model.fit(data)

预测结果

y_predict = ad_model.predict(data)
print(pd.value_counts(y_predict))

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
可视化

from matplotlib import pyplot as plt
fig4=plt.figure(figsize=(15,10))
orginal_data=plt.scatter(data.loc[:,'x1'],data.loc[:,'x2'],marker='x')
anomaly_data=plt.scatter(data.loc[:,'x1'][y_predict==-1],data.loc[:,'x2'][y_predict==-1],marker='o',facecolor="none",edgecolors='red',s=150)
plt.title('data')
plt.xlabel('x1')
plt.ylabel('x2')
plt.legend((orginal_data,anomaly_data),('orginal_data','anomaly_data'))
plt.show()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
修改概率分布阈值

ad_model = EllipticEnvelope(contamination=0.02)
ad_model.fit(data)
y_predict = ad_model.predict(data)
fig5=plt.figure(figsize=(15,10))
orginal_data=plt.scatter(data.loc[:,'x1'],data.loc[:,'x2'],marker='x')
anomaly_data=plt.scatter(data.loc[:,'x1'][y_predict==-1],data.loc[:,'x2'][y_predict==-1],marker='o',facecolor="none",edgecolors='red',s=150)
plt.title('data')
plt.xlabel('x1')
plt.ylabel('x2')
plt.legend((orginal_data,anomaly_data),('orginal_data','anomaly_data'))
plt.show()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能

实战PAC(iris数据降维后分类)

  1. 基于iris_data.csv数据,建立KNN模型实现数据分类(n_neighbors=3)
  2. 对数据进行标准化处理,选取一个维度可视化处理后的效果
  3. 进行与原数据等维度PCA,查看各主成分的方差比例
  4. 保留合适的主成分,可视化降维后的数据
  5. 基于降维后数据建立KNN模型,与原数据表现进行对比

载入数据

import pandas as pd
import numpy as np
data = pd.read_csv('iris_data.csv')
data.head()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
赋值

X=data.drop(['target','label'],axis=1)
y=data.loc[:,'label']

建立模型 训练 计算准确率

from sklearn.neighbors import KNeighborsClassifier
KNN = KNeighborsClassifier(n_neighbors=3)
KNN.fit(X,y)
y_predict = KNN.predict(X)
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y,y_predict)
print(accuracy)

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
数据标准化处理

from sklearn.preprocessing import StandardScaler
X_norm = StandardScaler().fit_transform(X)

查看均值和标准差 对比

x1_mean = X.loc[:,'sepal length'].mean()
x1_norm_mean = X_norm[:,0].mean()
x1_sigma = X.loc[:,'sepal length'].std()
x1_norm_sigma = X_norm[:,0].std()
print(x1_mean,x1_sigma,x1_norm_mean,x1_norm_sigma)

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
可视化

from matplotlib import pyplot as plt
fig1=plt.figure(figsize=(20,10))
plt.subplot(121)
plt.hist(X.loc[:,'sepal length'],bins=100)
plt.subplot(122)
plt.hist(X_norm[:,0],bins=100)
plt.show()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
PCA处理

from sklearn.decomposition import PCA
pca = PCA(n_components=4)
X_pca = pca.fit_transform(X_norm)
var_ratio = pca.explained_variance_ratio_
print(var_ratio)

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
可视化

fig2=plt.figure(figsize=(20,5))
plt.bar([1,2,3,4],var_ratio)
plt.xticks([1,2,3,4],['PC1','PC2','PC3','PC4'])
plt.ylabel('variance ratio of each PC')
plt.show()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
保留主成分

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_norm)
fig3=plt.figure(figsize=(10,10))
setosa=plt.scatter(X_pca[:,0][y==0],X_pca[:,1][y==0])
versicolor = plt.scatter(X_pca[:,0][y==1],X_pca[:,1][y==1])
virginica = plt.scatter(X_pca[:,0][y==2],X_pca[:,1][y==2])
plt.legend((setosa,versicolor,virginica),('setosa','versicolor','virginica'))
plt.show()

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能
对比

KNN = KNeighborsClassifier(n_neighbors=3)
KNN.fit(X,y)
y_predict = KNN.predict(X)
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y,y_predict)
print(accuracy)
KNN = KNeighborsClassifier(n_neighbors=3)
KNN.fit(X_pca,y)
y_predict = KNN.predict(X_pca)
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y,y_predict)
print(accuracy)

机器学习-决策树-异常检测-主成分分析,人工智能,机器学习,决策树,人工智能文章来源地址https://www.toymoban.com/news/detail-811094.html

到了这里,关于机器学习-决策树-异常检测-主成分分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【机器学习】独立成分分析(ICA)及Matlab实现

    独立成分分析(ICA)最初由Aapo Hyvärinen等人于1980年代提出,其起源可以追溯到对神经科学和信号处理领域的研究需求。ICA的提出主要是为了解决混合信号中盲源分离、非高斯性信号处理和自适应性估计等问题,为实际应用提供了一种有效的信号处理方法。随着研究的深入和应

    2024年02月05日
    浏览(41)
  • 【机器学习】主成分分析(PCA)算法及Matlab实现

    【问题引入】 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上增加了数据采集的工作量,更重要的是在多数情况下,许多变量之间可

    2024年02月04日
    浏览(52)
  • 【人工智能与机器学习】决策树ID3及其python实现

    决策树(Decision Tree)是一类常见的机器学习方法,是一种非常常用的分类方法,它是一种监督学习。常见的决策树算法有ID3,C4.5、C5.0和CART(classification and regression tree),CART的分类效果一般要优于其他决策树。 决策树是基于树状结构来进行决策的,一般地,一棵决策树包含

    2024年02月08日
    浏览(104)
  • 【机器学习】 奇异值分解 (SVD) 和主成分分析 (PCA)

            在机器学习 (ML) 中,一些最重要的线性代数概念是奇异值分解 (SVD) 和主成分分析 (PCA)。收集到所有原始数据后,我们如何发现结构?例如,通过过去 6 天的利率,我们能否了解其构成以发现趋势?         对于高维原始数据,这变得更加困难。这就像

    2024年02月15日
    浏览(52)
  • 大数据毕业设计python+spark天气预测 天气可视化 天气大数据 空气质量检测 空气质量分析 气象大数据 气象分析 大数据毕设 计算机毕业设计 机器学习 深度学习 人工智能 知识图谱

    论文题目 选题依据 天气预测是指综合使用现代科学技术对某一地区未来一段时间的温度、湿度、风力、风向、天气状况等进行预测。在当今社会,天气预测对人们的生产生活有着举足轻重的影响,与日常出行、农业生产、自然灾害预防等多个领域息息相关,是现代社会正常运转

    2024年04月26日
    浏览(59)
  • 机器学习强基计划8-1:图解主成分分析PCA算法(附Python实现)

    机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型:决策树、支持向量机、贝叶斯与马尔科夫决策、强化学习等。强基计划实现从理论到实践的全面覆盖,由本人亲自从底层编

    2024年02月02日
    浏览(63)
  • 人工智能|机器学习——基于机器学习的舌苔检测

    基于深度学习的舌苔检测毕设留档.zip资源-CSDN文库 目前随着人们生活水平的不断提高,对于中医主张的理念越来越认可,对中医的需求也越来越多。在诊断中,中医通过观察人的舌头的舌质、苔质等舌象特征,了解人体内的体质信息从而对症下药。 传统中医的舌诊主要依赖

    2024年02月22日
    浏览(67)
  • 机器学习强基计划8-3:详细推导核化主成分分析KPCA算法(附Python实现)

    机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理;“广”在分析多个机器学习模型:决策树、支持向量机、贝叶斯与马尔科夫决策、强化学习等。强基计划实现从理论到实践的全面覆盖,由本人亲自从底层编

    2023年04月09日
    浏览(43)
  • 【机器学习:异常值检测】新颖性和异常值检测

    许多应用程序需要能够确定新观测值是属于与现有观测值相同的分布(它是异常值),还是应被视为不同的分布值(它是异常值)。通常,此功能用于清理真实数据集。必须做出两个重要的区别: outlier detection: 异常值检测: 训练数据包含异常值,这些异常值被定义为与其他

    2024年01月23日
    浏览(34)
  • 【机器学习】决策树与分类案例分析

    决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-else结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法。下面就来举一个例子: 通过这一个例子我们会有一个问题,为什么女生会把年龄放在第一个呢?这就是决策树的一个思想:高效性。 为了

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包