TF: TensorFlow untuk dataset Reuters Newswire

From OnnoWiki
Jump to navigation Jump to search

Untuk membuat model prediksi menggunakan dataset Reuters Newswire dan memvisualisasikan hasilnya di layar tanpa menggunakan Google Colab, Anda dapat mengikuti langkah-langkah berikut:

1. Mengimpor Library yang Diperlukan:

Pastikan Anda mengimpor semua library yang dibutuhkan, seperti `keras`, `numpy`, `pandas`, dan `matplotlib`.

import keras
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from keras.datasets import reuters
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.preprocessing.text import Tokenizer


2. Memuat Dataset Reuters:

Dataset Reuters tersedia langsung di `keras.datasets`, sehingga Anda dapat memuatnya dengan mudah.

(x_train, y_train), (x_test, y_test) = reuters.load_data(num_words=10000, test_split=0.2)


3. Mendekode Berita:

Untuk memahami data teks, Anda mungkin ingin mendekode indeks kata kembali ke kata aslinya.

word_index = reuters.get_word_index()
reverse_word_index = {value: key for key, value in word_index.items()}

def decode_newswire(text):
    return ' '.join([reverse_word_index.get(i - 3, '?') for i in text])

print(decode_newswire(x_train[0]))


4. Memproses Data:

Gunakan `Tokenizer` dari Keras untuk mengubah data teks menjadi matriks vektor.

tokenizer = Tokenizer(num_words=10000)
x_train = tokenizer.sequences_to_matrix(x_train, mode='binary')
x_test = tokenizer.sequences_to_matrix(x_test, mode='binary')


5. Mengonversi Label ke Bentuk Kategori:

Karena ini adalah masalah klasifikasi multi-kelas, ubah label menjadi bentuk kategori.

num_classes = np.max(y_train) + 1
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

6. Membangun Model:

Buat model jaringan saraf sederhana dengan beberapa lapisan Dense dan Dropout untuk mencegah overfitting.

model = Sequential()
model.add(Dense(512, input_shape=(10000,)))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes))
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

7. Melatih Model:

Latih model dengan data pelatihan dan validasi menggunakan data uji.

history = model.fit(x_train, y_train,
                    batch_size=32,
                    epochs=5,
                    verbose=1,
                    validation_data=(x_test, y_test))

8. Evaluasi Model:

Setelah pelatihan, evaluasi model menggunakan data uji.

score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

9. Visualisasi Hasil:

Gunakan `matplotlib` untuk memvisualisasikan akurasi dan loss selama pelatihan dan validasi.

plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('Model accuracy')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('Model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['Train', 'Test'], loc='upper left')
plt.show()

Dengan mengikuti langkah-langkah di atas, Anda dapat membangun model prediksi menggunakan dataset Reuters Newswire dan memvisualisasikan hasilnya di layar. Pastikan Anda memiliki semua library yang diperlukan dan dataset tersedia untuk memastikan kode berjalan dengan baik.

Pranala Menarik