机器学习(七)——用逻辑回归实现音乐分类案例,傅立叶变换相关

本文介绍了如何使用傅立叶变换将音乐数据转化为特征,以解决音乐分类问题。通过傅立叶变换,将音乐的时域信息转换为频域表示,简化了数据并减少了文件大小。随后,利用逻辑回归模型进行音乐分类的实现,展示了从变换到分类的完整过程。
摘要由CSDN通过智能技术生成

理解维度:
在这里插入图片描述
我们把X中的x可以叫做是一个特征,也可以叫做影响结果的因素,也可以叫做一个维度,每增加一个特征就是增加了一个维度
在这里插入图片描述

音乐分类案例

在这里插入图片描述
有十种类别的音乐,每种类别下有一百首歌,所以我们一共有1000个特征

怎么把这些音乐转换为特征呢?

方法一:我们把音乐根据强度转换成频谱图,如下图
在这里插入图片描述
如果我们每个音乐都转成频谱图,这样我们就把问题变成里更复杂的图像识别,所以我们不用这种方法

我们用傅里叶变换

傅里叶变换

在这里插入图片描述
傅立叶变换就是把上图中左边的时间轴的sine wave(波浪线)变成右边频率轴的一条竖线,大小就是波峰到波谷的高度
把一首歌变成频率的表达,下图更好理解
在这里插入图片描述

代码实现傅立叶变换,顺便准备音乐分类的数据:

# 准备音乐数据
def create_fft(g, n):
    # zfill() z代表zero,也就是用0填充
    rad = "/home/kiosk/Downloads/MLearning/音乐/" + g + "." + str(n).zfill(5) + ".au.wav"
    # wavfile读取wav类型的音乐文件
    # sample_rate是采样率,采样率越高,说明你采样的点越多,说明你的信息损失的越少,采样率和我们这次案例没有关系
    # X就是音乐文件
    sample_rate, X = wavfile.read(rad)
    # 傅立叶变换
    # fft()是快速傅里叶变换,变换之后取前1000hz个像素点,然后取绝对值,最终生成1000个特征
    fft_features = abs(fft(X)[
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值