Kilka statystyk na Wasz temat :-)

Blog MathSpace.pl istnieje nieco ponad 3 miesiące, zatem mogę podzielić się już pierwszymi statystykami dotyczącymi Was 🙂

Szacuję, że na 65% jesteś mężczyzną ...

Twój wiek na 85% nie przekracza 45 lat ...

Mogę powiedzieć, że z prawdopodobieństwem 65% mieszkasz w Polsce ...

I jeśli faktycznie mieszkasz w Polsce, to na 40% mieszkasz w Warszawie 🙂

MathSpace.pl - Użytkownicy - Miejscowości - Poslak

Na koniec miejscowości, z których pochodzą użytkownicy MathSpace.pl

MathSpace.pl - Użytkownicy - Miejscowości - Świat

Pozdrowienia,

Mariusz Gromada

Spirala Ulama (spirala liczb pierwszych) - część 2 - czyli funkcja kwadratowa i zabawy z rekurencją (część 5)

W części 1 wpisu na temat Spirali Ulama zaznaczyłem, że efekt wizualnego ułożenia liczb pierwszych na diagonalach spirali kwadratowej jest konsekwencją głównie dwóch własności:

  1. Na przekątnych są albo same liczby parzyste, albo same liczby nieparzyste, zatem tylko diagonale z liczbami nieparzystymi będą agregować liczby pierwsze;
  2. Niektóre diagonale zagęszczają bardziej liczby pierwsze niż inne, co wynika z zależności pomiędzy przekątnymi i funkcją kwadratową oraz faktem, że niektóre funkcje kwadratowe generują więcej liczb pierwszych niż inne.

Dzisiejszy tekst poświęcę przybliżeniu własności nr 2.

Wielomiany i rekurencja

Funkcja kwadratowa i rekurencja

Dla wielomianów możemy zawsze podać ich postać rekurencyjną, Jest to własność mało znana, jednak dosyć prosta w uzasadnieniu. Pokażę to na przykładzie funkcji kwadratowej, jednocześnie wzbogacając cykl "Zabawy z rekurencją" 🙂

f(x) = ax^2+bx+c

Rozważmy następnie równanie

f(x+1)=f(x)+Bx+C

Podstawiając i upraszczając...

a(x+1)^2+b(x+1)+c=ax^2+bx+c+Bx+C

ax^2+2ax+a+bx+b+c=ax^2+bx+c+Bx+C

2ax+a+b=Bx+C

2a=B    oraz    a+b=C

otrzymujemy

a=\frac{B}{2}    oraz    b=C-a

Następnie analizując f(1) mamy

f(1)=a+b+c    zatem    c=f(1)-a-b

c=f(1)-a-(C-a)=f(1)-C

Wniosek: jeśli znana jest relacja rekurencyjna f(x+1)=f(x)+Bx+C oraz znamy wartość f(1) to jesteśmy w stanie jednoznacznie wskazać równanie kwadratowe ax^2+bx+c spełniające daną zależność rekurencyjna, gdzie

a=\frac{B}{2},    b=C-a,    c=f(1)-C

Uogólnienia dokonujemy na bazie dwumianu Newtona

(x+1)^n = {n\choose 0}x^n+{n\choose 1}x^{n-1}+{n\choose 2}x^{n-2}+\ldots+{n\choose {n-1}}x+{n\choose n}

Funkcja kwadratowa i linie proste / przekątne na spirali Ulama

Poniżej spróbuję pokazać w jaki sposób "nawiajnie prostej na kwadrat" sprawia, że parabole w efekcie otrzymują kształt linii prostych.

Przykład 1 - Pionowa prosta

Spirala Ulama - równanie prostej 1

Zapisujemy zależność rekurencyjną

f(1)=4

f(2)=f(1)+1+2+3+3+2

f(3)=f(2)+2+3+5+5+3

\ldots

f(n+1)=f(n)+n+2n+(2n+1)+(2n+1)+(n+1)

f(n+1)=f(n)+8n+3

Teraz, korzystając z wyprowadzonego wcześniej wzoru, wyznaczamy współczynniki a, b, c funkcji kwadratowej spełniającej f(n+1)=f(n)+8n+3.

a=\frac{8}{2}=4,    b=3-4=-1,    c=4-3=1

f(n)=4n^2-n+1

Dla testu czy wszystko jest ok sami podstawcie n=1,2,3\ldots

Przykład 2 - Przękątna (linia diagonalna)

Spirala Ulama - równanie prostej 2

Ponownie zapisujemy zależność rekurencyjną, tym razem nieco prostszą.

f(1)=3

f(2)=f(1)+2+2+3+3

f(3)=f(2)+4+4+5+5

\ldots

f(n+1)=f(n)+n+2n+2n+(2n+1)+(2n+1)

f(n+1)=f(n)+8n+2

Korzystając ze znanego wzoru wyznaczamy a, b, c dla f(n+1)=f(n)+8n+2.

a=\frac{8}{2}=4,    b=2-4=-2,    c=3-2=1

f(n)=4n^2-2n+1

W kolejnej części cyklu "o Spirali Ulama" podam wzory kilku przekątnych (czyli funkcji kwadratowych) generujących nienaturalnie dużo liczb pierwszych 🙂

Pozdrowienia,

Mariusz Gromada

Spirala Ulama (spirala liczb pierwszych) - część 1

W 1963 polski matematyk Stanisław Ulam uprzyjemniał sobie czas spędzany w trakcie "bardzo długiego i bardzo nudnego" wykładu. Rekreacja polegała na takim wypisywaniu kolejnych liczby naturalnych 1, 2, 3, ..., aby finalny kształt utworzył "spiralę kwadratową" . Poniżej przykład dla pierwszych 49 liczba naturalnych, spirala oczywiście nie kończy się na 49, chodzi jedynie o zobrazowanie zasady.

Spirala Ulama

W kolejnym kroku na tak przygotowanej "tablicy" Ulam oznaczył wszystkie liczby pierwsze

Spirala Ulamanastępnie usuwając pozostałe.

Spirala UlamaW tym momencie jego oczom ukazał się niezwykle ciekawy i nieznany dotąd wzór - tendencja do układania się liczb pierwszych na "przekątnych / liniach diagonalnych". Lepiej to obrazuje spirala wygenerowana dla znacznie większego zakresu liczb.

Spirala Ulama

Każdy z Was może wygenerować podobną spiralę używają np. tego generatora.

Spirala Ulama i parzystość / nieparzystość liczb

Nietrudno zauważyć, że na liniach diagonalnych leżą albo same liczby parzyste, albo same liczby nieparzyste. Liczby pierwsze, poza 2, są nieparzyste - zatem nic dziwnego, że układają się na przekątnych reprezentujących liczby nieparzyste. Zaskakujące jest natomiast to, że niektóre diagonale zawierają ich znacznie więcej niż inne.

Spirala Ulama i wielomiany kwadratowe

Badania nad spiralą Ulama pokazały, że wzory przez nią ujawnione mają związek z generację przez niektóre funkcje kwadratowe nienaturalnie dużej liczby liczb pierwszych (ang. prime-rich quadratic polynomials), tzn. dla niektórych f(x)=ax^2+bx+c "nienaturalnie" często f(n) jest liczbą pierwszą dla n\in\mathbb{N}. Diagonale mogą być reprezentowane przez wielomiany stopnia 2, co wyjaśniam na poniższym schemacie.

Spirala Ulama i wielomiany stopnia 2

Przeczytaj również:

Pozdrowienia,

Mariusz Gromada

 

Model predykcyjny i siła separacji klas - czyli ocena jakości klasyfikacji (część 4)

Ze statystyk odwiedzin wynika, że cykl "Ocena jakości klasyfikacji" cieszy się Waszym zainteresowaniem - zatem wracam do tej tematyki. Dziś przedstawię wstęp do analizy jakości modeli predykcyjnych, skupiając się na jednym tylko aspekcie jakości - tzn. na sile modelu w kontekście separacji klas. Zapraszam 🙂

Jakość modelu predykcyjnego

Matematyka dostarcza wielu różnych miar służących ocenie siły modelu predykcyjnego. Różne miary są często ze sobą mocno powiązane, i choć przedstawiają bardzo podobne informacje, umożliwiają spojrzenie na zagadnienie z innych perspektyw. Przez jakość modelu predykcyjnego rozumiemy typowo ocenę jakości w trzech obszarach:

  1. Analiza siły separacji klas - czyli jak dalece wskazania modelu są w stanie "rozdzielić" faktycznie różne klasy pozytywny i negatywne;
  2. Analiza jakość estymacji prawdopodobieństwa - bardzo ważne w sytuacjach wymagających oceny wartości oczekiwanych, tzn. poszukujemy wszelkiego rodzaju obciążeń (inaczej - błędów systematycznych);
  3. Analiza stabilności w czasie - kluczowy aspekt rzutujący na możliwość wykorzystywania modelu w faktycznych przyszłych działaniach.

Wszystkie wymienione obszary są ze sobą powiązane terminem prawdopodobieństwa, za pomocą którego można wyrazić zarówno siłę separacji, jak też stabilność w czasie.

Założenia

Podobnie do poprzednich część cyklu załóżmy, że rozważamy przypadek klasyfikacji binarnej (dwie klasy: "Pozytywna - 1" oraz "Negatywna  - 0"). Załóżmy ponadto, że dysponujemy modelem predykcyjnym p zwracającym prawdopodobieństwo p(1|x) przynależności obserwacji x do klasy "Pozytywnej  -1" (inaczej "P od 1 pod warunkiem, że x"). I jeszcze ostatnie założenie, wyłącznie dla uproszczenia wizualizacji i obliczeń - dotyczy rozmiaru klasy pozytywnej - ustalmy, że jej rozmiar to 20%, inaczej, że prawdopodobieństwo a-priori P(1)=0.2.

Model predykcyjny a siła separacji klas - nieskumulowane prawdopodobieństwo

Poniżej przedstawiamy różne przypadki wizualnej oceny siły modelu. Interpretacja zamieszczonych wykresów jest następująca:

  • Oś pozioma reprezentuje kolejne segmenty populacji, tu zostały użyte decyle bazy względem zwracanej wartości prawdopodobieństwa przez model. Zatem 1 decyl agreguje 10% populacji z największym estymowanym prawdopodobieństwem, kolejne decyle - analogicznie.
  • Oś pionowa przedstawia prawdopodobieństwo warunkowe, że obserwacja z danego segmentu populacji (tutaj decyl bazy) faktycznie pochodzi z klasy "Pozytywnej - 1".

Model - nieskumulowane prawdopodobieństwo - brak separacji klas

Naturalnym jest, że model predykcyjny posiadający dodatnią siłę separacji klas, wykorzystany do podziału populacji na segmenty względem wartości malejącej (tutaj 10 decyli), powinien wpłynąć na faktyczną częstość obserwacji klasy "Pozytywnej - 1". Tzn. w pierwszych decylach powinniśmy widzieć więcej klasy "1" - kolejne przykłady właśnie to obrazują.

Model - nieskumulowane prawdopodobieństwo - niska separacja klas

Model - nieskumulowane prawdopodobieństwo - wysoka separacja klas

Dla każdego przypadku klasyfikacji istnieje również teoretyczny model idealny, z możliwie najwyższą siłą separacji klas. Tak model się "nie myli", co obrazuje poniższy schemat.

Model - nieskumulowane prawdopodobieństwo - maksymalna separacja klas

Inne "nietypowe" przypadki (jednak czasami spotykane w praktyce) to modele z ujemną korelacją w stosunku do targetu.

Model - nieskumulowane prawdopodobieństwo - ujemna separacja klasOstatecznie możliwy jest również wariant "mieszany", obserwowany często po długim czasie wykorzystywania modelu, bez jego aktualizacji, w wyniku zmian w danych, błędów w danych, zmian definicji klas (tzw, targetu), itp.

model_wariant_mieszany

Model predykcyjny a siła separacji klas - nieskumulowany lift

Lift jest normalizacją oceny prawdopodobieństwa do rozmiaru klasy pozytywnej, czyli do rozmiaru reprezentowanego przez prawdopodobieństwo a-priori P(1). Lift powstaje przez podzielenie wartości prawdopodobieństwa właściwej dla segmentu przez prawdopodobieństwo a-priori. W ten sposób powstaje naturalna interpretacja liftu, jako krotności w stosunku do modelu losowego (czyli modeli bez separacji klas):

  • lift < 1 - mniejsza częstość "klasy 1" niż średnio w populacji
  • lift = 1 - częstość "klasy 1" na średnim poziomie dla populacji
  • lift > 1 - większa częstość "klasy 1" niż średnio w populacji

Poniżej prezentacja graficzna

Model - nieskumulowany lift - brak separacji klas

Model - nieskumulowany lift - niska separacja klas

Model - nieskumulowany lift - wysoka separacja klas

Model - nieskumulowany lift - maksymalna separacja klas

Model - nieskumulowany lift - ujemna separacja klas

model_lift_wariant_mieszany

Pozdrowienia,

Mariusz Gromada

 

 

MathParser.org - mXparser - zapraszam

Witajcie,

W ostatnim czasie pracowałem nad projektem MathParser.org - w efekcie powstała strona w pełni dokumentująca projekt mXparser. Strona zawiera:

Serdecznie zapraszam! Poniżej trochę grafiki mXparsera z linkami do odpowiednich stron 🙂

MathParser.org - mXparser - logo

MathParser.org - mXparser - logo - Tutorial

MathParser.org - mXparser - logo - API

Pozdrowienia,

Mariusz Gromada