数据预处理系列:(十三)用字典学习分解法分类

声明:版权所有,转载请联系作者并注明出处  http://blog.csdn.net/u013719780?viewmode=contents


博主简介:风雪夜归子(英文名: Allen),机器学习算法攻城狮,喜爱钻研Machine Learning的黑科技,对Deep Learning和Artificial Intelligence充满兴趣,经常关注kaggle数据挖掘竞赛平台,对数据、Machine Learning和Artificial Intelligence有兴趣的各位童鞋可以一起探讨哦,个人CSDN博客:  http://blog.csdn.net/u013719780?viewmode=contents


用字典学习分解法分类

在这个主题中,我们将介绍一种可以用于分类的分解方法——字典学习(Dictionary Learning),将数据集转换成一个稀疏的形式。

Getting ready

DictionaryLearning方法的思想是把特征看作构成数据集的基础。首先我们导入iris数据集:

In [1]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
In [2]:
from sklearn.datasets import load_iris
iris = load_iris()
iris_data = iris.data
iris_target = iris.target

How to do it...

首先,导入DictionaryLearning

In [3]:
from sklearn.decomposition import DictionaryLearning

然后用三个成分表示iris数据集中花的类型:

In [4]:
dl = DictionaryLearning(3)

再用fit_transform转换其他数据,这样我们就可以对比训练前后的数据了:

In [5]:
transformed = dl.fit_transform(iris_data[::2])
transformed[:5]
Out[5]:
array([[ 0.        ,  6.34476574,  0.        ],
       [ 0.        ,  5.83576461,  0.        ],
       [ 0.        ,  6.32038375,  0.        ],
       [ 0.        ,  5.89318572,  0.        ],
       [ 0.        ,  5.45222715,  0.        ]])

我们可以可视化这个结果。注意,每个成分的值分别平行 x x y y z z三个轴,其他坐标都是0;这就是稀疏性。

In [6]:
from mpl_toolkits.mplot3d import Axes3D
colors = np.array(list('rgb'))
f = plt.figure()
ax = f.add_subplot(111, projection='3d')
ax.set_title("Training Set")
ax.scatter(transformed[:, 0], transformed[:, 1], transformed[:, 2], color=colors[iris.target[::2]]);

如果你细心看,还是会发现一些误差。有一个样本分错了类型,虽然一个错误并不是很严重。

下面,让我们用fit而不用fit_transform来训练数据集:

In [7]:
transformed = dl.transform(iris_data[1::2])
In [8]:
colors = np.array(list('rgb'))
f = plt.figure()
ax = f.add_subplot(111, projection='3d')
ax.set_title("Training Set")
ax.scatter(transformed[:, 0], transformed[:, 1], transformed[:, 2], color=colors[iris.target[1::2]]);

还是有一些分类错误的样本。如果你看看之前降维主题中的图,会发现绿色和蓝色两类数据有交叉部分。

How it works...

DictionaryLearning具有信号处理和神经学领域的背景知识。其理念是某一时刻只有少数特征可以实现。因此,DictionaryLearning在假设大多数特征都是0的情况下,尝试发现一个适当的数据表现形式。



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
外骨骼自适应控制学习(三)的肌电信号预处理是通过matlab仿真数据进行的。肌电信号是人体肌肉的电活动信号,可以通过电极采集得到。由于肌电信号存在噪声和干扰,需要进行预处理才能得到可靠的信号。 首先,利用matlab仿真数据生成肌电信号。仿真数据可以模拟真实的肌电信号特征,并且可以控制信号的强度和噪声水平。通过仿真数据可以得到一系列的肌电信号数据。 然后,对仿真数据进行预处理。首先需要滤波处理,以去除高频噪声和低频漂移。常用的滤波方有低通滤波和带通滤波。滤波可以通过巴特沃斯滤波器、滑动平均滤波器等实现。 接着,对预处理后的肌电信号进行特征提取。常用的特征包括时域和频域特征。时域特征可以通过计算肌电信号的均值、方差、峰值等实现。频域特征可以通过快速傅里叶变换(FFT)将信号转换到频域,并计算信号的功率谱密度。 最后,对提取的特征进行分析和处理。可以通过机器学习,比如支持向量机(SVM)、人工神经网络(ANN)等,对特征进行分类和识别,以实现对肌电信号的自动识别和控制。 总之,外骨骼自适应控制学习(三)的肌电信号预处理通过matlab仿真数据进行。通过滤波处理和特征提取,可以得到可靠的肌电信号,并通过机器学习实现信号的分类和识别。这对于外骨骼的自适应控制具有重要意义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值