Sunday 12 November 2017

Cloudera ruchome średnie


Potem natknąłem się na ten artykuł: wspomniałem, jak obliczyć średnią ruchome za pomocą programu Hadoop. Należy zauważyć, że wszystkie rekordy KEY powinny być sortowane, a następnie zredukowane. Przyjmijmy teraz, że zapisy dotyczące konkretnego KLUCZU są rozłożone na wszystkie klocki klastra Mongo. W takim przypadku byłoby możliwe obliczenie średniej ruchomej Rozumiem, że Mongo zmniejsza mapę na każdym węźle. Podstawowym wymogiem rozwiązania tego problemu jest upewnienie się, że wszystkie emisje dla mapy zostaną zredukowane w jednej fazie redukcji. Jeśli tak jest, wówczas Mongo Map Reduce nigdy nie będzie w stanie rozwiązać takich problemów. Czy istnieją pewne podstawowe niezrozumienia Także z miliardami wierszy i petabajtami danych, dlaczego jest to, że faza redukcji Hadoop nie robi awarii z pamięci, ponieważ musi zajmować się co najmniej kilkoma TBami mapowanych danych. zapytał 16 maja 13 w 7:31 Czy możesz wytłumaczyć, dlaczego Hadoop nie wyczerpie się z pamięci na takie obliczenia Z mojego zrozumienia wszystko redukcja nastąpi w jednym węźle, gdzie wszystkie rekordy dla KLUCJI zostaną obniżone. Powinno to spowodować ogromne obciążenie pamięciowe tego węzła, ponieważ TB muszą istnieć tam dane. W jaki sposób Hadoop poradzi sobie z tak dużą ilością danych ndash P. Prasad 16 maja o 8:29 Wierzę, że w przeciwieństwie do MongoDB, hadoop, podobnie jak SQL podczas przetwarzania dużego łączenia, zapisze rzeczy na dysku i czyta tylko wtedy, gdy jest to potrzebne system operacyjny używający swap jako tymczasowy posiadacz pamięci dla pewnych rzeczy prawdopodobnie. MongoDB robi więcej w pamięci RAM przed zapisem na dysku, jako takie łatwo będzie wyrwać się z ndash Sammaye 16 maja 13 w 8: 37Moving Averages - proste i wykładnicze średnie kroczące - proste i wykładnicze Wprowadzenie Zmiana średniej wygładza dane o cenach, tworząc trend po wskaźniku. Nie przewidują kierunków cen, ale raczej określają obecny kierunek z opóźnieniem. Przekroczone średnie diety, ponieważ są oparte na wcześniejszych cenach. Pomimo tego opóźnienia, średnie kroczące pomagają gładko działać na ceny i eliminują hałas. Stanowią również elementy dla wielu innych wskaźników technicznych i nakładek, takich jak taśmy Bollingera. MACD i Oscylator McClellan. Dwa najbardziej popularne typy średnich kroczących to średnia ruchoma (SMA) i średnia ruchoma (EMA). Te średnie ruchome mogą być wykorzystane do określenia kierunków trendu lub określenia potencjalnych poziomów wsparcia i oporu. Oto wykres zawierający zarówno SMA, jak i EMA: proste obliczanie średniej ruchomej Prosta średnia ruchoma jest obliczana poprzez obliczenie średniej ceny zabezpieczenia w określonej liczbie okresów. Większość średnich kroczących opiera się na cenach zamknięcia. 5-dniowa prosta średnia ruchoma to pięciodniowa suma cen zamknięcia podzielona przez pięć. Jak sama nazwa wskazuje, średnia ruchoma jest średnią, która się zmienia. Stare dane są usuwane w miarę udostępniania nowych danych. Powoduje to, że średnia przemieszcza się wzdłuż skali czasowej. Poniżej znajduje się przykład 5-dniowej średniej ruchomej rozwijającej się przez trzy dni. Pierwszy dzień średniej ruchomej obejmuje po prostu ostatnie pięć dni. Drugi dzień średniej ruchomej obniża pierwszy punkt danych (11) i dodaje nowy punkt danych (16). Trzeci dzień średniej ruchomej trwa przez upuszczenie pierwszego punktu danych (12) i dodanie nowego punktu danych (17). W powyższym przykładzie ceny stopniowo zwiększają się z 11 do 17 w ciągu siedmiu dni. Zauważ, że średnia ruchoma również wzrasta od 13 do 15 w ciągu trzech dni obliczeniowych. Warto też zauważyć, że każda średnia ruchoma jest tuż poniżej ostatniej ceny. Na przykład, średnia ruchoma dla pierwszego dnia to 13, a ostatnia cena to 15. Ceny poprzednich czterech dni były niższe i powoduje to, że średnia ruchoma jest opóźniona. Obliczanie średniej ruchomej wykładniczej Średnie ruchome średnie wykładnicze zmniejszają opóźnienie, stosując większą wagę do niedawnych cen. Waga zastosowana do najnowszej ceny zależy od liczby okresów w średniej ruchomej. Są trzy etapy obliczania wykładniczej średniej ruchomej. Najpierw obliczyć prostą średnią ruchoma. Wyznaczona średnia ruchoma (EMA) musi zaczynać się gdzieś tak, że w pierwszym obliczeniu używana jest prosta średnia ruchoma, podobnie jak poprzednia emisja EMA0. Po drugie obliczyć mnożnik ważący. Po trzecie, obliczyć wykładniczą średnią ruchomą. Poniższa formuła dotyczy 10-dniowej EMA. 10-okresowa wykładnicza średnia ruchoma stosuje się do 18.18 ważenia do najnowszej ceny. 10-EMA okres może być również nazywany 18.18 EMA. Dwudziestoczteroletnia EMA stosuje wagę 9,52 w stosunku do ostatniej ceny (2 (201) .0952). Zwróć uwagę, że ważenie krótszego okresu czasu jest większe niż ważenie przez dłuższy okres czasu. W rzeczywistości, wagi spadają o połowę za każdym razem, gdy średnia długość ruchu jest dwukrotnie większa. Jeśli potrzebujesz określonej wartości procentowej dla EMA, możesz użyć tej formuły, aby ją zamienić na okresy czasu, a następnie podaj tę wartość jako parametr EMA0: Poniżej znajduje się przykład arkusza kalkulacyjnego 10-dniowej prostej średniej ruchomej i 10- dziennej średniej ruchomej dla Intel. Proste średnie ruchome są proste i niewiele wyjaśniają. 10-dniowa średnia po prostu porusza się w miarę pojawiania się nowych cen, a stare ceny spadają. Wytworzona średnia ruchoma zaczyna się od prostej średniej ruchomej (22.22) w pierwszym obliczeniu. Po pierwszym obliczeniu normalna formuła przejmuje. Ponieważ EMA zaczyna się od prostej średniej ruchomej, jego prawdziwa wartość nie zostanie zrealizowana dopiero po 20 lub późniejszych okresach. Innymi słowy, wartość arkusza excel może się różnić od wartości wykresu ze względu na krótki czas zwrotu. Ten arkusz kalkulacyjny kończy się tylko 30 okresami, co oznacza, że ​​wpływ tej prostej średniej ruchomej miało 20 okresów na rozproszenie. StockCharts co najmniej 250-krotne (zwykle znacznie dalej) dla swoich obliczeń, więc efekty prostej średniej ruchomej w pierwszym obliczeniu zostały w pełni rozproszone. Czynnik Lag zwiększa ruchomą średnią, tym bardziej lag. 10-dniowa wykładnicza średnia ruchoma utrzyma ceny dość blisko i wkrótce po skręceniu cen. Krótkie średnie ruchy są jak łodzie szybkości - zwinne i szybko zmieniające się. Natomiast 100-dniowa średnia ruchoma zawiera dużo danych, które spowalniają. Dłuższe średnie ruchome są jak zbiorniki oceaniczne - letargiczne i powolne do zmiany. Potrzeba większego i dłuższego ruchu cen dla 100-dniowej średniej ruchomej, aby zmienić bieg. Powyższy wykres pokazuje SampP 500 ETF z 10-dniową EMA ściśle po cenach i 100-dniową SMA szlifowania wyższe. Nawet w okresie spadku stycznia i lutego 100-dniowy kurs SMA utrzymywał kurs i nie obrócił się. 50-dniowy SMA mieści się gdzieś pomiędzy średnim ruchem 10 i 100 dni, jeśli chodzi o współczynnik opóźnienia. Proste vs potoczne średnie kroczące Mimo że istnieją wyraźne różnice między prostymi średnimi ruchoma a średnimi ruchoma wykładniczymi, niekoniecznie jest to lepsze od innych. Wyższe średnie kroczące mają mniej opóźnień, a zatem są bardziej wrażliwe na ostatnie ceny - i ostatnie zmiany cen. Średnie kroczące średnie ruchy spadną przed średnimi ruchami. Z drugiej strony stanowią średnią cenę za cały okres. Jako takie, proste średnie ruchome mogą być lepiej dostosowane do identyfikacji poziomów wsparcia lub oporu. Przeciętne preferencje ruchów zależą od celów, stylu analitycznego i horyzontu czasowego. Chartiści powinni eksperymentować z oboma typami średnich kroczących, jak również różne ramy czasowe, aby znaleźć najlepsze dopasowanie. Poniższy wykres przedstawia firmę IBM z 50-dniowym SMA na czerwono i 50-dniową EMA na zielono. Oba osiągnęły szczyt pod koniec stycznia, ale spadek EMA był ostrzejszy niż spadek SMA. EMA pojawiła się w połowie lutego, ale SMA stale spadała do końca marca. Zauważ, że SMA pojawiła się ponad miesiąc po EMA. Długości i ramy czasowe Długość średniej ruchomej zależy od celów analitycznych. Krótkie średnie ruchome (5-20 okresów) najlepiej nadaje się do krótkoterminowych trendów i handlu. Chartreszy zainteresowani trendami średniookresowymi wybieraliby dłuższe średnie ruchy, które mogą wynosić 20-60 okresów. Inwestorzy długoterminowi wolą ruszać się średnio 100 lub więcej okresów. Niektóre średnie ruchome długości są bardziej popularne niż inne. Najbardziej popularna jest 200-dniowa średnia ruchoma. Ze względu na długość, jest to wyraźnie długoterminowa średnia ruchoma. Następna, 50-dniowa średnia ruchoma jest dość popularna w średnim okresie. Wielu chrześcijan korzysta ze średnich ruchów 50-dniowych i 200-dniowych razem. Krótkoterminowa, 10-dniowa średnia ruchoma była dość popularna w przeszłości, ponieważ łatwo było ją obliczyć. Jeden po prostu dodał numery i przesunął punkt dziesiętny. Identyfikacja tendencji Te same sygnały mogą być generowane przy użyciu prostych lub wykładniczych średnich kroczących. Jak wspomniano powyżej, preferencja zależy od każdej osoby. Poniższe przykłady będą używać zarówno prostych, jak i wykładniczych średnich kroczących. Określona średnia ruchoma odnosi się zarówno do prostych, jak i wykładniczych średnich kroczących. Kierunek średniej ruchomej przekazuje ważne informacje o cenach. Rosnąca średnia ruchoma wskazuje, że ceny są na ogół wzrastające. Spadająca średnia ruchoma wskazuje, że średnio spadają ceny. Rosnąca długoterminowa średnia ruchoma odzwierciedla długoterminową tendencję wzrostową. Spadająca długoterminowa średnia ruchoma odzwierciedla długoterminową tendencję spadkową. Powyższy wykres pokazuje 3M (MMM) z 150-dniową wykładniczą średnią ruchoma. Ten przykład pokazuje, jak dobrze działają średnie ruchome, gdy trend jest silny. 150-dniowa EMA odrzuciła w listopadzie 2007 r. I ponownie w styczniu 2008 r. Zwróć uwagę, że zajęło 15 spadków, aby odwrócić kierunek tej średniej ruchomej. Te wskaźniki opóźniające wskazują na odwrócenie tendencji w miarę ich wystąpienia (w najlepszym wypadku) lub po ich wystąpieniu (w najgorszym przypadku). MMM kontynuował spadek w marcu 2009 r., A następnie wzrósł o 40-50. Zauważ, że 150-dniowa EMA nie pojawiła się dopiero po tym przypływie. Gdy tylko to zrobił, MMM kontynuował wyższe w ciągu najbliższych 12 miesięcy. Przeprowadzki średnie działają doskonale w silnych trendach. Double Crossovers Dwa średnie ruchome mogą być używane razem do generowania sygnałów krzyżowych. W analizie technicznej rynków finansowych. John Murphy nazywa to podwójną metodą crossover. Podwójne przejazdy obejmują jedną stosunkowo krótką średnią ruchową i jedną stosunkowo długą średnią ruchoma. Podobnie jak w przypadku wszystkich średnich kroczących, ogólna długość średniej ruchomej definiuje ramy czasowe dla systemu. System za pomocą 5-dniowej EMA i 35-dniowej EMA uznano za krótkoterminową. System korzystający z 50-dniowego SMA i 200-dniowego SMA byłby uważany za średnioterminowy, a może nawet długoterminowy. Przejściowy zwrotnica występuje wtedy, gdy krótsza średnia ruchoma przekracza dalszą średnią ruchomej. Jest to również znany jako złoty krzyż. Pochylenie spadkowe następuje wtedy, gdy krótsza średnia ruchoma przekracza dłużej przeciętną średnią. Jest to znany jako martwy krzyż. Przekazywanie przecięć średnich powoduje relatywnie późne sygnały. W końcu system zatrudnia dwa wskaźniki słabiej rozwinięte. Im dłuższe są ruchome okresy średnie, tym większe opóźnienie w sygnałach. Te sygnały działają świetnie, gdy trwa tendencja. Jednakże, ruchomy system przecięcia crossoveru przyniesie wiele pseudonów bez silnego trendu. Istnieje również potrójna metoda krzyżowa obejmująca trzy średnie ruchome. Ponownie, generowany jest sygnał, gdy najkrótsza średnia ruchoma przekracza dwa dłuższe średnie ruchome. Prosty potrójny system zwrotnicowy może obejmować średnie ruchome 5-dniowe, 10-dniowe i 20-dniowe. Powyższy wykres przedstawia Home Depot (HD) z 10-dniową EMA (zielona kropkowana linią) i 50-dniową EMA (czerwoną linią). Czarna linia jest codziennym zamknięciem. Użycie średniej ruchomych zwrotnic doprowadziłoby do trzech pędników, zanim złapano dobry handel. 10-dniowa EMA zerwała się pod 50-dniową EMA pod koniec października (1), ale to nie potrwa długo, jak 10-dniowy ruch wznowiony powyżej powyżej w połowie listopada (2). Ten krzyż trwał już dłużej, ale w styczniu (3) następny niedźwiedzia krzyżowa pojawiły się pod koniec listopada poziom cen, co spowodowało kolejny whipsaw. Ten niedźwiedzią krzyk nie trwał tak długo, jak 10 dniowy EMA powrócił ponad 50 dni kilka dni później (4). Po trzech złych sygnałach, czwarty sygnał zasygnalizował silnemu ruchowi w miarę wzrostu zapasów w ciągu 20. W tym miejscu są dwa wyjazdy. Po pierwsze, przejazdy są skłonne do wędrowania. Można zastosować filtr cen lub czasu, aby zapobiec psuwaczom. Handlowcy mogą wymagać rozjazdu przez ostatnie 3 dni przed działaniem lub wymagać, aby 10-dniowa EMA przemieszczała się powyżej przedniej 50-dniowej EMA o pewien poziom przed działaniem. Po drugie, MACD może być używany do identyfikacji i ilościowej oceny tych przecięć. MACD (10,50,1) pokaże linię reprezentującą różnicę między dwoma średnicami ruchu wykładniczego. MACD obraca się podczas złotego krzyża i ujemny podczas martwego krzyża. Oscylator Oscylatora Procentowego (PPO) może być używany w taki sam sposób, aby pokazać różnice procentowe. Warto zauważyć, że MACD i PPO są oparte na średnich ruchach wykładniczych i nie odpowiadają prostym średnim kroczącym. Ten wykres przedstawia firmę Oracle (ORCL) z 50-dniową EMA, 200-dniową EMA i MACD (50 200). W okresie 2 12 lat istniały cztery średnie ruchome przejazdy. Pierwsze trzy przyniosły ubolewanie lub złe transakcje. Trwały trend rozpoczął się czwartym rozdrożem, kiedy ORCL sięgnął połowy lat dwudziestych. Po raz kolejny ruchome przecięcia średnie działają świetnie, gdy trend jest silny, ale powodują straty w przypadku braku tendencji. Przeceny cenowe Przeceny średnie można również wykorzystać do generowania sygnałów z prostymi przeceniami cen. Ruchliwy sygnał jest generowany, gdy ceny poruszają się powyżej średniej ruchomej. Sygnał niedźwiedzi jest generowany, gdy ceny spadają poniżej średniej ruchomej. Przeceny cen można połączyć w handlu w większym trendzie. Dłuższa ruchomość ś rednia wyznacza ton dla wię kszej tendencji, a przy generowaniu sygnałów używa się krótszej ruchomoś ci. Poszukiwano uprzejmych krzyżówek cenowych tylko wtedy, gdy ceny są już powyżej średniej dłużej. Będzie to handel w zgodzie z większym trendem. Na przykład, jeśli cena przekracza 200-dniową średnią ruchoma, chartiści skoncentrują się tylko na sygnałach, gdy cena przekracza 50-dniową średnią ruchoma. Oczywiście, ruch poniżej 50-dniowej średniej ruchomej poprzedzałby taki sygnał, ale takie krzywdy niekorzystne byłyby ignorowane, ponieważ większa tendencja wzrasta. Krzywa niedźwiedzia po prostu sugeruje pullback w większym trendzie wzrostowym. Krzyż powyżej 50-dniowej średniej ruchomości oznaczałby wzrost cen i kontynuację większej dynamiki wzrostu. Następny wykres przedstawia Emerson Electric (EMR) z 50-dniową EMA i 200-dniową EMA. Stan wzrósł powyżej i utrzymywał się powyżej średniej ruchowej 200 dni w sierpniu. Od początku listopada po raz pierwszy pojawiły się spadki poniżej 50-dniowej EMA i ponownie na początku lutego. Ceny szybko się cofnęły ponad 50-dniowy EMA, aby zapewnić uparty sygnał (zielone strzałki) w harmonii z większą fazą wzrostu. MACD (1,50,1) jest wyświetlany w oknie wskaźników w celu potwierdzenia krzyżów cenowych powyżej lub poniżej 50-dniowego EMA. Jednorodzona EMA równa jest cenie zamknięcia. MACD (1,50,1) jest dodatni, gdy wartość graniczna przekracza 50-dniową EMA i jest ujemna, gdy wartość graniczna jest niższa niż 50-dniowa EMA. Wsparcie i opór Średnie kroczące mogą również działać jako wsparcie w trendzie wzrostowym i oporze w downtrend. Krótkoterminowe trenowanie może znaleźć wsparcie w pobliżu 20-dniowej prostej średniej ruchomej, która jest również wykorzystywana w zespołach Bollingera. Długoterminowa tendencja wzrostowa może znaleźć wsparcie w pobliżu 200-dniowej prostej średniej ruchomej, która jest najbardziej popularną długoterminową średnią ruchoma. Jeśli fakt, 200-dniowa średnia ruchoma może oferować wsparcie lub opór tylko dlatego, że jest tak szeroko stosowany. To prawie jak samospełniający się proroctwo. Powyższy wykres pokazuje NY Composite z 200-dniową prostą średnią ruchoma od połowy 2004 r. Do końca 2008 r. 200-dniowe wsparcie udzielane wiele razy w trakcie wyprzedzenia. Gdy trend odwrócił się z podwójną górną przerwą, 200-dniowa średnia ruchoma działała jako opór wokół 9500. Nie oczekuj dokładnych poziomów wsparcia i oporu od średnich kroczących, zwłaszcza dłuższych średnich kroczących. Rynki napędzane są emocjami, co czyni je bardziej skłonne do przeoczenia. Zamiast dokładnych poziomów, średnia ruchoma może być wykorzystana do identyfikacji stref wsparcia lub rezystancji. Wnioski Korzyści płynące ze stosowania średnich ruchomej należy oceniać na niekorzyść. Średnie kroczące są następujące trendy lub opóźnione wskaźniki, które zawsze będą krok za sobą. Niekoniecznie jest to zła rzecz. Przecież tren jest twój przyjaciel i najlepiej jest handlować w kierunku tego trendu. Średnie kroczące zapewniają, że przedsiębiorca jest zgodny z obecnym trendem. Chociaż trend jest Twoim przyjacielem, papiery wartościowe spędzają dużo czasu w zakresie obrotu, co powoduje, że średnia ruchoma jest nieefektywna. Raz w trendzie poruszają się średnie, ale też dają późne sygnały. Don039t oczekują sprzedaży na górze i kupowania na dole przy średnich ruchomech. Podobnie jak w przypadku większości narzędzi analizy technicznej, średnia ruchoma nie powinna być używana samodzielnie, ale w połączeniu z innymi narzędziami uzupełniającymi. Chartiści mogą używać średnich kroczących do określenia ogólnej tendencji, a następnie użyć RSI w celu określenia poziomów przejęcia lub zbytych. Dodawanie średnich kroczących do wykresów StockCharts Średnie ruchome są dostępne jako funkcja nakładania się cen na stół roboczy programu SharpCharts. Korzystając z menu rozwijanego, użytkownicy mogą wybierać albo prostą średnią ruchomej lub średnią ruchową wykładniczą. Pierwszy parametr służy do określania liczby okresów. Opcjonalny parametr można dodać, aby określić, które pole ceny powinno być stosowane w obliczeniach - O dla otwartych, H dla wysokich, L dla niskich i C dla zamknięcia. Do oddzielenia parametrów stosuje się przecinek. Do dodania innego opcjonalnego parametru można przesuwać średnie ruchome w lewo (w przeszłości) lub w prawo (na przyszłość). Liczba ujemna (-10) spowoduje przesunięcie średniej ruchomej do lewej 10 okresów. Liczba dodatnia (10) spowoduje przesunięcie średniej ruchomej do 10-ciu okresów. Wielokrotne średnie ruchome można pokryć wykresem cen, dodając kolejną linię nakładki do stołu roboczego. Członkowie StockCharts mogą zmieniać kolory i style, aby rozróżnić różne średnie ruchome. Po wybraniu wskaźnika otwórz opcję Opcje zaawansowane, klikając zielony trójkąt. Opcje zaawansowane mogą być również użyte do dodania ruchomych nakładek na inne wskaźniki techniczne, takie jak RSI, CCI i Volume. Kliknij tutaj, aby wyświetlić wykres na żywo z kilkoma ruchomymi średnimi. Używanie średnich kroczących ze skanowaniem w StockCharts Poniżej przedstawiono przykładowe skanowanie, które członkowie magazynu StockCharts mogą skanować w różnych sytuacjach średniej ruchomej: Bullish Moving Average Cross: ta analiza dotyczy zasobów o wzrastającej 150-dniowej prostej średniej ruchomej i wzroście krzyża z 5 EMA i EMA 35-dniowy. 150-dniowa średnia ruchoma rośnie tak długo, jak długo sprzedaje się powyżej jej poziomu pięć dni temu. Krzyż uparty pojawia się, gdy 5-dniowa EMA przemieszcza się powyżej 35-dniowej EMA przy wyższej średniej wielkości. Niesklasyfikowany ruch średnio krzyżowy: to skanuje szuka zapasów z 150-dniową prostą średnią ruchomą i krzyżykiem 5-dniowego EMA i 35-dniowego EMA. 150-dniowa średnia ruchoma spadnie tak długo, jak sprzedaje się poniżej poziomu sprzed pięć dni. Krzywa nieuzasadniona występuje, gdy 5-dniowa EMA przemieszcza się poniżej 35-dniowej EMA przy wyższej średniej. Dalsze studia Książka Johna Murphy'ego zawiera rozdział dotyczący średnich kroczących i ich różnych zastosowań. Murphy uwzględnia zalety i zalety średnich kroczących. Ponadto, Murphy pokazuje, jak ruchome średnie współpracują z zespołami Bollinger Bands i systemami handlu kanałami. Analiza techniczna rynków finansowych Blog inżyniera John MurphyCloudera Simple Moving Average, Secondary Sort i MapReduce (część 2), gdzie kolumny są wszystkie kolumny z tej daty do 29 dni wcześniej. Teraz skopiuj ten wzór na kolejne dwa wiersze, daty 147342008148 i 147332008148. Powinieneś mieć wartości 14735.396148, 14734.5293148 i 14733.5293148, które reprezentują średnie 30-dniowe średnie kroczące dla tych syntetycznych danych o yahoo. Teraz, gdy we8217ve ustanowił podstawowy przykład w programie Excel let8217, spójrz na to, jak robimy Simple Moving Average w R. Szybki podkład na prostą średnią przemieszczania w R Innym wspólnym narzędziem w dziedzinie serii czasowych, w szczególności w sektorze finansowym, jest programowanie R język. R to: język programowania i środowisko oprogramowania do obliczeń statystycznych i grafiki. De facto standard wśród statystyków statystycznego rozwoju oprogramowania i analizy danych. Implementacja języka programowania S wraz z semantyką leksykalną scoping inspirowaną przez Schemat. Obecnie opracowany przez Zespół R Development Core, ale został opracowany przez Ross Ihaka i Robert Gentleman z University of Auckland w Nowej Zelandii. Pobierz binarny r z tego miejsca i zainstaluj go lokalnie (obsługują zarówno linux, jak i win32). Po zainstalowaniu uruchom konsolę R i upuść menu 147Packages148, gdzie trzeba zainstalować pakiet TTR. Wybierz lustro i pobierz ten pakiet. Teraz załaduj ten pakiet, klikając menu rozwijane 147Packages148 i wybierz 147Load Package148. Znajdź pakiet TTR, który został właśnie zainstalowany i wybierz go. Następnie pobierz dane syntetyczne z mojego projektu dotyczące github, który zawiera 33 linie syntetycznych danych czasowych do przetworzenia. W celu załadowania tych danych CSV w R musimy ustawić katalog roboczy, klikając element menu 147File148, a następnie 147Zmień katalog148. Szybka wskazówka: w dowolnym momencie użytkownik może wpisać nazwę zmiennej i nacisnąć Enter, aby wyświetlić zawartość zmiennej. Teraz, gdy mamy wszystkie prep z drogi, let146s napisać prostą średnią kroczącą w R: wymiana stocksymbol 160160160160160160date160 open160 high160160 niski wolumen close160160 adj. close 32160160160160 NYSE160160160160160160160160160160 AA 2008-02-03 38,85 39,28 38,26 38,37 11279900160160160160160 8,37 31160160160160 NYSE160160160160160160160160160160 AA 2008 -02-04 37,01 37,90 36,13 36,60 17752400160160160160 10,60 30160160160160 NYSE160160160160160160160160160160 AA 2008-02-05 31.16 31.89 30.55 30.69 30.53 +17567800160160160160 29160160160160 NYSE160160160160160160160160160160 AA 2008-02-06 30.27 31.52 30.06 31.31 31,47160 8445100160160160160 28160160160160 NYSE160160160160160160160160160160 AA 2008-02-07 31.73 33.13 31.57 32.66 14338500160160160160 32.49 27160160160160 NYSE160160160160160160160160160160 AA 2008-02-08 32.58 33.42 32.11 32.70 10241400160160160160 32.53 26160160160160 NYSE160160160160160160160160160160 AA 2008-02-09 32.13 33.34 31.95 33.09160 9200400160160160160 32.9 2 25160160160160 NYSE160160160160160160160160160160 AA 2008-02-10 33.67 34.45 33.07 34.28 34.10 +15186100160160160160 24160160160160 NYSE160160160160160160160160160160 AA 2008-02-11 34.57 34.85 33.98 33.90 34,08160 9528000160160160160 23160160160160 NYSE160160160160160160160160160160 AA 2008-02-12 33.30 33.64 32.52 32.67 32.50 +11338000160160160160 22160160160160 NYSE160160160160160160160160160160 AA 2008-02- 13 32.95 33.37 32.26 32.41 32,41160 7230300160160160160 21160160160160 NYSE160160160160160160160160160160 AA 2008-02-14 32.24 33.25 31.90 32.78 32,78160 9058900160160160160 20180160160160 NYSE160160160160160160160160 160160AA 2008-02-15 32.67 33.81 32.37 33.76 33.76 +10731400160160160160 19160160160160 NYSE160160160160160160160160160160 AA 2008-02-16 33.82 34.25 33.29 34.06 34.06 18160160160160 +11249800160160160160 NYSE160160160160160160160160160160 AA 2008-02-17 34.33 34.64 33.26 33.49 12418900160160160160 33.49 17160160160160 NYSE160160160160160160160160160160 AA 2008-02-18 33.75 35 0,52 33,63 35,51 21082100160160160160 35,51 16160160160160 NYSE160160160160160160160160160160 AA 2008-02-19 36,01 36,43 35,05 35,36 18238800160160160160 35,36 15160160160160 NYSE160160160160160160160160160160 AA 2008-02-20 35.16 35.94 35.12 35.72 35.72 14160160160160 NYSE160160160160160160160160160160 14082200160160160160 AA 2008-02-21 36.19 36.73 35.84 36.20 36.20 13160160160160 NYSE160160160160160160160160160160 12825300160160160160 AA 2008-02-22 35.96 36.85 35.51 36.83 36.83 12160160160160 NYSE160160160160160160160160160160 10906600160160160160 AA 2008-02-23 36,88 37,41 36,25 36,30 13078200160160160160 36,30 11160160160160 NYSE160160160160160160160160160160 AA 2008-02-24 36.38 36.64 35.58 36.55 36.55 10160160160160 NYSE160160160160160160160160160160 12834300160160160160 AA 2008-02-25 36.64 38.95 36,48 38,85 22500100160160160160 38,85 9160160160160160 NYSE160160160160160160160160160160 AA 2008-02-26 38.59 39.25 38.08 38.50 14417700160160160160 38.50 8160160160160160 NYSE16016016016016 0160160160160160 AA 2008-02-27 38.19 39.62 37.75 39.02 39.02 14296300160160160160 7160160160160160 NYSE160160160160160 160160160160160AA 2008-02-28 38.61 39.29 38.19 39.12 39.12 6160160160160160 NYSE160160160160160160160160160160 11421700160160160160 AA 2008-02-29 38,77 38,82 36,94 37,14 37,14 5160160160160160 NYSE160160160160160160160160160160 22611400160160160160 AA 2008-03-01 37.17 38.46 37.13 38.32 38.32 4160160160160160 NYSE160160160160160160160160160160 13964700160160160160 AA 2008-03-02 37,90 38,94 37,10 38,00 15715600160160160160 38,00 3160160160160160 NYSE160160160160160160160160160160 AA 2008-03-03 38.25 39.15 38.10 38.71 38.71 2160160160160160 NYSE160160160160160160160160160160 11754600160160160160 AA 2008-03-04 38.85 39.28 38.26 38.37 38.37 1160160160160160 NYSE160160160160160160160160160160 11279900160160160160 AA 2008-03-05 37.01 37.90 36.13 36.60 17752400160160160160 36.60 Powyższy kod powinien wytworzyć naszą prostą średnią ruchliwą, którą możemy wyświetlić, wpisując nazwę th e zmienna 147sma148 produkować następujący wynik: 1160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA 21160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA160160160160160160 NA 33,52933 34,52933 35.39600 Biorąc pod uwagę, że przed 30 dniem tam nie wystarczy do stworzenia prostej średniej ruchomej w oparciu o ustawiony parametr, tworzone są wpisy 147NA148. Wartości te są również zgodne z wartościami w naszym arkuszu kalkulacyjnym programu Excel. R ma też ciekawy projekt, zwany RHIPE, który uruchamia kod R w klastrach Hadoop. Aby zapoznać się z RHIPE, odwiedź stronę. Zrobiliśmy więc prostą ruchomą średnią i jak to robimy w programie Excel i R. Obie z tych przykładów zawierały znaczną ilość danych, które są interesujące, ale nie bardzo przydatne w dzisiejszych domenach problemowych o wysokiej gęstości. Gdy twój zestaw danych zacznie rozszerzać się o ponad jedną przestrzeń dysku, Hadoop staje się bardziej praktyczny. Ostatnia część tej trzyczęściowej serii blogów wyjaśni, jak korzystać z MapReduce Hadoop146 w celu obliczenia prostej średniej ruchomej. Następnie, gdy zastosujesz przykładowy kod do znalezienia prostej średniej ruchomej małego przykładowego zestawu danych, będziemy używać tego samego kodu, aby analizować ponad trzydziestoletnie wartości wszystkich codziennych cen zamknięcia akcji. 2 odpowiedzi na ldquo Simple Moving Average, Secondary Sort i MapReduce (część 2) rdquo Świetny poradnik, kiedy zamierzasz opublikować część poświęconą Blogowi Simple Simple Average Moving, Sortowanie drugorzędne i MapReduce (część 3) Jest to ostatni element do trzyczęściowa seria blogów. Jeśli chcesz zobaczyć poprzednie części tej serii, skorzystaj z poniższego linku: Wcześniej wyjaśniliśmy, jak używać Excela i R jako narzędzi analizy do obliczania Simple Moving Average z małego zestawu cen zamknięcia zapasów. W tym ostatnim kawałku do trzech części blogu będę badał użycie MapReduce do znalezienia prostej Moving Average naszego małego przykładowego zestawu danych. Potem pokaże Ci, jak używać tego samego kodu, będzie można obliczyć Proste Moving Average każdej ceny akcji zamknięcia od 1980 roku. W dół królika z Hadoop W powyższych przykładach przyjrzeliśmy się obliczeniu prostej średniej ruchomej stosunkowo niewielkiej ilości danych. Dla wielu analiz, excel i R są bardzo skutecznymi narzędziami, ale skacząc w stronę sklepów danych gigabajtowych, terabajtowych i petabajtowych, mamy problemy z lokalizacją danych, szybkością dysku i szybkością przetwarzania. Aby zilustrować te czynniki, należy zabrać mityczną maszynę, która miała pojedynczy dysk 1-petabajtowy, który działał podobnie do prędkości dysku. Dla celów tego przykładu dobrze wykorzystać prędkość odczytu 40 MB. Powiedzmy, że naszym zadaniem jest przeszukiwanie tych danych i uzyskanie prostej średniej ruchomej, procesor nie utrudnia obliczania i możemy utrzymać obliczanie okna ruchomego przez dane w pełnych 40 MB. Pozwala także założyć, że dane zostały wcześniej posortowane, a musieliśmy wykonać tylko skanowanie sekwencyjne, co zwiększa szybkość transmisji danych z dysku i może dostarczyć 40 MB do rurociągu przetwarzania. Na podstawie Jeffa Deansa 12 liczb Każdy inżynier powinien wiedzieć slajd jest to wiarygodna konfiguracja. Przy tej przepustowości prosta średnia ruchoma wynosząca 1 petabajt danych zajęłaby około 310 dni. W większości przypadków ten koszt operacyjny pod względem czasu powoduje nierozsądne rozważenie. Na szczęście mechanicy systemów HDFS i MapReduce łagodzą takie czynniki, że możemy uczynić ten problem linearnym czasem i kapitałem, aby pomóc nam zdecydować o liczbie maszyn, które chcemy wdrożyć, aby skutecznie wykonać to proste, średnie ruchome skanowanie. W powyższym prostym, średniej średniej wzorcach zaniedbaliśmy pomyśleć o ograniczeniach: przechowywania petabajta danych na nie-mitycznym sprzęcie. Sortowanie petabajta danych. Biorąc pod uwagę awarię sprzętu w ciągu 310 dni roboczych. Zwykle aplikacje szeregów czasowych muszą skanować dane w pewnym momencie, co powoduje duże wzniesienia, jeśli chcemy podejść do dużych tomów danych szeregowych w dzisiejszych systemach. Widzimy, że codziennie w domenach serii danych wielotabajtowych i wielobranżowych każdego dnia, w tym iw każdej z tych domen, powyższy scenariusz jest bardzo realnym wyzwaniem. HDFS rozwiązuje problemy związane z przechowywaniem i niepowodzeniem, ale co z zagadnieniami sortowania i przetwarzania Sesja dużych ilości danych w sobie jest problemem nietypowym, ale jest przystępny dzięki kilku sztuczek w MapReduce. Pozwala spojrzeć na prawdziwy kod MapReduce, który możemy pobrać, aby skompilować i stworzyć własną, skalowalną, prostą średnią ruchliwą, aby rozwiązać niektóre z tych problemów. Zwykła średnia ruchoma w MapReduce Zazwyczaj aplikacja MapReduce składa się z dwóch funkcji: (przypuszczasz) funkcja mapy i funkcja zmniejszania. W świecie programowania java tworzymy klasę map i klasę redukującą, z których każdy posiada dziedziczne metody przydatne w ich szacunkowych celach. Używamy modelu programowania MapReduce, ponieważ jest on zbudowany w celu złagodzenia problemów współbieżności w naszych algorytmach i uzyskiwanie skalowalnego równoległości jest względnie bezbolesny. Funkcja map może obejmować kod, który wykonuje operację par klucz-klucz, ale główna operacja logiczna polega na grupowaniu danych za pomocą kluczy. Bardzo prostym sposobem na zastanowienie się nad mapą jest pomyślenie o tym jako logicznej projekcji danych lub grupy według klauzuli. Funkcja redukcji jest używana do pobierania tych grup (indywidualnie) i przeprowadzania procesu w ramach wartości zgrupowanych razem. Wspólne operacje w zakresie redukcji funkcji obejmują: W naszym prostym średnim przykładzie nie działamy w szczególności na podstawie wartości ani nie produkujemy agregatów we wszystkich tych wartościach. Nasza operacja w sensie agregującym obejmuje okno przesuwne, które wykonuje operacje na podzbiorze danych na każdym kroku. Musimy również wziąć pod uwagę, że punkty z naszych danych z serii czasowych nie są gwarantowane, aby osiągnąć ograniczenie w kolejności i muszą być sortowane zgodnie z poprzednimi sekcjami. Dzieje się tak, ponieważ w przypadku wielu funkcji map czytających wiele sekcji danych źródłowych MapReduce nie nakłada na pary par klucz-wartość, które są zgrupowane w domyślnej partycji i schematach sortowania. Istnieje scenariusz, w którym posortowano partycjonowane dane, ale na potrzeby tego przykładu zajmiemy się bardziej niesortowanymi danymi z serii. Pozwala zrobić pierwszy przebieg w jaki sposób możemy zaprojektować tę prostą ruchomą pracę MapReduce. Chcemy zebrać wszystkie wspólne zapasy, korygowane wartości ścisłe, abyśmy mogli zastosować prostą operację średniej ruchomej w porównaniu do sortowanych danych szeregowych. Chcemy emitować za każdym razem parę kluczów kluczem szeregowym, wpisywanych do symbolu magazynu, do grupowania tych wartości razem. W fazie redukcji możemy uruchomić operację, tutaj prostą średnią ruchową, nad danymi. Ponieważ dane bardziej niż prawdopodobne nie przybędą do reduktora w uporządkowanej kolejności, należy odpowiednio uporządkować dane, zanim będziemy mogli obliczyć prostą średnią ruchu. Powszechnym sposobem sortowania danych jest załadowanie danych do pamięci w strukturze danych, na przykład sterty, podobnie jak to zostało zrobione w normalnym programie java. W tym przypadku dobrze posłuż się klasą kolejki Javas do sortowania naszych danych. Musimy również rozważyć ilość pamięci wykorzystywaną przez dane przychodzących danych szeregowych podczas sortowania, ponieważ jest to czynnik ograniczający ilość danych, które możemy posortować. W tym projekcie musimy załadować wszystkie dane serii czasowej, zanim będziemy mogli rozpocząć przetwarzanie i jeśli ilość danych do sortowania przekracza dostępny rozmiar sterty, mamy problem. Przykład tej implementacji jest przechowywany w github: Aby uruchomić ten kod w swoim własnym klastrze Hadoop, pobierz CDH z Cloudera i skonfiguruj pseudo-rozproszony klaster 8211, który jest pojedynczym węzłem Hadoop. Tryb Pseudo-rozproszony to świetny sposób, aby wypróbować kod z Hadoopem. Następnie pobierz i skompiluj średni ruchowy kod w słoiku. Aby pobrać kod bezpośrednio z github (w skorupie w systemie MacOSX, w oknie terminalowym ssh w systemie Linux lub MINGW32 dla win32), użyjemy komendy: nasze pierwsze przejście jest godnym rozwiązaniem, ale zostało ograniczone przez naszą maszynę Java Virtual Machine (JVM) rozmiar sterty i zajmujemy czas na ręczne sortowanie danych. Wraz z kilkoma zmianami w projekcie możemy rozwiązać oba te problemy korzystając z pewnych wrodzonych właściwości MapReduce. Najpierw chcemy spojrzeć na przypadek sortowania danych w pamięci na każdym reduktorze. Obecnie musimy upewnić się, że nigdy nie wysyłamy więcej danych do pojedynczego reduktora, niż mogą pasować do pamięci. Możemy obecnie kontrolować to, aby dać każdemu dziecku reduktora JVM więcej sterty i dalszej podziału naszych danych szeregowych w fazie mapy. W tym przypadku ściślej podział czasu przez podzielenie naszych danych na mniejsze okna czasu. W przeciwieństwie do dalszego podziału danych, kolejnym podejściem do tego zagadnienia jest umożliwienie Hadoopu sortowania danych w nas na tzw. Etapie shuffle w MapReduce. Jeśli dane przychodzą do reduktora już w porządku posortowanym, możemy obniżyć stopień pamięci i zmniejszyć liczbę pętli przez dane, patrząc tylko na kolejne N próbek dla każdej prostej obliczeniowej średniej ruchomej. To prowadzi nas do zasadniczego aspektu tego artykułu, który nazywa się mechaniką sortowania wtórnego sortowania. Sortowanie jest czymś, co może nam pozwolić Hadoopowi zrobić dla nas, a Hadoop okazał się dość dobry w sortowaniu dużych ilości danych, wygrywając konkurs Grey Sort w 2008 roku. Używając drugiego mechanika sortowania, możemy rozwiązać zarówno kwestie heap i sortowania dość prosto i efektywnie. Aby zastosować sort drugorzędny w naszym kodzie, musimy uczynić z klucza złożeniem naturalnego klucza i wartości naturalnej. Poniżej na rysunku 1 widać schemat tego, jak wyglądałoby to wzrokowo. Rysunek 1: Composite Key Diagram Klucz kompozytowy daje Hadoop potrzebne informacje podczas trenowania, aby wykonać sortowanie nie tylko na symbolu 8220stock8221, ale również na znaczniku czasu. Klasa, która sortuje te klucze złożone, nazywana jest komparatorem kluczy lub tutaj 8220CompositeKeyComparator8221. Kluczowy komparator powinien zamówić klucz złożony, który jest połączeniem naturalnego klucza z wartością naturalną. Możemy zobaczyć poniżej na rysunku-2, gdzie na klawiaturze złożonej z 2 liczb całkowitych jest wykonywana abstrakcyjna wersja sortowania wtórnego. Rysunek 2: CompositeKeyComparator sortowanie kluczy złożonych (klucze są liczbami całkowitymi). Na poniższym rysunku-3 widać bardziej realistyczny przykład, w którym zmieniliśmy klucz złożony, aby posiadać ciąg symbolu akcji (K1) i znacznik czasu (K2, wyświetlany jako data, ale w kodzie jest długi w ms). Na diagramie posortowano pary KV za pomocą zarówno przycisków 8220K1: symbolu czasowego8221 (klucz naturalny) i 8220K2: znacznik czasu8221 (klucz dodatkowy). Rysunek-3: CompositeKeyComparator podczas pracy na naszych złożonych kluczach. Klucz złożony został teraz reprezentowany przez symbol akcji (K1) i datę (K2). Gdy posortujemy nasze dane na złożonym kluczu, musimy teraz rozdzielić dane na fazę redukcji. Na rys. 4 poniżej widać, jak dane z powyższego rysunku 3 zostały podzielone na partycje NaturalKeyPartitioner. Rysunek 4: Partycjonowanie za pomocą klucza naturalnego za pomocą składnika NaturalKeyPartitioner. Gdy dane zostaną podzielone na nasze dane, reduktory mogą teraz rozpocząć pobieranie plików partycji i rozpocząć fazę scalania. Poniższy rysunek-5 poniżej ilustruje porównanie komparatora grupowego lub NaturalKeyGroupingComparator, aby upewnić się, że wywołanie reduction () tylko widzi logicznie zgrupowane dane dla tego złożonego klucza. Rysunek-5: Grupowanie komparatora łączącego pliki partycji. Kompartator partycjonujący i komparator dla klucza złożonego powinny uwzględniać tylko naturalny klucz do partycjonowania i grupowania. Poniżej znajduje się krótki opis kodu Simple Moving Average, który jest zmieniany w celu użycia sortowania wtórnego i jest przechowywany na github. Jeśli zauważysz, nazwy klas ściśle pasują do terminologii stosowanej na powyższych rysunkach oraz w tomie Whites Hadoop: Definitive Guide (rozdział 8 MapReduce Features), aby ułatwić zrozumienie kodu. NaturalKey 8211, jakiego normalnie używasz jako klucza lub grupy przez operatora. W tym przypadku Klucz naturalny to grupa lub symbol giełdowy, ponieważ musimy grupować potencjalnie niezłożone dane o zapasach, zanim będziemy mogli go posortować i obliczyć zwykłą średnią ruchliwą. Klucz kompozytowy 8211 Klucz, który jest połączeniem klucza naturalnego i wartości naturalnej, którą chcemy posortować. 5 odpowiedzi na ldquo Simple Moving Average, Secondary Sort i MapReduce (część 3) rdquo Świetna sztuczka z dzielonym sorterpartitionerem. Jeśli mogę to powiedzieć to działa świetnie, dopóki serie nie są bardzo długie (myślę, że 30 lat danych na poziomie kleszcza) 8211 wydaje się, że podział według czasu może być bardzo trudne. Czy znasz coś wbudowanego w hadoop jak 8220 partycji8221, która może wypluć te same dane do wielu partycji eksperymentowałem z maperami, że zduplikowane wartości na wielu kluczykach, ale zastanawiam się, czy jest bardziej konwencjonalny sposób na to. Evan, jesteś martwy z wielkością danych w pojedynczym obszarze kluczy. Doszedłem do tego samego problemu podczas pracy nad projektem openPDC dla NERC: jeden czujnik miałby dosłownie miliardy punktów w bardzo krótkim czasie, więc w przypadku prac prototypowych wprowadziliśmy kilka rzeczy do jednego dnia (3600000ms): w bardziej skomplikowaną wersję chciałbym użyć nakładających się szczelin czasowych, dzięki czemu mapper otrzyma wystarczające dane z sąsiednich pól kluczy, aby pokryć pojedynczą długość okna. Teraz I8217d mówi, że jesteś na właściwej drodze z duplikowanymi wartościami. Wiem, że nie jest to związane z ruchomej średniej, ale jaka była dokładność dopasowania serii czasów SAX używanych w PDC I zrealizował coś takiego (z wyjątkiem użycia MapReduce API 2) oraz w pętli funkcji reduce (), gdy tylko. next () metoda jest nazywana Iterator, dostajemy nową wartość, ale klucz także cudownie się zmienia. Zamiast tego część klucza złożonego, który nie był używany jako klucz naturalny (timestamp w tym przykładzie) zmienia się. To było dość zaskakujące. Jak to się zdarzy Nawigacja po pojęciu Przyjęcie Apache Hadoop w rządzie federalnym

No comments:

Post a Comment