欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LSTM进行情感分类

程序员文章站 2024-03-24 23:57:46
...

原链接:https://blog.csdn.net/u012735708/article/details/82769711

1.read_raw()函数模块中,主要是写了关于数据清洗的内容。
dataset[‘pollution’].fillna(0, inplace=True) 用零填充空位,然后其他的就是指定一下列名。

2.def parse(x)模块中,用于返回时间戳。
返回了 datetime.strptime(x, ‘%Y %m %d %H’),之前要from datatime import datatime一下。

3.drow_pollution() 模块中,用于画图,画了所有变量随时间变化的图像。

values = dataset.values
    # specify columns to plot
    groups = [0, 1, 2, 3, 5, 6, 7]
    i = 1
    # plot each column
    pyplot.figure(figsize=(10,10))
    for group in groups:
        pyplot.subplot(len(groups), 1, i)
        pyplot.plot(values[:, group])
        pyplot.title(dataset.columns[group], y=0.5, loc='right')
        i += 1
    pyplot.show()

4.series_to_supervised()模块中,将需要预测的当前时刻(t)的天气条件特征移除

5.cl_to_sl()模块中,用第一年数据进行训练,然后利用剩下的4年进行评估。返回值为:
reframed = series_to_supervised(scaled, 1, 1)

6.train_test模块中根据时间划分了训练集和验证集。再利用reshape将数据变成LSTM训练的样式:[samples, timesteps, features]

7.fit_network()模块中构建了LSTM网络进行训练:
首先,model设置为Sequential()模型。
然后,model添加LSTM层:LSTM(50, input_shape=(train_X.shape[1], train_X.shape[2])),因为是第一层所以要指定输入的shape,隐藏层共有50个神经元。
第三步,model添加输出层,Dense(1)。这成为了一个回归问题。
第四步,model.compile(loss=‘mae’, optimizer=‘adam’),损失函数采用Mean Absolute Error(MAE),优化算法采用Adam
之后就可以进行训练了:history = model.fit(train_X, train_y, epochs=50, batch_size=72, validation_data=(test_X, test_y), verbose=2, shuffle=False) 这里的参数verbose:日志显示,0为不在标准输出流输出日志信息,1为输出进度条记录,2为每个epoch输出一行记录;shuffle:布尔值或字符串,一般为布尔值,表示是否在训练过程中随机打乱输入样本的顺序。这里不打乱。batch_size:整数,指定进行梯度下降时每个batch包含的样本数。训练时一个batch的样本会被计算一次梯度下降,使目标函数优化一步。具体可以看这里:https://www.jianshu.com/p/9ba27074044f

相关标签: lstm