【问题标题】: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 函数是返回训练后特征的函数

【问题讨论】:

    标签: python tensorflow machine-learning scikit-learn classification


    【解决方案1】:

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

    【讨论】:

    • 我尝试使用以前的缩放器,但使用 MinMaxScaler 和 StandardScaler 仍然得到相同的结果
    猜你喜欢
    • 1970-01-01
    • 2020-07-16
    • 2018-05-19
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2021-09-21
    • 1970-01-01
    相关资源
    最近更新 更多