R,Python, Julia, Data Science

R,Python, Julia, Data Science

Wątek przeniesiony 2017-04-09 17:27 z Nietuzinkowe tematy przez Rev.

0

Po co używać w ogóle R do data science? Jedyną zaletą R nad Pythonem jest pare tysięcy bibliotek do statystyki, matematyki, matematyki finansowej itp. Czy nie lepiej jest przepisać wszystko do Pythona? Czemu część data scientistów to takie młoty? Czemu popularność R rośnie w tempie takim jak popularność pythona, mimo że R to kompletne badziewie i jego jedyną zaletą są te nieszczęsne biblioteki, które rozwijali przez ostatnie 20 lat profesorkowie zapaleńcy statystyki i które są rzeczywiście dobre, ale czy to znaczy że do końca świata mamy tkwić w tym zaklętym kole? Na grupie Data Science PL na fb dużo jest R-owców. Opamiętajcie się ludzie. Musimy coś z tym zrobić. Jakąś kampanie popularyzacji Pythona w Polsce. Trzeba jakoś przekonać tych profesorków z pw,agh,sgh,mim uw itp. do pythona.

0

@Julian_ @Shalom
Zapraszam do dyskusji ;)

Julian_
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0

Proponuję byś stworył lepszy język i nazwał go swoim imieniem. Będziemy wtedy programować w Jacku.

A co do R... nie zrozumie latania ten kto nigdy nie latał.

S9
Nie zbanowali Ciebie jeszcze? Bosz, kiedy to zrobią w końcu
JJ
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 6 lat
0

@Julian_:

Siedze w R i pythonie od dwoch lat, pod katem data science. W R glownie z przymusu. Python jest pod kazdym wzgledem lepszy. Składnia, obiektowość, biblioteki do sieci neuronowych, text miningu itp. Ostatnio chciałem się pobawić deep reinforcement learningiem, w R nic nie jest zaimplementowane. R to dobry jezyk dla amatorów, statystyków, analityków. Ale jak ktoś chce iść w kierunku najbardziej nowoczesnych odnóg data science, to w R jest pustka. Python jest lepszy.

Julian_
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0

A wizualizowałeś coś kiedyś? R ora po całości wszystkie języki świata jeśli chodzi o wizualizację danych, pozwala na najpiękniejsze na świecie interaktywne wizualizacje. Do tego automatyzacja raportów i wsparcie reproductible research.

Jedyną prewagą Pythona nad Rem była szybkość - przy dużej ilości danych. Teraz kiedy narodziła się Julia, która jest nawet szybsz od Javy, Python już nie ma sensu.

JJ
ale ten R jest taki suchy. chce np. zrobic jakas symulacje oparta na reinforcement learningu albo na czyms tam i na bazie tego zrobic gierke komputerowa albo appke. Przeciez w tym R sie nic nie da zrobic, to jest jezyk czysto statystyczny/wizualizacyjny, a nie jezyk ogolnego przeznaczenia jak python.
JJ
nawet jak julia jest szybsza to i tak zanim kuce wykucują od zera te wszystkie biblioteki do backendu, webdevu itp. to miną lata świetlne, a tak masz pythona i masz w nim wszystko co trzeba: django, uczenie maszynowe, statystyka, wizualizacja danych, scraping i czego dusza zapragnie
JJ
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 6 lat
0

https://www.ibm.com/developerworks/community/blogs/jfp/entry/Python_Meets_Julia_Micro_Performance?lang=en

This table shows that optimized Python code is faster than Julia for the first 6 examples, and slower for the last 2. Note that for Fibonacci I used the recursive code to be fair.

Zobacz pozostałe 3 komentarze
JJ
taki R-owiec to może mi naskoczyć. wszyscy R-owcy to wypierdki, walizka na kółkach, karykatury człowieka. tylko Python
Julian_
pytam czy chcesz się bić?
drorat1
Tylko co to obrazuje? Są szybsze sposoby na obliczanie elementów ciągu Fibonacciego to raz. A dwa to jak trzeba szybkości to pod względem szybkości i tak języki kompilowane, typowane statycznie zaorają języki typowane dynamicznie.
JJ
http://stackoverflow.com/questions/7596612/benchmarking-python-vs-c-using-blas-and-numpy nie jestem programista i sie az tak na tym nie znam, ale chyba te pythonowe biblioteki jak BLAS czy numpy,scipy są porównywalne jeśli chodzi o obliczenia numeryczne do javy,c++ itp. a w data science, statystyce itp. w sumie to jest najważniejsze.
CM
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 6 lat
  • Lokalizacja:Warszawa
  • Postów:118
0
JacekJackiewicz napisał(a):

Po co używać w ogóle R do data science?

Odpowiedzią jest:

JacekJackiewicz napisał(a):

R to dobry jezyk dla amatorów, statystyków, analityków.

  • Analityków i statystyków potrzeba coraz więcej, a R jest moim zdaniem łatwiejszy dla kogoś kto nigdy nie miał styczności z programowaniem. Instalujesz R i Rstudio i tyle wszystko śmiga.
  • Większość analiz w wielu branżach odbywa się na niewielkich wolumenach danych więc prędkość nie ma znaczenia.
  • Struktury danych w R są bardzo intuicyjne dla grupy docelowej (potwierdza to popularność pandas w pytonie ).
  • Po prostu jest dobry w tym co robi i nie ma nic złego w tym, że są to wąskie zastosowania o ile nikt nie próbuje na siłę ich rozszerzać.

W pytonie możesz zrobić dokładnie to samo, czy lepiej i szybciej to kwestia sporna, ale mam wrażenie, że to taki data sciencowy odpowiednik dyskusji niektórych programistów nad wyższością Javy nad C# i odwrotnie.

Zobacz pozostałe 3 komentarze
Julian_
R jest dla wybitnych.
JJ
no ok w pythonie jak cchesz odpalić coś w scikit learnie też w sumie nie musisz wiedziec co to obiekt, a kod jest schludniejszy i prostszy do odczytu niż w R. w pythonowej pandzie dziecinnie prosto obrabia się dane i operuje na macierzach. akurat argument że R jest prostszy w użytkowaniu i w ogóle prostszy, to chyba najgorszy argument jaki można przyjąć jako linie obrony R :D
CM
pandas to rok 2008 ile lat minęło zanim zdobyła popularność (swoją drogą ciekawe skąd twórcy czerpali inspirację ;))? Prawda jest taka, że jak piszesz proste skrypty, składnia nie ma znaczenia (nie mówiąc już, że preferencje co do składni są różne). Nie chce mi się jakoś strasznie rozpisywać tutaj mamy porównanie języków (https://www.dataquest.io/blog/python-vs-r/) z którym można mniej więcej się zgodzić. Co więcej, żeby z pythonem pracować podobnie do R potrzebujesz jupitera a i tak jest mniej wygodne i uboższe (przynajmniej na razie) rozwiązanie od tego co daje RStu
TA
Java lepsza od C#? Przeciez za java stoi oracle... i dyskusja zakonczona....
KR
Gwoli ścisłości, Java jest otwartoźródłowa i stoi za nią trochę więcej firm niż tylko Oracle. Np. IBM, Red Hat, Apple i Google.
Julian_
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
0

szach mat czego? Ze nadal nie jest popularny i ciezko w nim znalezc prace? Szczegolnie bezmyslnym fanatykom ktorzy tylko narzekaja i daja linki do statystyk bez kontekstu?

2 < 3

zacznij od prostej matematyki. Pozniej mozesz sie bawic w zapytania o ilosc pracy w danym jezyku. Jak nauczysz sie matematyki (podstaw) to zobaczysz, ze wynikow na rzecz pythona bedzie wiecej

JJ
Akurat argument z pracą nie jest zbyt trafiony, R to nie jest język dla deweloperów tylko dla data scientistów/statystyków/analityków, jak sobie poszukasz ofert pracy w tych zawodach to zobaczysz że w 80% R jest wymagany albo przynajmniej preferowany. Może w polsce nie jest to takie widoczne, bo do nas boom na data science dopiero przychodzi, ale w stanach, anglii, azjii są dziesiątki tysięcy tego typu ofert pracy.
fasadin
argument jest takiej samej jakosci jak ten powyzej z tiobe
JJ
no czyli nie jest trafiony, po co sie przyznajesz do bledu hehe?
fasadin
bo nie jestem hipokryta jak niektorzy i potrafie przyznac sie do czegos co zrobilem (szczegolnie swiadomie)
AJ
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 lat
  • Postów:2
1

W bionaukach używa się tylko SAS i R, na zachodzie jeszcze paru innych kombajnów, ale z języków programowania to tylko te dwa. W Pythonie nie ma po prostu nic specjalnego, co mógłby zaoferować bio data scjentystom. OK, może poza genetyką, gdzie Python ma troszkę rzeczy, ale to nie do porównania z BioConductorem nawet. W farmacji i pochodnych nie używa się machine learning bo nie ma po co, tylko czystej statystyki i to bardzo specjalistycznej statystyki. Python jest lepszy w machine learning, za to taka specjalistyczna statystyka w nim to zaledwie wycinek, raczej nierozwijany, kto pracował ten wie. Nie ma nawet dobrych metod do imputacji danych, tylko podstawowe. Medycy mają swoje metody statystyczne, których w Pythonie po prostu brak, a tych ledwie parę co są to na żenującym poziomie. I to zrozumiałe. Bo niby po co je rozwijać, kto miały to robić? Komu mogą być potrzebne, to siedzi w SAS albo R. A ci, co im to niepotrzebne, i tak nie wiedzą gdzie szukać wiedzy na ten temat i nie mają zamiaru tracić czasu. Pythoniści zachłysnęli się big data i machine learning, więc tutaj rozwijają jego możliwości. I tutaj Python jest mega. Ale big kasa to nie tylko big data, a tam potrzeba statystyki, i tam Python raczej nie podskoczy, bo kuleje i to mocno. Myślę, że oba języki po prostu się podzieliły rynkiem. O ile jeszcze flame między javą a c# ma rację bytu, bo ich domeny się w 100% nakładają, to tutaj nie ma to sensu, bo oba środowiska służą do czego innego. Dla przeciętnego eRowca kod w Pythonie jest nieczytelny. Dla Pythonisty kod w R to rzeźnia. Obserwacja na podstawie kilku roczników studentów i kilkudziesięciu konferencji z naukowcami programistami R, którzy zobaczyli ten sam kod w Pythonie i ręce im opadły. Dla programisty to nie problem, bo programista zrozumie kod w każdym, nawet nieznanym sobie języku, przez analogię. Dla naukowca to ma wielkie znaczenie, bo on uczy się konkretnego narzędzia. O ile test t Studenta można odpalić w obu środowiskach, to już bardziej zaawansowana statystyka dziedzinowa w Pythonie to parodia. Za to np. tworzenie GUI w Pythonie jest przyjemne, a w R uciążliwe, w GTK albo Tcl/Tk. Swoją drogą to R wszedł do MS SQL Servera i PowerBI i to w niego Microsoft zainwestował w 2016 i 2017, nie mówiąc o Oracle, które wypuściło R Enterprise. Ale i Pythonem MS się podobno interesuje, więc może oba języki będą wspierane przez jego narzędzia analityczne.

edytowany 1x, ostatnio: Admirał Jahaś
Julian_
GUI bardzo latwo robić w r dzięki shiny. No python jest dla mnie nieczytelny... brakuje klamr. A jakos java czy c++ jest czytelny. Podsumowujac: r najepszy
AJ
Ale to już frontend webowy. Shiny na localhoście w trybie single user jest OK. Do bardziej złożonych rzeczy używam jednak ASP.NET na localhoście pod serwerkiem Cassini (używam ASP.NET 3.5) + webserwis w R postawiony na OpenCPU. Jeśli chodzi o desktopowe GUI, to do małych rzeczy gWidgets nadaje się w miarę OK, do większych lepsze czyste RGTK, a do dużych - Java albo .NET i konektor i odpowiedni konektor do R, np. R.NET.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)