-
1. Data: 2016-02-05 00:19:06
Temat: "Inteligencja obliczeniowa" w jezyku Scheme
Od: g...@g...com
Czesc,
gdyby kogos to moglo zainteresowac, to informuje, ze wlasnie
skonczylem prace nad "mini ksiazeczka" dotyczaca implementacji
roznych metod z dziedziny tzw. "inteligencji obliczeniowej" (takich
jak algorytmy genetyczne, drzewa decyzyjne, logika rozmyta
czy "data mining") w jezyku Scheme. Ksiazka jest dostepna
(w jezyku angielskim) na licencji Creative Commons pod adresem
http://panicz.github.io/pamphlet/
Pozdrawiam
Maciek Godek
-
2. Data: 2016-02-05 10:58:06
Temat: Re: "Inteligencja obliczeniowa" w jezyku Scheme
Od: "M.M." <m...@g...com>
On Friday, February 5, 2016 at 12:19:09 AM UTC+1, g...@g...com wrote:
> Czesc,
> gdyby kogos to moglo zainteresowac, to informuje, ze wlasnie
> skonczylem prace nad "mini ksiazeczka" dotyczaca implementacji
> roznych metod z dziedziny tzw. "inteligencji obliczeniowej" (takich
> jak algorytmy genetyczne, drzewa decyzyjne, logika rozmyta
> czy "data mining") w jezyku Scheme. Ksiazka jest dostepna
> (w jezyku angielskim) na licencji Creative Commons pod adresem
>
> http://panicz.github.io/pamphlet/
Gratuluję pracy. Mam również pytanie. Jak sprawują się drzewa (decyzyjne
rzecz jasna) w języku Scheme? Kiedyś w C++ napisałem (właściwie to
kilka razy) drzewa decyzyjne, ale jeden raz budowałem drzewo ciut
lepsze niż to zbudowane metodami zachłannymi. Drzewo było budowane
wiele razy, a po kilku razach układ danych w pamięci uniemożliwiał
cachowanie. W efekcie mój algorytm, pomimo że napisany w C++, spowolnił
kilkadziesiąt razy. W językach wyższego poziomu trudno jest w ogóle
zadbać o cachowanie danych, nie miałeś z tym problemów?
Schema?
-
3. Data: 2016-02-05 13:16:29
Temat: Re: "Inteligencja obliczeniowa" w jezyku Scheme
Od: g...@g...com
W dniu piątek, 5 lutego 2016 10:58:07 UTC+1 użytkownik M.M. napisał:
> Gratuluję pracy. Mam również pytanie. Jak sprawują się drzewa (decyzyjne
> rzecz jasna) w języku Scheme?
Jezeli idzie o wydajnosc, to klasyfikator, ktory napisalem w oparciu
o drzewa decyzyjne, nie jest rekordzista wydajnosci, poniewaz dla
zadanego zbioru danych kazdorazowo rekonstruuje drzewo od nowa.
To jest cos, co moznaby bardzo latwo zoptymalizowac (wystarczyloby
prawie ze pozamieniac ze soba kilka nawiasow), ale wlasnie z tego
wzgledu tego nie optymalizowalem :)
> Kiedyś w C++ napisałem (właściwie to
> kilka razy) drzewa decyzyjne, ale jeden raz budowałem drzewo ciut
> lepsze niż to zbudowane metodami zachłannymi. Drzewo było budowane
> wiele razy, a po kilku razach układ danych w pamięci uniemożliwiał
> cachowanie. W efekcie mój algorytm, pomimo że napisany w C++, spowolnił
> kilkadziesiąt razy. W językach wyższego poziomu trudno jest w ogóle
> zadbać o cachowanie danych, nie miałeś z tym problemów?
Ja pomimo tego, ze uzywalem zachlannego algorytmu, nie moge sie pochwalic
powalajaca wydajnoscia, ale tez przyznam, ze nie staralem sie nawet
optymalizowac kodu pod tym katem. W razie potrzeby moglbym w bardzo prosty
sposob dodac memoizacje do swojego algorytmu, zeby uniknac powtarzania
obliczen (mysle, ze mogloby to spowodowac nawet drastyczne przyspieszenie),
ale moim celem byla raczej klarownosc prezentacji.
W razie czego istnieja tez lepsze kompilatory od tego, z ktorego korzystalem,
i mysle, ze moglbym sprobowac uzyc ktoregos z nich.
Jezeli idzie o wydajnosc, to benchmarki pokazuja, ze niektore kompilatory
Common Lispa generuja kod mniej wiecej tak samo szybki, jak kompilatory C
(czasem szybszy, czasem wolniejszy) -- o ile takie porownywanie w ogole
ma sens (na pewno Common Lisp wypada korzystnie w porownaniach z Pythonem). Istnieje
tez kompilator jezyka Scheme, ktory podobno potrafi generowac
kod wydajniejszy od kompilatorow C, ale trzeba za niego placic pieniadze,
i nawet jesli dla kogos nie jest to problemem, to i tak nie da sie
go kupic :)
(jakis czas temu jego producent zostal wchloniety przez CISCO, i od tamtej
pory nie odpowiada na mejle)