Analiza dwu- i wielowymiarowa
Wykresy rozrzutu, wykresy par, mapy cieplne korelacji i statystyki grupowe.
Analiza dwu- i wielowymiarowa to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Od jednej zmiennej do wielu
Analiza dwuwymiarowa bada zależność między dwiema zmiennymi, a analiza wielowymiarowa obejmuje jednocześnie kilka zmiennych.
Celem jest ustalenie, które cechy zmieniają się wspólnie, wykrycie interakcji oraz określenie, które zmienne pozwalają przewidywać zmienną docelową.
Wykresy rozrzutu za pomocą plt.scatter
Wykres rozrzutu przedstawia względem siebie dwie zmienne liczbowe — każda kropka odpowiada jednemu wierszowi. Pozwala wykryć trendy, klastry i wartości odstające.
import matplotlib.pyplot as plt
import seaborn as sns
plt.scatter(df["height"], df["weight"], alpha=0.4)
plt.xlabel("Height")
plt.ylabel("Weight")
plt.show()Odczytywanie wykresu rozrzutu
Warto zwrócić uwagę na kierunek (w górę = zależność dodatnia, w dół = ujemna), siłę (wąskie pasmo lub rozproszona chmura) oraz kształt (liniowy lub zakrzywiony).
Za pomocą hue w sns.scatterplot można pokolorować punkty według kategorii i ujawnić strukturę grup.
sns.scatterplot(x="height", y="weight", hue="gender", data=df, alpha=0.5)
plt.show()Korelacja za pomocą df.corr()
df.corr() oblicza parami korelację Pearsona między kolumnami liczbowymi: wartość od -1 do +1.
- +1 → doskonała dodatnia zależność liniowa
- 0 → brak zależności liniowej
- -1 → doskonała ujemna zależność liniowa
corr = df.corr(numeric_only=True)
print(corr["price"].sort_values(ascending=False))Mapy cieplne korelacji
Macierz korelacji łatwiej odczytać jako mapę cieplną. Przekazanie wartości annot=True powoduje wyświetlenie wartości wewnątrz każdej komórki.
Warto użyć rozbieżnej palety kolorów, np. coolwarm, aby korelacje dodatnie i ujemne miały różne kolory.
corr = df.corr(numeric_only=True)
sns.heatmap(corr, annot=True, fmt=".2f", cmap="coolwarm", center=0)
plt.show()Wykrywanie współliniowości
Gdy dwie cechy są bardzo silnie skorelowane (np. > 0.9), zawierają powielające się informacje. Zjawisko to nazywa się współliniowością i może destabilizować modele liniowe.
Mapa cieplna ułatwia wykrycie takich nadmiarowych par, dzięki czemu można usunąć jedną z cech.
corr = df.corr(numeric_only=True).abs()
high = corr[(corr > 0.9) & (corr < 1.0)]
print(high.dropna(how="all"))Korelacja nie oznacza związku przyczynowego
Silna korelacja nie oznacza, że jedna zmienna powoduje drugą. Za obie zmienne może odpowiadać ukryta trzecia zmienna, a sama zależność może być dziełem przypadku.
Korelację należy wykorzystywać do formułowania hipotez, a następnie weryfikować je za pomocą wiedzy dziedzinowej i kontrolowanej analizy.
Wykresy par za pomocą sns.pairplot
sns.pairplot tworzy siatkę wykresów rozrzutu dla każdej pary kolumn liczbowych, a na przekątnej umieszcza histogramy lub wykresy KDE.
To najszybszy sposób na jednoczesne pobieżne przejrzenie wszystkich zależności dwuwymiarowych. W przypadku dużych zbiorów danych należy ograniczyć liczbę kolumn — liczba wykresów rośnie kwadratowo wraz z ich liczbą.
sns.pairplot(df[["height", "weight", "age", "income"]], hue="gender")
plt.show()Pogrupowane wykresy pudełkowe
Aby przeanalizować zależność między zmienną liczbową a kategoryczną, należy umieścić kategorię na osi x wykresu pudełkowego. Pozwala to natychmiast porównać rozkłady w poszczególnych grupach.
sns.boxplot(x="city", y="income", data=df)
plt.xticks(rotation=45)
plt.show()Agregowanie danych w grupach
Liczby uzupełniają wykresy. groupby w połączeniu z agg podsumowuje kolumnę liczbową w poszczególnych kategoriach.
To analiza wielowymiarowa przedstawiona w formie tabeli — można porównać obok siebie średnie, mediany i liczności.
summary = df.groupby("city")["income"].agg(["mean", "median", "count"])
print(summary.sort_values("mean", ascending=False))Wykresy wielowymiarowe z kodowaniem wizualnym
Za pomocą kodowania wizualnego można umieścić na jednym wykresie trzy lub więcej zmiennych: x, y, kolor (hue) i rozmiar.
Pokazuje to, jak zależności zmieniają się w trzecim wymiarze, bez tworzenia oddzielnych wykresów.
sns.scatterplot(x="height", y="weight", hue="age", size="income", data=df)
plt.show()Szybkie sprawdzenie: zakres korelacji
Uruchamiają Państwo df.corr() i widzą wartość -0.85 między dwiema cechami.
Podsumowanie: analiza dwuwymiarowa i wielowymiarowa
Mogą już Państwo analizować zależności między zmiennymi:
plt.scatter/sns.scatterplotdla dwóch zmiennych liczbowychdf.corr()+sns.heatmap(annot=True)do tworzenia macierzy korelacji- Wysokie korelacje wskazują na współliniowość (należy usunąć nadmiarowe cechy)
sns.pairplotdo przeglądu wszystkich par- Pogrupowane wykresy pudełkowe i
groupby().agg()do analizy zmiennej liczbowej względem kategorycznej
W następnym kroku połączymy cechy bezpośrednio ze zmienną docelową.
Często zadawane pytania
Czy lekcja „Analiza dwu- i wielowymiarowa” jest bezpłatna?
Tak — pełny tekst „Analiza dwu- i wielowymiarowa” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Analiza dwu- i wielowymiarowa”?
Wykresy rozrzutu, wykresy par, mapy cieplne korelacji i statystyki grupowe. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Analiza dwu- i wielowymiarowa”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Przepływ EDA i profilowanie danych
- Analiza jednowymiarowa
- Analiza dwu- i wielowymiarowa
- Analiza rozkładu cech i zmiennej docelowej