机器学习其他常用技术

1.决策树

任务:根据用户的学习动力能力提升意愿,兴趣度,空余时间,判断其是否适合学习本门课程。

  • 逻辑回归:
  • 决策树:

决策树是一种对实例进行分类的树形结构,通过多层判断区分目标所属类别。

本质:通过多层判断,从训练数据集中归纳出一组分类规则。

优点:计算量小,运算速度快;易于理解,可清晰查看各种属性的重要性。

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

求解:假设给定训练数据集D=\left \{ \left ( x_{1} ,y_{1}\right ) , \left ( x_{2} ,y_{2}\right ),...,\left ( x_{N} ,y_{N}\right ) \right ) \right )\right \},其中,x_{i}=\left ( x_{i}^{(1)} ,x_{i}^{(2)},...,x_{i}^{(m)}\right )^{T}为输入实例,m为特征个            数,y_{i}\epsilon \left \{ 1,2,3,...,k \right \}为类标记,i=1,2,...,N,N为样本容量。

目标:根据训练数据集构建一个决策树模型,使他能够对实例进行正确的分类。

问题核心:特征选择,每一个节点选哪一个特征。选择的特征不同,决策树也不同,那么选择哪一个特征的决策树呢?有三种方法:ID3,C4.5,CART(前两者用到了信息增益的概念)

  • ID3:利用信息熵原理选择信息增益最大的属性作为分类属性,递归地拓展决策树的分支,完成决策树的构造。
  • 信息熵:是度量随机变量不确定性的指标,熵越大,变量的不确定性越大。 假定当前样本集合D中的第k类样本所占比例为P_{k},则D的信息熵为:Ent\left ( D \right )=-\sum_{k=1}^{|y|}p_{k}log_{2}p_{k}p_{k}=1或0时,Ent(D)=0.
  • 信息增益:以属性a进行样本划分带来的信息增益为Gain(D,a)=Ent(D)-\sum_{v=1}^{v}\frac{D^{v}}{D}Ent(D^{v}),V为根据属性a划分出的类别数,D为当前样本总数,D^{v}为类别v的样本数,Ent(D)是划分前的信息熵,\sum_{v=1}^{v}\frac{D^{v}}{D}Ent(D^{v})是划分后的信息熵。

2.异常检测

任务:根据设备上传感器1与2的数据,自动监测设备异常工作状态。

           自动寻找图片中异常的目标。

定义:根据输入数据,对不符合预期模式的数据进行识别。

           一维数据集\left \{ x^{(1)} , x^{(2)},..., x^{(m)}\right \}:寻找低概率数据事件

基于高斯分布实现异常检测:

  • 计算数据均值\mu,标准差\sigma
  • 计算对应的高斯分布概率函数:p(x)=\frac{1}{\sigma \sqrt{2\pi }}e^{-\frac{(x-\mu )^{2}}{2\sigma ^{2}}}
  • 根据数据点概率,进行判断:如果p(x)< \varepsilon,该点为异常点。

         高维数据集:

  • 计算数据均值\mu _{1},\mu _{2},...,\mu _{n}和标准差\sigma _{1},\sigma _{2},...,\sigma _{n}
  • \mu _{j}=\frac{1}{m}\sum_{i=1}^{m}x_{j}^{(i)}                 \sigma _{j}^{2}=\frac{1}{m}\sum_{i=1}^{m}(x_{j}^{(i)}-\mu _{j})^{2}
  • 计算概率密度函数p(x)=\prod_{j=1}^{n}p(x_{j};\mu _{j},\sigma _{j}^{2})=\prod_{j=1}^{n}\frac{1}{\sigma _{j}\sqrt{2\pi }}e^{-\frac{(x_{j}-\mu _{j})^{2}}{2\sigma _{j}^{2}}}

3.主成分分析

数据降维:指在某些限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程。

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

数据降维的实现:主成分分析PCA

  • 目标:寻找k(k<n)维新数据,使他们反应事物的主要特征
  • 核心:在信息损失尽可能少的情况下,降低数据维度
  • 如何保留主要信息:投影后的不同特征数据尽可能分得开
  • 如何实现:使投影后数据的方差最大,因为方差越大数据也越分散
  • 计算过程:

          1)原始数据预处理(标准化:\mu =0\sigma =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模型,与原数据表现进行对比
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值