TF: TensorFlow untuk dataset Reuters Newswire
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.