ium_458023/wines_train.py

42 lines
1.3 KiB
Python
Raw Normal View History

import tensorflow as tf
2023-06-30 20:42:31 +02:00
import pandas as pd
import numpy as np
2023-06-30 20:42:31 +02:00
# Wczytanie danych treningowych
2023-06-30 20:35:10 +02:00
data = pd.read_csv('data/winemag-data_first150k.csv')
2023-06-30 20:42:31 +02:00
# Usunięcie rekordów zawierających wartości NaN w kolumnach 'points' i 'price'
data = data.dropna(subset=['points', 'price'])
2023-06-30 20:42:31 +02:00
# Przygotowanie danych wejściowych i wyjściowych
input_data = data[['price', 'points']] # Wejście modelu (kolumny 'price' i 'points')
output_data = data['price'] # Oczekiwane wyjście modelu (kolumna 'price')
# Konwersja danych do numpy arrays
2023-06-30 20:42:31 +02:00
input_array = input_data.values
output_array = output_data.values
# Normalizacja danych wejściowych
2023-06-30 20:42:31 +02:00
input_mean = np.mean(input_array, axis=0)
input_std = np.std(input_array, axis=0)
input_array = (input_array - input_mean) / input_std
# Utworzenie modelu przy użyciu TensorFlow
2023-06-30 20:42:31 +02:00
input_size = input_array.shape[1]
output_size = 1 # Jeden wymiar dla wyjścia modelu (kolumna 'price')
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(input_size,)),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(output_size)
])
# Kompilacja modelu
model.compile(optimizer='adam', loss='mse')
# Uczenie modelu
2023-06-30 20:42:31 +02:00
history = model.fit(input_array, output_array, epochs=10, batch_size=32, verbose=1)
2023-06-30 20:42:31 +02:00
# Zapisanie wytrenowanego modelu do pliku
model.save('trained_model_tf.h5')