2024-09-27 09:34:44 发布
网友
在Kaggle上,我找到了用于信号去噪的算法。例如Golay滤波器、样条函数、自回归建模或Kneighbors回归器本身
链接: https://www.kaggle.com/residentmario/denoising-algorithms
它到底是如何工作的,因为我找不到任何解释它用于信号去噪的文章?它是什么样的算法?我想了解它是如何工作的
这是一种监督学习算法——这是最好的答案
通常情况下,该算法首先使用已知数据进行训练,并尝试解释最能代表该数据的函数,以便为以前未看到的输入生成新点
简单地说,它将根据之前看到的k个最近点的平均值确定之前未看到的值的点,下面可以找到更好、更详细的答案: https://towardsdatascience.com/the-basics-knn-for-classification-and-regression-c1e8a6c955
在kaggle代码中:
时间向量为:
df.index.values[:, np.newaxis]
信号向量为:
df.iloc[:, 0]
kaggle中的人员似乎正在使用该数据对网络进行首次培训-见下文:
## define the KNN network clf = KNeighborsRegressor(n_neighbors=100, weights='uniform') ## train the network clf.fit(df.index.values[:, np.newaxis], df.iloc[:, 0])
给他一个表示时间和信号值之间关系的函数。然后,他将时间向量传递回网络,使其再现信号
y_pred = clf.predict(df.index.values[:, np.newaxis])
这个新信号将代表模型对信号的最佳解释,正如您从我上面发布的链接中所看到的,您可以调整某些参数,这将产生“更干净”的信号,但也可能会降低原始信号
需要注意的一点是,以与kaggle中的那个家伙相同的方式使用此方法意味着它只适用于该一个信号,因为输入是时间,不能用于解释未来的值:
y_pred = clf.predict(df.index.values[:, np.newaxis] + 400000) ax = pd.Series(df.iloc[:, 0]).plot(color='lightgray') pd.Series(y_pred).plot(color='black', ax=ax, figsize=(12, 8))
这是一种监督学习算法——这是最好的答案
通常情况下,该算法首先使用已知数据进行训练,并尝试解释最能代表该数据的函数,以便为以前未看到的输入生成新点
简单地说,它将根据之前看到的k个最近点的平均值确定之前未看到的值的点,下面可以找到更好、更详细的答案: https://towardsdatascience.com/the-basics-knn-for-classification-and-regression-c1e8a6c955
在kaggle代码中:
时间向量为:
信号向量为:
kaggle中的人员似乎正在使用该数据对网络进行首次培训-见下文:
给他一个表示时间和信号值之间关系的函数。然后,他将时间向量传递回网络,使其再现信号
这个新信号将代表模型对信号的最佳解释,正如您从我上面发布的链接中所看到的,您可以调整某些参数,这将产生“更干净”的信号,但也可能会降低原始信号
需要注意的一点是,以与kaggle中的那个家伙相同的方式使用此方法意味着它只适用于该一个信号,因为输入是时间,不能用于解释未来的值:
相关问题 更多 >
编程相关推荐