机器学习其他常用技术
1.决策树
任务:根据用户的学习动力,能力提升意愿,兴趣度,空余时间,判断其是否适合学习本门课程。
- 逻辑回归:
- 决策树:
决策树是一种对实例进行分类的树形结构,通过多层判断区分目标所属类别。
本质:通过多层判断,从训练数据集中归纳出一组分类规则。
优点:计算量小,运算速度快;易于理解,可清晰查看各种属性的重要性。
缺点:忽略属性间的相关性;样本类别分布不均匀时,容易影响模型表现
求解:假设给定训练数据集,其中,为输入实例,m为特征个 数,为类标记,,N为样本容量。
目标:根据训练数据集构建一个决策树模型,使他能够对实例进行正确的分类。
问题核心:特征选择,每一个节点选哪一个特征。选择的特征不同,决策树也不同,那么选择哪一个特征的决策树呢?有三种方法:ID3,C4.5,CART(前两者用到了信息增益的概念)
- ID3:利用信息熵原理选择信息增益最大的属性作为分类属性,递归地拓展决策树的分支,完成决策树的构造。
- 信息熵:是度量随机变量不确定性的指标,熵越大,变量的不确定性越大。 假定当前样本集合D中的第k类样本所占比例为,则D的信息熵为:。或0时,Ent(D)=0.
- 信息增益:以属性a进行样本划分带来的信息增益为,V为根据属性a划分出的类别数,D为当前样本总数,为类别v的样本数,是划分前的信息熵,是划分后的信息熵。
2.异常检测
任务:根据设备上传感器1与2的数据,自动监测设备异常工作状态。
自动寻找图片中异常的目标。
定义:根据输入数据,对不符合预期模式的数据进行识别。
一维数据集:寻找低概率数据事件
基于高斯分布实现异常检测:
- 计算数据均值,标准差
- 计算对应的高斯分布概率函数:
- 根据数据点概率,进行判断:如果,该点为异常点。
高维数据集:
- 计算数据均值和标准差
- 计算概率密度函数
3.主成分分析
数据降维:指在某些限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程。
作用:减少模型分析数据量,提升处理效率,降低计算难度;实现数据可视化。
数据降维的实现:主成分分析PCA
- 目标:寻找k(k<n)维新数据,使他们反应事物的主要特征
- 核心:在信息损失尽可能少的情况下,降低数据维度
- 如何保留主要信息:投影后的不同特征数据尽可能分得开
- 如何实现:使投影后数据的方差最大,因为方差越大数据也越分散
- 计算过程:
1)原始数据预处理(标准化:,)
2)计算协方差矩阵特征向量,及数据在各特征向量投影后的方差
3)根据需求(任务指定或方差比例)确定降维维度k
4)选取k维特征向量,计算数据在其形成空间的投影
4.实战准备
Iris数据集:
- 3类共150条记录,每类各50个数据。
- 每条记录都有4项特征:花萼长度(Sepal Length),花萼宽度(Sepal Width),花瓣长度(Petal Length),花瓣宽度(Petal Width)
- 通过4个特征预测花卉属于三类(iris-setosa,iris-versicolour,iris-virginica)中的哪一品种。
Iris数据集是机器学习经典数据集:简单而具有代表性;常用于监督式学习应用
决策树实现iris数据分类:
#模型训练
from sklearn import tree
dc_tree = tree.DecisionTreeClassifier(criterion = 'entropy',min_samples_leaf = 5)
dc_tree.fit(X,y)#可视化决策树
#filled = 'True':同一类别填充同一种颜色
tree.plot_tree(dc_tree,filled = 'True',feature_names = ['SepalLength','SepalWidth','PetalLength','PetalWidth'],class_names = ['setosa','versicolor','virginica'])
异常数据检测:
#数据分布统计
#x1:展示的数据 bins:横坐标划分了100个小格子
plt.hist(x1,bins = 100)#计算数据均值,标准差
x1_mean = x1.mean()
x1_sigma = x1.std()#计算对应的高斯分布数值
#linspacce(0,20,300):生成0~20的300个数据点
#pdf:概率密度函数点
from scipy.stats import norm
x1_range = np.linspacce(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)#可视化异常数据
anamoly_points = plt.scatter(data.loc[:,'x1'][y_predict == -1],data.loc[:,'x2'][y_predict == -1],marker = 'o',facecolor = 'none',edgecolor = 'red'.s = '250')
PCA降维后分类:
#数据标准化预处理
from sklearn.preprocessing import StandardScaler
X_norm = StandardScaler().fit_transfrom(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_#可视化方差比例
#[1,2,3,4]:想画4个比例的
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_reduced[:,1][y==2])
5.实战一:决策树实现iris数据分类
- 基于iris_data.csv数据,建立决策树模型,评估模型表现
- 可视化决策树结构
- 修改min_samples_leaf参数,对比模型结果
6.实战二:异常数据检测
- 基于anomaly_data.csv数据,可视化数据分布情况,及其对应高斯分布的概率密度函数
- 建立模型,实现异常数据点检测
- 可视化异常检测处理结果
- 修改概率分布阈值EllipticEnvelope(contamination = 0.1)中的contamination ,查看阈值改变对结果的影响
7.实战三:PCA(iris数据降维后分类)
- 基于iris_data.csv数据,建立KNN模型实现数据分类(n_neighbors = 3)
- 对数据进行标准化处理,选取一个维度可视化处理后的效果
- 进行与原数据等维度PCA,查看各主成分的方差比例
- 保留合适的主成分,可视化降维后的数据
- 基于降维后数据建立KNN模型,与原数据表现进行对比
机器学习其他常用技术相关推荐
- 独家 | 机器学习数据准备技术之旅(附链接)
作者:Jason Brownlee 翻译:李嘉骐 校对:王晓颖 本文约4300字,建议阅读9分钟 本文介绍了机器学习中常用的数据准备技术. 标签:初学者 机器学习 数据准备 特征工程 机器学习项目中的 ...
- 机器学习百页书:机器学习中常用到的一些数学符号
一本精简的机器学习入门手册.机器学习百页书<机器学习精讲>,人工智能的核心是机器学习,本书囊括机器学习的精髓,系统而精炼地讲解机器学习的基本原理.本书英文版一经推出,就长期位于亚马逊机器学 ...
- 机器学习 深度学习技术区别_体育技术机器学习金钱和灵感的圣杯
机器学习 深度学习技术区别 I claim that anyone with a math background and a love of baseball has at one time give ...
- 数据挖掘技术的来源、历史、研究内容及常用技术
数据挖掘技术的来源.历史.研究内容及常用技术 1 数据挖掘技术的由来 1.1网络之后的下一个技术热点 我们现在已经生活在一个网络化的时代,通信.计算机和网络技术正改变着整个人类和社会.如果用芯片集成度 ...
- Python_机器学习_常用科学计算库_第6章_ Seaborn+综合案例
Python_机器学习_常用科学计算库_第6章_ Seaborn+综合案例 文章目录 Python_机器学习_常用科学计算库_第6章_ Seaborn+综合案例 Seaborn 学习目标 6.1 Se ...
- 四种检测异常值的常用技术简述
四种检测异常值的常用技术简述 在训练机器学习算法或应用统计技术时,错误值或异常值可能是一个严重的问题,它们通常会造成测量误差或异常系统条件的结果,因此不具有描述底层系统的特征.实际上,最佳做法是在进行 ...
- 分布式系统开发实战:分布式计算,分布式计算常用技术
分布式计算 分布式计算就是将一个大的计算任务分解成多个小任务,然后分配给多台计算机分别计算,再上传运算结果后统一合并得出数据结论.本章详细介绍分布式计算. 分布式计算概述 在过去的20年里,互联网产生 ...
- 新手学大数据、机器学习相关开发技术,蜡炬教育提醒会经历这几个阶段
原标题:蜡炬教育:新手学大数据.机器学习相关开发技术,要经历这几个阶段 蜡炬教育任课老师说,学习一门新技术其实不难,但很多人越学越迷茫,归根结底是对要学的东西没有系统化的认识,学习起来没有规划. 作为 ...
- 机器学习算法常用指标总结
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 机器学习性能评价标准是模型优化的前提,在设计机器学习算法过程中,不 ...
最新文章
- linux命令:fsck
- 数据库多对多关系示例 - 使用sqlite演示
- Nvelocity 模板引擎 实例
- LeetCode 1362. 最接近的因数
- 清华提出LogME,无需微调就能衡量预训练模型的下游任务表现!
- 【Spring】Spring DataSourceTransactionManager
- Pivotal Cloud Foundry安全原理解析
- leetcode 贪心_「leetcode」135.分发糖果【贪心算法】详细图解
- 2015.3.12Arinc424 Tools中SiniArincCls.csParserFile(string sFile)函数正则表达式理解
- 估值40亿美元后,完美日记的逆袭与成长新烦恼
- accuary、micro 、macro、weighted F1-score
- 全国企业信用信息 网站
- 【精益生产】精益生产十大工具
- 罗技LogitechFlow技术--惊艳的多电脑切换体验
- 最新小储云商城程序源码最新PJ版 去授权后门
- win7 桌面图标显示不正常
- mysql打开注册表命令_怎么打开注册表文件?
- # tree bash: tree: 未找到命令...
- 猿创征文|当我在追光 我与光同航--我与Java的技术成长之路
- java disconnect_Java HttpResponse.disconnect方法代码示例