72 lines
2.3 KiB
Python
Executable File
72 lines
2.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
from kaggle.api.kaggle_api_extended import KaggleApi
|
|
import pandas as pd
|
|
import matplotlib.pyplot as plt
|
|
from sklearn.model_selection import train_test_split
|
|
|
|
pd.set_option("display.max_rows", None)
|
|
|
|
|
|
def column_stat(analyzed_set, column_name):
|
|
rating_min = analyzed_set[column_name].min()
|
|
rating_max = analyzed_set[column_name].max()
|
|
rating_mean = round(analyzed_set[column_name].mean(), 3)
|
|
rating_median = analyzed_set[column_name].median()
|
|
rating_std = round(analyzed_set[column_name].std(), 3)
|
|
|
|
print(f"Dla kolumny '{column_name}':")
|
|
print(f"Minimum: {rating_min}")
|
|
print(f"Maximum: {rating_max}")
|
|
print(f"Średnia: {rating_mean}")
|
|
print(f"Mediana: {rating_median}")
|
|
print(f"Odchylenie standardowe: {rating_std}")
|
|
|
|
|
|
# Pobieranie danych
|
|
api = KaggleApi()
|
|
api.authenticate()
|
|
api.dataset_download_files('arushchillar/disneyland-reviews', unzip=True)
|
|
disney = pd.read_csv('DisneylandReviews.csv', encoding='latin-1')
|
|
|
|
# Nie zauważyłem w pliku żadnych artefaktów, które trzeba wyczyścić
|
|
|
|
# Normalizacja kolumny 'Ratings' z przedziału [1;5] do przedziału [0;1]
|
|
disney['Rating'] = (disney['Rating'] - 1) / 4
|
|
|
|
# Normalizacja kolumny 'Review_Text' do lowercase
|
|
disney['Review_Text'] = disney['Review_Text'].str.lower()
|
|
|
|
|
|
# Podział na podzbiory: d_train, d_test, d_dev
|
|
d_train, d_remainder = train_test_split(disney, test_size=0.2, random_state=1, stratify=disney["Branch"])
|
|
d_dev, d_test = train_test_split(d_remainder, test_size=0.5, random_state=1, stratify=d_remainder["Branch"])
|
|
|
|
# Statystyki
|
|
print(f"Wielkość całego zbioru: {disney.shape[0]}\n"
|
|
f"Inne statystyki:")
|
|
column_stat(disney, 'Rating')
|
|
print('')
|
|
|
|
print(f"Wielkość zbioru trenującego: {d_train.shape[0]}\n"
|
|
f"Inne statystyki:")
|
|
column_stat(d_train, 'Rating')
|
|
print('')
|
|
|
|
print(f"Wielkość zbioru walidującego: {d_dev.shape[0]}\n"
|
|
f"Inne statystyki:")
|
|
column_stat(d_dev, 'Rating')
|
|
print('')
|
|
|
|
print(f"Wielkość zbioru testowego: {d_test.shape[0]}\n"
|
|
f"Inne statystyki:")
|
|
column_stat(d_test, 'Rating')
|
|
print('')
|
|
|
|
# Rozkład ocen dla każdego oddziału
|
|
try:
|
|
disney.hist(column='Rating', by='Branch', legend=True)
|
|
plt.suptitle('Rozkład ocen w całym zbiorze')
|
|
plt.show()
|
|
except:
|
|
print("Error drawing hist plot (Powinno działać w Pycharmie)") |