Ten wpis, podobnie jak cała zawartość bloga, odzwierciedla moje zainteresowania rozwojem w dziedzinie informatyki. Główne cele tego przedsięwzięcia to dzielenie się wiedzą, demonstracja moich umiejętności oraz chęć poznawania nowych zagadnień, co może zainteresować potencjalnych współpracowników zarówno w sferze zawodowej, jak i poza nią. Blog ten jest również okazją do samodzielnego przetwarzania zdobytej wiedzy i tworzenia osobistych notatek. Jako że sam jestem w trakcie nauki, zachęcam do niezależnego myślenia i, jeśli tematyka wpisów wpisuje się w zakres Twoich zainteresowań, do dalszej eksploracji i weryfikacji podanych przeze mnie informacji.
Dzisiaj zajmiemy się wybranymi elementami statystyki opisowej, które są kluczowe w kontekście uczenia maszynowego i analizy eksploracyjnej danych (EDA). Omówimy, jak średnia arytmetyczna i odchylenie standardowe pomagają w analizie i przygotowaniu danych.
Średnia arytmetyczna opisuje centralną tendencję zbioru danych, co umożliwia ocenę, czy dane są odpowiednio zrównoważone między klasami. Przywołując ponownie przykład z mojego bloga, gdzie użytkowników podzielono na "zainteresowanych" i "niezainteresowanych" treściami. Załóżmy, że mamy 900 próbek od użytkowników zainteresowanych i 100 próbek od użytkowników niezainteresowanych. Chociaż wiemy, że 900 użytkowników jest zainteresowanych, a 100 nie, naszym celem jest dogłębne zrozumienie cech charakteryzujących obie grupy.
Problem pojawia się, gdy zbiory danych są niezbalansowane. Dominacja danych z grupy zainteresowanych może nieumyślnie wpływać na analizę cech grupy niezainteresowanych, prowadząc do potencjalnych błędów w interpretacji wyników. Może to skutkować sytuacją, w której model oparty na tych danych błędnie klasyfikuje nowe przypadki niezainteresowanych jako zainteresowanych. Innymi słowy, dane dominującej grupy zainteresowanych mogą nieświadomie zaciemniać obraz danych grupy mniejszościowej.
Innymi słowy, pewne cechy zachowań użytkowników niezainteresowanych mogą być mylnie przypisywane do zachowań użytkowników zainteresowanych, co skutkuje błędnym przyporządkowaniem osób niezainteresowanych do grupy zainteresowanych, szczególnie w sytuacji, gdy brakuje odpowiedniej liczby danych dla grupy mniejszościowej (niezainteresowanych). Ta nierównowaga jest od razu widoczna, gdy porównamy liczbę 900 zainteresowanych do 100 niezainteresowanych. Aby to matematycznie uzasadnić, obliczmy współczynnik średniej.
Przyjmijmy, że klasa użytkowników zainteresowanych jest oznaczona wartością 1, a klasa użytkowników niezainteresowanych wartością 0. Mamy 900 użytkowników zainteresowanych i 100 niezainteresowanych, co daje razem 1000 użytkowników.
średnia = (1 * 900 + 0 * 100) / 1000 = 0,9
Współczynnik średniej równy 0,9 wskazuje na niezbalansowane zbiory. Oczekujemy, że wartość średniej dla idealnie zbalansowanego zbioru będzie bliższa 0,5. Należy jednak pamiętać, że to stwierdzenie jest prawdziwe tylko wtedy, gdy klasy są wartościowane jako 0 i 1. W takim przypadku idealnie zbalansowany zbiór miałby wartość średniej równą 0,5. Trzeba mieć na uwadze, że z pewnością istnieją inne przypadki, w których pożądana równowaga między klasami nie będzie przybierać postaci "pół na pół" jak w tym przypadku.
Kod przeprowadzający powyższą operację wyliczenia średniej oraz informację o tym czy zbiór jest zbalansowany czy też nie może wyglądać jak poniżej. Liczba 900 została przekształcona do tablicy dziewięciuset wartości równych 1, a 100 do tablicy wartości równych 0. Następnie te tablice połączono w jedną i użyto na niej gotowej metody mean() z biblioteki numpy, która oblicza średnią:
import numpy as np
# Input data
interested = np.ones(900) # Creates an array of 900 values, all set to 1
not_interested = np.zeros(100) # Creates an array of 100 values, all set to 0
# Combine the data into one array
data = np.concatenate([interested, not_interested])
# Calculate the mean
mean = np.mean(data)
print(f"The mean is: {mean}")
# Check if the dataset is balanced
print("The dataset is " + ("balanced" if mean == 0.5 else "unbalanced"))
Brak komentarzy:
Prześlij komentarz