标准化数据以进行预测

Posted

技术标签:

【中文标题】标准化数据以进行预测【英文标题】:Normalizing data for prediction 【发布时间】:2020-09-21 13:57:11 【问题描述】:

对不起,我是机器学习概念的新手,但我正在尝试制作一个歌曲流派分类器,所以 在使用 min_max 对数据进行归一化后,我已经训练了我的模型,因此在从 csv 文件中获取所有特征之后

X = data.drop(data.columns[len(data.columns)-1], axis=1, inplace=True)
X = data.values #returns a numpy array
myscaler = preprocessing.MinMaxScaler()
x_scaled = myscaler.fit_transform(X)
X = pd.DataFrame(x_scaled)

并训练了模型,但现在处于预测阶段,我想预测一首新歌的流派,所以我得到了这首歌并完成了我在训练中用于特征提取的过程我不确定我是否应该当我没有对其进行规范化时,是否对这些新数据进行规范化,我一直得到相同的预测,我首先尝试对其进行规范化,我的模型形状错误,然后我尝试对其进行重塑,但我认为我仍然没有得到相同的结果作为训练的标准化,即使预测训练数据集中的歌曲也会给出错误的预测,我确信我的模型是正确的,准确度为 0.8

scaler = StandardScaler()
song = np.array(make_dataset_ml("C:\\Users\\USER\\Desktop\\sem8\\AI\\project\\try\\disco.mp3")).reshape(-1,1)
myscaler = preprocessing.MinMaxScaler()
scaled_song = myscaler.fit_transform(song)
song = pd.DataFrame(scaled_song.reshape(1,-1))
prediction = model.predict(song)

这是我在归一化后获得正确形状的唯一方法,而 make_dataset_ml 函数是返回训练后特征的函数

【问题讨论】:

【参考方案1】:

您正在为每首歌曲定义一个新的MinMaxScaler,所以这会产生垃圾。您应该使用之前在训练阶段定义的缩放器。

【讨论】:

我尝试使用以前的缩放器,但使用 MinMaxScaler 和 StandardScaler 仍然得到相同的结果

以上是关于标准化数据以进行预测的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 中的非标准化数据框

CvSVM 回归只预测整数

pmml(模型标准化)

当机器学习模型标准化时如何预测新值 StandardScaler

基于Spark和Tensorflow构建DCN模型进行CTR预测

Tensorflow 默认会标准化输入数据吗?