Autorius | Žinutė |
2014-06-04 17:14 #402371 | |
"R" plačiai naudojamas statistikoje, ekonometrijoje ir kt. Su šia programa draugauju nepilnus metus ir tikrai nesu pažengęs. Todėl nusprendžiau sukurti šią temą ir surasti bendraminčių, kurie yra daugiau pažengę ir galėtų pasidalinti patarimais, o gal net ir pamokyti kitus (tame tarpe ir mene). Mane dominanti sritis yra neural networks ir support vector machines (SVM). Knygos, kurios patiko: Machine Learning with R by Brett Lantz ir Data Mining with R: Learning with Case Studies (Chapman & Hall/CRC Data Mining and Knowledge Discovery Series) by Luis Torgo.
Gal yra kitų, t.y. paprastensių būdų, kurie nereikalauja progamavimo žinių taikant NN ir SVM? Prašau pasidalinti. |
|
2014-06-04 19:22 #402382 | |
Su R yra taip - arba programuoji savarankiškai nuo A iki Z naudodamasis tuo, ką moki, arba ieškai jau paruoštų naudojimui bibliotekų (jei tokios yra viešai prieinamos). Deja, kas liečia neuroninius tinklus ir svm, nesidomėjau tokiais paketais. Nedidelė paieška siūlo tokius paketus.
Neuroniniai tinklai svm Tai reiškia, kad reikia išmokti jais naudotis. Dažniausiai reikia perprasti, kaip paduoti duomenis ir kokias funkcijas (su parametrais) naudoti juos analizuojant. |
|
2014-06-04 20:06 #402386 | |
Yra tokios bibliotekos kaip nnet, kernlab, e1073 ir forecast (skirta laiko eilutėms). Aš, asmeniškai, susiduriu su programavimo problema, nes nesu šios srities specialistas. Jei kas turi koknrečių pavydžių, tai jie visada laukiami
|
|
2014-06-04 20:09 #402390 | |
Taigi, tavo problema ta, kad nemoki naudotis R. Ten didelių programavimo žinių nereikia.
Gal gali suformuluoti kokią nors problemą? Lengviau bus parinkti pavyzdį ir paaiškinti. |
|
2014-06-04 20:27 #402393 | |
Ka turi galvoje sakydamas "programavimas"? Jeigu duomenys kuriuos nori analizuoti yra strukturizuoti ir nereikalauja jokio apdorojimo pries juos naudojant (preprocessing), tai nelabai yra ka ten programuoti. Jeigu pries naudojima duomenis reikia apdoroti, tai to reikes nesvarbu ar naudosi R ar kitas programavimo kalbas/statistikos paketus.
Is naujo isradineti dviracio, t.y. paciam programuoti SVM ar NN naudojant R tikrai nereikia. Reikia naudotis tuo ka sukure atviro kodo bendruomene. Kiekviena biblioteka turi help'us, kuriuose rasi funkciju aprasymus ir pavyzdzius. Redaguota: ANDfx (2014-06-04 21:05 ) |
|
2014-06-05 05:15 #402438 | |
As naudoju STATA, patogi paprasta, tiem kuriem programavimas sunkokas.
|
|
2014-06-05 06:55 #402439 | |
Įdomi tema. Su R nesu susidūręs, tačiau MATLAB pritaikau portfelyje vis daugiau. Jei yra daugiau tokių forume, kurie dirba ir naudoja MATLAB - būtų įdomu susipažinti.
|
|
2014-06-05 09:59 #402455 | |
Šiek tiek pažįstamas su MATLAB'u, bet nepasakyčiau, kad daug naudočiau. Kai prireikia.
|
|
2014-06-05 10:28 #402464 | |
Pasirinkau "R", kai išbandžiau daug skirtingų programą su user interface'u. Visos bandytos programos leidžia vienną ir tą patį: data processing, clasification, clusterig. Nei vienoje mano bandytoje programoje nebuvo galima atlikti forecast'o.
|
|
2014-06-05 10:36 #402466 2 | |
Mano pasiūlymas - išmokti programuot. A) Python B) Java/C++. Kelios įžvalgos. Ekonometrijai, stat modeliams, risk managementui - Pythonas ir jo derivatyvai. Jei imsim indusrtiją, tai JPM, MS, GS high level modeliuose įsitvirtina pythonas (arba jo derivatyvai) low levelyje C++/Java. Na gal pas GS kiek kitaip, jie turi savo slang'ą ir security database'ą kas yra pascalio/pythono/perlo hibridas ir visiškas oldshoolas wallstrete, bet veikia ir stebėtinai sparčiai. Ir pamirškit spalvotus User Inteface'us, čia jums ne grafikos ar modernaus dizaino galerija.
Pythonui darbui su NN, SVM, nemokamos biblės - SciKit, PyBrain, galima rasti ir kitų. Rimtesniam reikalui - teks susimokėt įsigyjant labiau sofistikuotus modulius. Kas liečia interfeisus, prie Reuters/Bloobergo priėjimai yra tiek Pythono, tiek C++/Java kas yra defaultas. Viskas priklauso nuo to, kokio reikia execution speed ir kaip arti 'geležies' kodas turi būti. Išvada. Skirkit laiko, nepatingėkit, ir išmokit programuot. High levelio kalbos labai greitai mokosi. Turėsit rimtą ginklą savo skill'ų arsenale. |
|
2014-06-05 14:09 #402516 | |
ThePope, su jūsų nuomone sutinku, tačiau man įdomu patikrinti tam tikras idėjas ant tam tikrų modelių. Mano atveju NN ir SVM modeliai. O jei rezultatai tenkins, tada galima surasti patyrusį programuotoją, kuris suprogramuotų tiksliai, kokybiškai ir patikimai. [url="R" palyginimas su kitais paketais]http://stanfordphd.com/Statistical_Software.html[/url].
|
|
2014-06-05 15:21 #402532 | |
akrolytis, pagrindines programavimo žinias vis teik reikia turėti, nesvarbu ką naudotum. Čia tik tokie įrankiai kaip SPSS pritaikyti "neraštingiems". Formuluok savo klausimą, kas tau neaišku, nes dabar man neaišku, kas tau neaišku
|
|
2014-06-05 16:13 #402544 | |
topl0305, konkrečiai turiu padaręs su SPSS vieną atvejį, kurį noriu įgyvendinti su "R". Prisegu rezultatą ir duomenis. Noriu padaryti tokį pat modelį (NN MLP) ir jį papildyti su forecasto funcija 1-u periodu į preikį. Duomenys yra standartizuoti. Tada tokį pat atvejį norėčiau palyginti su SVM (su dot kernel).
|
|
2014-06-05 17:56 #402562 | |
Y,X1,X2,X3,X4,X5,X6,X7 kuris yra pagrindinis tavo parametras?
|
|
2014-06-05 18:04 #402566 | |
backbrakers, Y (0;1) output value. X1,X2,X3,X4,X5,X6,X7 input values.
|
|
2014-06-05 18:31 #402569 | |
Matlab turi forecasting funkcijas jau idiegtas. Jei neklystu Matlab ir R yra ta pati programa.
As paraninau tavo data(Y as output) su STATA ir gaunu situos koeficientus. Kadangi nezinau ka jie reiskia, negaliu papasakoti daugiau apie juos. Source SS df MS Number of obs = 998 F( 6, 991) =65876.54 Model 248.552177 6 41.4253628 Prob > F = 0.0000 Residual .62317381 991 .000628833 R-squared = 0.9975 Adj R-squared = 0.9975 Total 249.175351 997 .249925126 Root MSE = .02508 v1 Coef. Std. Err. t P>t [95% Conf. Interval] v2 -1.427077 .0037225 -383.37 0.000 -1.434382 -1.419772 v3 0 (omitted) v4 .0051318 .0021667 2.37 0.018 .0008801 .0093836 v5 .0451888 .0037322 12.11 0.000 .0378648 .0525128 v6 2.375619 .0064801 366.60 0.000 2.362903 2.388336 v7 -1.060921 .0032616 -325.28 0.000 -1.067321 -1.05452 v8 -.0027777 .004124 -0.67 0.501 -.0108705 .005315 _cons .5180361 .0007938 652.62 0.000 .5164784 .5195938 v3 ir v8 neturi reiksmes siame modelyje. |
|
2014-06-05 18:36 #402571 | |
_cons .5180361
v2 -1.427077 v4 .0051318 v5 .0451888 v6 2.375619 v7 -1.060921 |
|
2014-06-05 19:33 #402574 | |
Kodas: data = read.csv("http://www.traders.lt/datas/attach/att_11199.csv") Y = data$Y # output kintamasis X = data[,-1] # input kintamieji library(nnet) # treniruojam NN. Siuo atveju hidden layer'is tures 20 unit'u nn = nnet(x = X, y = Y, size = 20) # prognozuojam Y reiksmes, kurios buvo naudojamos modelio treniravimui (train dataset) Ypred = predict(nn) # Prognozuojamos t+1 periodo Y reiksmes naudojant t+1 periodo X kintamuju reiksmes. Yt1 = predict(nn, newdata=Xt1) Norint prognozuoti sekancio laikotarpio (t+1) Y, reikes sekancio laikotarpio (t+1) X reiksmiu.Is kur gauti X kintamuju t+1 reiksmes? Sudarant modeli, X kintamiesiems gali naudoti lagines reiksmes. |
|
2014-06-05 22:14 #402587 | |
Gal kas moka kaip Matlabe naudoti isorini .dll jei nera jokiu to .dll aprasymu?
(Siuo metu .dll sekmingai veikia kitoje programoje. ) Kodas: {measure strenght of trend/brown motion/fractal}
defineDLLFunc: "tstrend.dll", Float, "TSTRENDINESS",Float,Int,Int,Int,Int; //Once begin {Call Dll and send and receive to it of the value} rt = TSTRENDINESS(C,Barnumber,Max,Min,Step); |
|
2014-06-06 10:12 #402624 | |
Sveiki, ačiū už kodą. Tai buvau padaręs. Savo kodą pateikiu žemiau. Žinau, kad forecast'ui naudojamos lag reikšmės, bet kaip tai atrodo kode?
Kalbant konkrečiau apie duomenis. Teko nemažai perksaityti staipsnių NN tema, daug kur naudoja indicatorius kainos nustatymui, todėl nusprendžiau pabandyti tokį pat variantą, bet ne kainos nustatymui, o krypties nustatymui "Y" reikšmės tai ir atspindi 0 ir 1. Be to imu ne laiko eilutes, o renko range bar'us taip pat darau prielaidą, kad range bar'ai gali eliminuoti svyravimus ir shock'us. Ačiū už laiką ir įžvalgas. ##### Part 1: Neural Networks ------------------- ## Modeling the option 0 or 1 ---- ## Step 2: Exploring and preparing the data ---- # read in data and examine structure mydata <- read.csv("data mining.csv") str(mydata) # confirm that the range is now between zero and one summary(mydata$Y) # create training and test data mydata_train <- mydata[1:773, ] mydata_test <- mydata[774:998, ] ## Step 3: Training a model on the data ---- # train the neuralnet model install.packages("neuralnet") library(neuralnet) # simple ANN with only a single hidden neuron mydata_model <- neuralnet(formula = Y ~ X1 + X2 + X3 + X4 + X5 + X6 + X7, data = mydata_train) # visualize the network topology plot(mydata_model) ## Step 4: Evaluating model performance ---- # obtain model results model_results <- compute(mydata_model, mydata_test[2:8]) # obtain predicted Y values redicted_Y <- model_results$net.result # examine the correlation between predicted and actual values cor(predicted_Y, mydata_test$Y) ## Step 5: Improving model performance ---- # a more complex neural network topology with 5 hidden neurons mydata_model2 <- neuralnet(Y ~ X1 + X2 + X3 + X4 + X5 + X6 + X7, data = mydata_train, hidden = 4) # plot the network plot(mydata_model2) # evaluate the results as we did before model_results2 <- compute(mydata_model2, mydata_test[2:8]) predicted_Y2 <- model_results2$net.result cor(predicted_Y2, mydata_test$Y) |