Zyski:
- Umiejętność rozróżnienia przyczyny brakujących wartości (przypadkowa, systematyczna, znacząca) i wybrania odpowiedniej strategii oraz obliczenia wartości wypełnienia na podstawie samego treningu
- Możliwość sprawdzenia wartości odstających przed ich usunięciem i odróżnienia błędu danych od naprawdę rzadkiego zdarzenia
- Możliwość zapobiegania cichym stratom poprzez monitorowanie wpływu każdego kroku na liczbę linii/spacji przy jednoczesnym dostosowaniu do standardu niespójności typu i formatu
Około 60–80 procent czasu analityka danych przypada na sprzątanie; W branży nazywa się to półżartem „zakłócaniem danych” (ang. data wrangling lub czyszczenie danych). Ponieważ dane ze świata rzeczywistego prawie nigdy nie są gotowe do analizy: daty są w różnych formatach, liczby są przechowywane jako tekst, niektóre komórki są puste, klient pojawia się trzy razy w tej samej tabeli z dwiema różnymi pisowniami. W tej części omówimy trzy podstawowe aspekty czyszczenia: brakujące wartości, wartości odstające i konwersję typu/formatu. Sztuczna inteligencja jest niezwykle szybkim pomocnikiem w tej pracy; Ale to Ty decydujesz, co i jak wyczyścić, ponieważ każdy wybór czyszczenia zmienia analizę.
Złota zasada sprzątania: każda zmiana to decyzja
Usunięcie komórki, uzupełnienie średniej brakującej wartości, przycięcie wartości odstającej — żadna z tych operacji nie jest operacją „neutralną”. Każdy zmienia dane i wpływa na wynik. Zatem złota zasada porządkowania: zapisuj każdą zmianę w kodzie, zanotuj uzasadnienie, nigdy nie nadpisuj oryginalnych danych. Sztuczna inteligencja daje ci kod szybkiego czyszczenia, ale twoim obowiązkiem jest zrozumienie, co robi ten kod; Nie uruchamiaj go, nie sprawdzając, ile linii zniknęło, gdy powiesz „usuń puste linie”.
Uwaga: Nigdy nie modyfikuj oryginalnych, nieprzetworzonych danych. Zapisz oczyszczoną wersję do osobnego pliku/tabeli. W ten sposób, jeśli zauważysz błąd, możesz wrócić do punktu wyjścia i zachować powtarzalność.
Brakujące wartości: dlaczego jest puste, co robić
Brakująca wartość (zwykle wyświetlana jako NaN — „To nie jest liczba” w pandach) występuje, gdy komórka jest pusta. Ale przyczyna luki determinuje rozwiązanie. Istnieją trzy typowe sytuacje. Losowy brak: czujnik nie działał przez chwilę; Rozsądne może być jego wypełnienie. Systematyczne braki: pole formularza jest wymagane tylko w przypadku niektórych klientów; Luką tutaj jest właściwie informacja. Istotny brak: jeśli „data zwrotu” jest pusta, klient nie wrócił; Ta przestrzeń oznacza 0 lub „brak”, nie jest wypełniona.
Główne strategie:
Strategia
Kiedy jest to właściwe?
ryzyko
Usuń wiersz
Wskaźnik braków jest bardzo niski (<5%) i losowy
Utrata danych i reprezentacji
Usuń kolumnę
Większość kolumny jest pusta (>60%)
utrata informacji
Średnie/średnie wypełnienie
Numeryczne, brakujące losowo
Zmniejsza wariancję i zniekształca rozkład
Kategoria „nieznane”
Kategoryczne i systematyczne braki
Generuje dodatkowe kategorie
Prognozowanie z modelem
Złożona, cenna kolumna
Ryzyko wycieku, złożoność
Punkt krytyczny: wartość imputacji należy obliczyć wyłącznie na podstawie danych uczących i tę samą wartość zastosować do danych testowych. Jeśli uwzględnisz średnią danych testowych, spowoduje to wyciek (część 10). Często preferuje się medianę (środkową wartość danych porządkowych) zamiast średniej, ponieważ jest ona bardziej odporna na wartości odstające niż średnia.
Wartości odstające: błąd czy fakt?
Wartością odstającą może być jedna z dwóch rzeczy: błąd danych (999 w kolumnie wieku) lub rzeczywiste, ale rzadkie zdarzenie (zamówienie klienta o wartości 2 milionów dolarów). Mylenie tych dwóch rzeczy jest katastrofalne: usunięcie prawdziwej wartości odstającej powoduje wyrzucenie ważnych informacji; Jeśli odpuścisz sobie błąd, ucierpią Twoje średnie. Dlatego należy najpierw sprawdzić wartość odstającą, a nie usuwać ją automatycznie.
Typowe metody wykrywania: metoda IQR (rozstęp międzykwartylowy; wartości przekraczające 1,5-krotność różnicy między kwintylami 25% a 75% danych są uważane za wartości odstające) i wynik z (liczba odchyleń standardowych od średniej wartości; zwykle wartość odstająca, jeśli jest większa niż 3). AI zapisuje kod do tych obliczeń w ciągu kilku sekund; Ale zanim powiesz „usuń”, sprawdź, jakie są te wartości.
Konwersja typu i formatu: ciche źródło błędów
Jednym z największych problemów jest pomieszanie typów danych. Jeśli kolumna „kwota” jest przechowywana jako tekst, nie można jej dodać; Program błędnie odczytuje liczbę w formacie tureckim, taką jak „1250,50” zamiast „tysiąc dwieście pięćdziesiąt”. Daty („01.03.2024” dzień-miesiąc czy miesiąc-dzień?), kategorie („Mężczyzna”/„mężczyzna”/„M” to to samo?) i jednostki (TL czy kuruş?) po cichu dają nieprawidłowe wyniki. Dużą częścią czyszczenia jest wciągnięcie tych niespójności do standardu: daty w jednym formacie, kategorie w jednej pisowni, liczby w jednej jednostce.
trzy mini etui
Przypadek 1 — Przeciętna pułapka. Zespół uzupełnił 320 brakujących wartości w kolumnie dochodu średnią (48 500 USD). Jednak niedociągnięcia były systematyczne: był to segment o niskich dochodach, który nigdy nie zadeklarował dochodów. Przeciętne wypełnienie spowodowało, że grupa ta została sztucznie wzbogacona, a model kredytowania był błędny. Lekcja: przed wypełnieniem zapytaj „dlaczego jest puste”.
Przypadek 2 – Wartość odstająca, której nie należy usuwać. Analityk sprzedaży detalicznej usunął 4 duże zamówienia (po 1,8 mln TL) z danych sprzedaży, sądząc, że są to „błędy”. Były to jednak realne zamówienia korporacyjne i stanowiły 22% całkowitego obrotu. Model prognozy po usunięciu całkowicie pominął zapotrzebowanie instytucjonalne. Lekcja: sprawdź wartość odstającą przed jej usunięciem.
Przypadek 3 – Katastrofa formatu daty. W pliku CSV daty zostały pomieszane w „2024-03-01” i „01.03.2024”. Kiedy kod napisany przez YZ został przeanalizowany zgodnie z pierwszym formatem, 6400 wierszy stało się NaT jako „nieprawidłowa data” i zostało po cichu wykluczonych z analizy. Analityk zauważył to dopiero, gdy liczba linii spadła. Lekcja: zawsze sprawdzaj liczbę linii i spacji po konwersji.
Cztery szablony do kopiowania
1) Mapa brakujących wartości:
Mam pandy df. Napisz kod, który utworzy tabelę pokazującą liczbę i procent brakujących danych (NaN) dla każdej kolumny. Następnie wypisz osobno kolumny, w których brak jest większy niż 40% i te, w których brakuje poniżej 5%. Po prostu wygeneruj ten kod diagnostyczny, a nie sugerowaną strategię; Podejmę decyzję.
2) Kontrola wartości odstających (nie usuwanie):
Napisz kod, który WYKRYWA (nie usuwa!) wartości odstające dla mojej kolumny „kwota”, używając metody IQR. Umieść odległe wiersze w osobnym pliku df, abym mógł je ręcznie sprawdzić. Wydrukuj także liczbę wartości odstających i ich udział w sumie.
3) Standaryzacja typu/formatu:
Napisz kod standaryzujący następujące kolumny:- „data”: może mieć formaty mieszane („2024-03-01” i „01.03.2024”); przekonwertuj je wszystkie na datetime, policz nieprzetłumaczalne i zgłoś (wyrzuć po cichu). - "płeć": "Mężczyzna"/"mężczyzna"/"M" -> "M", "Kobieta"/"kobieta"/"F" -> "K". - „kwota”: tekst w formacie tureckim („1.250,50”) -> liczba dziesiętna. Wydrukuj liczbę wierszy, których dotyczy każda konwersja.
4) Sprawdź przed/po czyszczeniu:
Napisz kod porównujący plik df.shape, brakującą liczbę i statystyki podsumowujące (średnia, mediana, min, max) wybranych kolumn przed i po etapie czyszczenia. Cel: zobaczyć, co zmieni się w czyszczeniu.
Słaba zachęta/silna zachęta
Słaba zachęta:
Wyczyść te dane.
„Wyczyść” jest niejednoznaczne; AI nie wie, jakie brakujące części należy usunąć, co wypełnić, którą kolumnę przetworzyć i jak. Rezultat: ślepe, nieodwracalne zmiany.
Potężny monit:
Twoja rola: asystent czyszczenia danych. kolumny df: identyfikator_klienta (int), data_rejestracji (tekst w formacie mieszanym), przychody_tl (tekst, „1200,00”), miasto (tekst, niespójna pisownia). Zasady: - Zmiana oryginalnego df; Pracuj na kopii o nazwie df_clean.- Zamień dochód_tl na liczbę, policz to, czego nie da się przetłumaczyć.- Zmień record_date na datetime, zgłoś błąd.- Nie usuwaj żadnych wierszy bez mojej zgody; Pokaż kandydatów osobno. Po każdym kroku wydrukuj df_temiz.shape i brakującą liczbę.
Tutaj źródło jest chronione, liczy się każda transformacja, usunięcie pozostawia się człowiekowi.
Typowe błędy
- Wypełnianie luk bez pytania „dlaczego jest puste?” Uzupełnianie braków systematycznych/istotnych średnią zniekształca dane.
- Usuwanie wartości odstającej bez sprawdzania jej. Odrzucenie prawdziwych, ale rzadkich wydarzeń niszczy ważne informacje.
- Obliczanie wartości dopełnienia na podstawie wszystkich danych. Uwzględnienie danych testowych powoduje wyciek; po prostu oblicz z treningu.
- Nie sprawdzanie liczby wierszy/spacji po konwersji. Wiersze, które dyskretnie zawierają NaT/NaN, są wykluczane z analizy.
- Nadpisanie oryginalnych danych. Zwrot i odtwarzalność zostaną utracone.
Wskazówka: Przeprowadź oczyszczanie, porównując „przed i po”. Po każdym kroku wydrukuj plik df.shape, brakującą liczbę i podsumowanie statystyk krytycznych kolumn. Od razu widać, że jeden krok nieoczekiwanie niszczy 6000 wierszy.
Podsumowując
Oczyszczanie to najbardziej czasochłonny i wymagający decyzji etap nauki o danych. Każda zmiana zmienia dane, więc każda jest świadomą decyzją. W przypadku brakujących wartości zapytaj „dlaczego jest pusta?” Przejrzyj wszelkie wartości odstające przed ich usunięciem; Dostosuj typ i format do standardu. Oblicz wartość wypełnienia wyłącznie na podstawie danych treningowych, zachowaj oryginał i śledź wpływ każdego kroku, zliczając go. Sztuczna inteligencja jest ogromnym akceleratorem w tym biznesie, ale to ludzie decydują, co i dlaczego sprzątasz.
Zadanie aplikacji
Weź (lub utwórz) małą tabelę i celowo wstaw do niej trzy problemy: krotkę brakującej wartości, wartość odstającą, mieszany format daty. Poproś AI o kod diagnostyczny i standaryzacyjny, korzystając z powyższych szablonów; porównaj liczbę wierszy i spacji przed/po każdym kroku. Spróbuj złapać choć jedną „cichą stratę” i zanotuj, jak ją zauważyłeś.
lista kontrolna
- [ ] Czy zachowałem oryginalne, nieprzetworzone dane i pracowałem na kopii?
- [ ] Czy zadałem pytanie „dlaczego jest puste” dla każdej brakującej kolumny?
- [ ] Czy sprawdziłem wartości odstające przed ich usunięciem?
- [ ] Czy obliczyłem wartość dopełnienia tylko na podstawie danych treningowych?
- [ ] Czy sprawdzam liczbę linii/spacji po każdym kroku i eliminuję cichą stratę?