使用Python中的线性回归通过语音诊断帕金森氏病!

本文,我们将创建一个简单的python机器学习算法,以便能够通过声音来诊断该人是否为患者。

我们将使用一组(健康者和帕金森病患者)音频文件库,通过对音频进行一些测量来构建我们的机器学习数据集。建立机器学习数据集后,我们将使用SciKit Learn库训练线性回归模型。最后,我们将构建一个python库,这个库可以轻松集成到其他应用程序中。

数据集

首先,我们需要将音频文件转换成包含音频测量值以及患者是否健康标识的表格。

我们将要使用的音频文件(https://zenodo.org/record/2867216#.Xp4kVsgzaUl )。

让我们从导入必要的Python库开始。

接下来,我们将创建一个函数,该函数允许您对输入音频文件进行各种复杂的测量。这些测量是通过parselmouth库实现的,它允许在python代码中使用praat。(https://parselmouth.readthedocs.io/en/stable/)

然后,我们为每种类型的测量创建一个列表,再创建一个列表用来表示病人是否健康。在列表被填入后用来构建机器学习数据集。

现在,我们可以使用前面创建的函数通过对音频文件进行测量来填充列表。我们需要使用4个for循环来填充列表。

最后,借助于panda和numpy库,我们必须将这些列表分组到一个表中,从而将它们转换为机器学习数据集。

制作机器学习模型

我们将使用前面提到的SciKit learn库的线性回归算法,该算法允许我们根据几个参数(measures)对标签(0或1)进行分类。

首先,我们将通过指定参数(measurements)和标签(0或1)来训练我们的机器学习模型。

我们获得0.63的精度,考虑数据集的数据如此有限,这个结果还是令人满意的。

导出机器学习模型的Python代码如下:

import joblibclf.fit(X_train, y_train)joblib.dump(clf, "trainedModel.sav")

制作库

请记住,我们的目标是获得一个可以被另一个程序使用的库。Python实现代码如下:

调用上述库的Python代码如下:

from RecognitionLib import *path = "../trainedModel.sav" #Model pathclf = loadModel(path) #Model loadingprint(predict(clf, "../../audio/ok.wav"))#Predicition

最后

可以通过拥有更大的数据集来改进机器学习模型,从而获得更高的精度(即通过从帕金森氏病患者那里获得更多的音频样本)。

没得源码,不过可以加群:850591259

发布了23 篇原创文章 · 获赞 0 · 访问量 8050

猜你喜欢

转载自blog.csdn.net/weixin_43881394/article/details/105680975
今日推荐