Ostatnio sporo się działo i na blogu był mały ruch. Aktualnie trochę znalazłem czasu na małe blogowe porządki i uaktualnienia. Tak więc życzę miłej lektury.
Archiwum kategorii: Notatki
Hadoop – Mahout
Poniżej umieszczam linki do stron związanych z pakietem Mahout do obliczeń z zakresu sztucznej inteligencji tj. klasyfikacje, grupowanie etc. Rozwiązanie to może stanowić alternatywę dla osób piszących w Javie a nie R. Istnieje również możliwość połączenia technologii. Poniżej prezentuję parę przydatnych linków:
– http://www.ibm.com/developerworks/java/library/j-mahout/
Życzę jak zawsze miłej lektury.
Hadoop – Oozie w akcji
Podsyłam kilka interesujących linków na temat ooziego:
– http://developer.yahoo.com/blogs/ydn/posts/2010/08/workflow_on_hadoop/
– http://rvs.github.com/oozie/installing.html
– https://ccp.cloudera.com/display/CDHDOC/Oozie+Installation
Życzę jak zawsze miłej lektury.
R i Hadoop
Aktualnie podsyłam jeszcze jeden interesujący link do projektu związanego z opisem połączenia rozwiązania w postaci R project i Hadoop. Informacje można znaleźć w prezentacji http://blog.revolutionanalytics.com/2011/11/marriage-hadoop-r.html.
R hadoop
Dzisiaj krótki wpis na temat możliwości zastosowania Hadoopa w swoich programach napisanych w R project. Poniżej podaje kilka ciekawych linków:
– How to program MapReduce jobs in Hadoop with R
– RevolutionAnalytics / RHadoop
Życzę jak zawsze miłej lektury.
R rozszerzenia i R paczki
Osoby zainteresowane opublikowaniem swego kodu utworzonego w R project, zarówno w czystym R jak i w postaci rozszerzeń w innych językach, na pewno zainteresują materiały na stronie http://cran.r-project.org/doc/manuals/R-exts.html. Materiały tam zebrane omawiają szczegółowo i wyczerpująco temat tworzenia własnych dodatków do R. Osobom które początkują w tym temacie polecam nieco bardziej „lżejsze” lektóry w postaci:
– opracowania krok po kroku jak tworzyć paczki w R http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf
– w googlu albo http://search.carrot2.org/stable/search wstukać frazę Writing R Extensions
Osobiście korzystałem z pierwszego jak i drugiego linku. Natomiast projekt który utworzyłem związany z implementacją softu do kalsyfikacji umieściłem na platformie http://r-forge.r-project.org/.
Resolved problem with revoIPC 1.0-3 and new g++
Few days ago I had a installation problem package revoIPC 1.0-3 and doSMP 1.0.1. When I was compiled revoIPC 1.0-3, compilator returned this error:
g++ -I/usr/local/lib64/R/include -I/usr/local/include -I . -fpic
-g -O2 -c interface.cc -o interface.o
In file included from ./boost/interprocess/detail/
from ./boost/interprocess/mapped_
from
./boost/interprocess/detail/
from boost/interprocess/managed_
from queue.h:17,
from interface.cc:3:
./boost/interprocess/detail/
'm_value’ cannot be declared 'mutable’ [-fpermissive]
make: *** [interface.o] Błąd 1
ERROR: compilation failed for package 'revoIPC’
Rich Calaway from revolutionanalytics.com helped me quickly and sent solution. The patch with fix this problem is a:
„… go to src/boost/interprocess/detail/iterators.hpp and comment out lines 341-353”
Thanks for this advice we can compile revoIPC 1.0-3 and use it in with doSMP 1.0.1. Just one thinks, if we use doSMP 1.0.1 in new revoIPC 1.0-4 and we try execute this program:
rmSessions(all.names = TRUE)
w <- startWorkers(2)
registerDoSMP(w)
foreach(i=1:3) %dopar% sqrt(i)
R return this error:
> foreach(i=1:3) %dopar% sqrt(i) *** caught segfault ***
address 0x7fd0e562f58c, cause 'memory not mapped’ Traceback:
1: .Call(„returnResult”, q, t$task, serialize(res, NULL))
2: ipcTaskReturnResult(taskq, taskchunk, resultchunk)
3: doSMP:::workerLoop(qname, rank, verbose, out)
aborting …
Rich Calaway helped me fixed this problem to. I don’t check it but if someone want to use revoIPC 1.0-4 must:
„… remove the PKG_CPPFLAGS=-DNDEBUG line from Makevars.in in the src directory.”
Good luck.
R stronki
Poniżej umieszczam kilka przydatnych linków do stron internetowych opisujących pewne zagadnienia które często wymagają rozwiązania lub zastosowania podczas badań wspieranych pakietem R project. Na stronach tych można uzyskać informacje na temat:
– sortowania oraz grupowania danych (http://www.ats.ucla.edu/stat/r/faq/sort.htm, http://stackoverflow.com/questions/1296646/how-to-sort-a-dataframe-by-columns-in-r). Przy czym pierwszy link jest także krótkim kursem wprowadzającym do R,
– profilowania aplikacji napisanych w R, w szczególności tych które wymagają użycia dużych zasobów pamięci. Czasami warto wiedzieć co aktualnie rezyduje na stosie pamięci (http://developer.r-project.org/memory-profiling.html, http://heuristically.wordpress.com/2010/01/04/r-memory-usage-statistics-variable/),
– tworzenia wykresów Pareto informacje można znaleźć na stronie http://www.oga-lab.net/RGM2/func.php?rd_id=qcc:pareto.chart opisującej pakiet i metody które służą do tego celu.
Życzę miłego korzystania z wyżej przedstawionych rozwiązań.
R mapy i R geotagowanie
Ostatnio poszukiwałem rozwiązania do geotagowania. Proces ten chciałem wykonać za pomocą nie API google map dla java scriptu lecz web serwisów i r project. Podyktowane to było tym aby utrzymać jednolite rozwiązanie programistyczne tj. jednolitą platformę eksperymentalną do przetwarzania tekstów w postaci raportów zaimplementowaną w jednym języku, bez różnego rodzaju miksów. Na początku rozpatrywałem użycie PHP i Java Scriptu niemniej po przeszperaniu internetu natknąłem się dość ciekawe rozwiązanie dla r project. Poniżej prezentuje listę linków związanych z zastosowaniem API google map w połączeniu z r project:
– http://www.r-chart.com/2010/07/maps-geocoding-and-r-user-conference.html
– http://cran.r-project.org/web/packages/RgoogleMaps/vignettes/RgoogleMaps-intro.pdf
– http://cran.r-project.org/web/packages/RgoogleMaps/RgoogleMaps.pdf
– http://cran.r-project.org/web/packages/RgoogleMaps/index.html
– http://cran.r-project.org/web/packages/gooJSON/gooJSON.pdf
– http://cran.r-project.org/web/packages/googleVis/vignettes/googleVis.pdf
– http://cran.r-project.org/web/packages/plotGoogleMaps/plotGoogleMaps.pdf
Powodzenia w stosowaniu ww. rozwiązań.
R project – obiektowość
R project posiada trzy systemy obiektowe: S3, S4 i S5. Odniesienia i opisy tych systemów można znaleźć na stronach:
– https://github.com/hadley/devtools/wiki/R5 – opisującej nowy system S5,
– http://biecek.pl/R/RC/Jakub%20Derbisz%20R%20reference%20card%20classes.pdf, opisującej podstawowe operatory klas,
– http://stat.ethz.ch/R-manual/R-devel/library/methods/html/refClass.html, manual opisujący system S5 i funkcję setRefClass() służącą do tworzenia interfejsu klasy,
– http://www.youtube.com/watch?v=UZkaZhsOfT4, prezentacja zawierająca opis trzech ww. systemów oraz opis integracji R project z C++ poprzez pakiet Rcpp.
Zainteresowanym życzę miłej lektury. Poniżej natomiast przedtsawiam próbke kodu opisującej interfejs klasy account zaczerpniętej z prezentacji, do której link znajduje się na ostatniej pozycji ww. stron.
account <- setRefClass("Account_R5", fields = list( balance = "numeric", overdraft = "numeric" ), methods = list( withdraw = function(amount) { print("Compute withdraw...") }, deposit = function(amount) { print("Compute deposit...") } ) ) x <- account$new(balance = 10.0, overdraft = 0.0) x$withdraw(5) x$deposit(10)