Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 394

 
elibrarius :
Bir ay boyunca bir şey çalıştıracaksanız - bilgisayarı çalıştırmak için kesintisiz bir güç kaynağı kullanın, bir şekilde 2 hesaplamadan sonra ışığı kapattım))
Ve GPU seçeneği için çok fazla beklemeyin, kodu yeniden yazmak daha uzun sürüyor gibi görünüyor ve eğer yazar bunu yapmadıysa, o zaman başka birinin bu görevin sonuna ulaşması olası değildir.

Böylece yazar her şeyi paralelleştirdi, şimdi sadece çalıştırmanız gerekiyor. Ve böylece 3 gün boyunca maksimumu başlattım ve ardından dürüst olmak gerekirse şu anda benim için bir rekor olan 9 girişli bir model aldım. Özellikle o kadar uzun süre optimize etmek için parçalanmıyorum. Ama dedikleri gibi. Piyasa talep ediyor. Bu nedenle, güç arayan biri, optimize edicideki veri setini ve hatta 20-30 gibi çekirdeklerde optimize etme fırsatına sahipse, çok minnettar olacağım.
 

Michael Marchukajtes :

ders çalışmak günler, haftalar

Görünüşe göre, algoritmanız, hafifçe söylemek gerekirse, optimal değil, bu kadar küçük veri kümelerinde, Knn gibi yarı-optimal olan kaba kuvvet algoritmalarını güvenle kullanabilirsiniz, algoritma Knn'den daha yavaş çalışıyorsa, muhtemelen kötüdür. ML algoritması veya kötü yapılandırılmış. Böyle bir veri setinde, tüm eğitim döngüsü ve tüm setin çalıştırılması bir saniyeden fazla sürmemelidir.
 
pantural :
Görünüşe göre, algoritmanız, hafifçe söylemek gerekirse, optimal değil, bu kadar küçük veri kümelerinde, Knn gibi yarı-optimal olan kaba kuvvet algoritmalarını güvenle kullanabilirsiniz, algoritma Knn'den daha yavaş çalışıyorsa, muhtemelen kötüdür. ML algoritması veya kötü yapılandırılmış. Böyle bir veri setinde, tüm eğitim döngüsü ve tüm setin çalıştırılması bir saniyeden fazla sürmemelidir.

yukarıda açıkladım. 100 bölüm, her bölüm 1000 dönem için eğitilir, vb. Bir nöronun bir kerelik eğitimine takıldınız ve optimize edicinin özü, uygunluğu hakkında hiçbir soru kalmayacak şekilde veri setini hesaplamaktır. Yani, mecazi olarak konuşursak, bu dosyayı yukarı ve aşağı büküyor ve yine de onu bir nöronun bir kerelik eğitimi ile karşılaştırıyorsunuz. BENİM NACİZANE FİKRİME GÖRE. Bu aslında, bir nöronu eğitmeye ek olarak, her türlü optimizasyon ve ön işlemenin gerçekleştiği ve eğitimin kendisinin yüzlerce kez başlatıldığı bir AI sistemidir. Eğer birşey....
 
Michael Marchukajtes :

yukarıda açıkladım. 100 bölüm, her bölüm 1000 dönem için eğitilir, vb. Bir nöronun bir kerelik eğitimine takıldınız ve optimize edicinin özü, uygunluğu hakkında hiçbir soru kalmayacak şekilde veri setini hesaplamaktır. Yani, mecazi olarak konuşursak, bu dosyayı yukarı ve aşağı büküyor ve yine de onu bir nöronun bir kerelik eğitimi ile karşılaştırıyorsunuz. BENİM NACİZANE FİKRİME GÖRE. Bu aslında, bir nöronu eğitmeye ek olarak, her türlü optimizasyon ve ön işlemenin gerçekleştiği ve eğitimin kendisinin yüzlerce kez başlatıldığı bir AI sistemidir. Eğer birşey....
Evet, genel olarak tüm bu eğitimlere karşıyım, ancak biriminiz kesinlikle bir tür saçmalıklarla ortaya çıktı, ben bile anlıyorum.
 
elibrarius :
MLP, vakaların tahminlerinin% 95'inde ortaya çıkıyor ... bana öyle geliyor ki doğru bisikleti yapmıyorsunuz) Alınma.

Bir hatanız var.
Tablodaki ilk sütun satır numarasıdır ve bu sütun tahminde kullanılamaz, ancak nedense yalnızca jPrediction için gereklidir.

Hedef, satırların ilk yarısı sınıf 0 ve satırların ikinci yarısı sınıf 1 olacak şekilde dağıtılır. Böylece nöron, satır sayısı 228'den küçükse, bunun sınıf 0 olduğunu hatırlayacaktır, aksi takdirde. 1. sınıftır.

 
Dr. tüccar :

Bir hatanız var.
Tablodaki ilk sütun satır numarasıdır ve bu sütun tahminde kullanılamaz, ancak nedense yalnızca jPrediction için gereklidir.

Hedef, satırların ilk yarısı sınıf 0 ve satırların ikinci yarısı sınıf 1 olacak şekilde dağıtılır. Böylece nöron, satır sayısı 228'den küçükse, bunun sınıf 0 olduğunu hatırlayacaktır, aksi takdirde. 1. sınıftır.

Ve bu arada, evet. Sadece bir sayı olduğunun farkında değildim.

Onsuz Saklanacak girdiler: 4,50,53,59,61,64,92,98,101,104,

Eğitimde ortalama hata (%60.0) segmenti =0.269 (%26.9) nLearns=2 NGrad=7376 NHess=0 NCholesky=0 codResp=2
Doğrulama sitesinde ortalama hata (%20.0) =0.864 (%86.4) nLearns=2 NGrad=7376 NHess=0 NCholesky=0 codResp=2
Testte ortalama hata (%20.0) alanı =0.885 (%88.5) nLearns=2 NGrad=7376 NHess=0 NCholesky=0 codResp=2

Açıkça bir yeniden eğitim. Bu nedenle, girdilerin başka bir taramasının yapılması gereklidir.

Girdilerin ağırlığı ile ayıklanabilir mi? Konunun ilk mesajındaki görev için nasıl yaptınız...

Burada eklediğiniz R betiğini yeniden yazmaya çalışıyorum, böylece adları ve sütun sayısını belirleyecek ... ama R bilgisi yeterli değil.

 
elibrarius :

Burada eklediğiniz R betiğini yeniden yazmaya çalışıyorum, böylece adları ve sütun sayısını belirleyecek ... ama R bilgisi yeterli değil.


O zamanlar R'yi yeni öğrenmeye başlıyordum, komut dosyası neredeyse tamamen çıngırakta (R'de veri madenciliği için görsel bir ortam) oluşturuldu, bu yüzden bu kadar karmaşık ve her durum için ayarlanmış.


Bu

crs$ input <- c( "input_1" , "input_2" , "input_3" , "input_4" ,
     "input_5" , "input_6" , "input_7" , "input_8" ,
     "input_9" , "input_10" , "input_11" , "input_12" ,
     "input_13" , "input_14" , "input_15" , "input_16" ,
     "input_17" , "input_18" , "input_19" , "input_20" )

crs$numeric <- c( "input_1" , "input_2" , "input_3" , "input_4" ,
     "input_5" , "input_6" , "input_7" , "input_8" ,
     "input_9" , "input_10" , "input_11" , "input_12" ,
     "input_13" , "input_14" , "input_15" , "input_16" ,
     "input_17" , "input_18" , "input_19" , "input_20" )

ile değiştirilmesi gerekiyor

crs$ input <- colnames(crs$dataset)[-ncol(crs$dataset)]

crs$numeric <- crs$ input

Ve normal gibi olmalı.


Genel olarak kötü bir yaklaşım var, girdilerin önemini bu şekilde belirlemeye gerek yok. Nedense o zaman işe yaradı, ama bir daha bana hiç yardımcı olmadı.

 

Tahmin edicilerin önemini aşağıdaki gibi belirlemek daha iyidir.

 library (vtreat)

sourceTable <- read.table( "BuySell.csv" , sep= ";" , header = TRUE , stringsAsFactors = FALSE )

#Эта строка кода относится только к конкретно этому файлу.
этом csv первая колонка и первая строка специально заполнены для конкретной модели, и тут не нужны. Удалить.
#для обычных csv файлов такую команду выполнять не нужно.
sourceTable <- sourceTable[- 1 ,- 1 ]

#число колонок
sourceTable_ncol <- ncol(sourceTable)

#Оценка для классификации, только для двух классов.
#Outcometarget должен быть равен значению одного из классов.
#На выбор или эта функция designTreatmentsC, или designTreatmentsN, или designTreatmentsZ (ниже, закоменчены)
#Взаимная корреляция предкиторов учитывается только в designTreatmentsC, и у повторяющихся или похожих предикторов оценка будет понижаться
set.seed( 0 )
treats <- designTreatmentsC(dframe = sourceTable,
                            varlist = colnames(sourceTable)[-sourceTable_ncol],
                            outcomename = colnames(sourceTable)[sourceTable_ncol],
                            outcometarget = 1 ,
                            verbose = FALSE
)

# #оценка для регрессии или если больше двух классов
# sourceTable[,sourceTable_ncol] <- as.numeric(sourceTable[,sourceTable_ncol])
# set.seed( 0 )
# treats <- designTreatmentsN(dframe = sourceTable,
#                             varlist = colnames(sourceTable)[-sourceTable_ncol],
#                             outcomename = colnames(sourceTable)[sourceTable_ncol],
#                             verbose = FALSE
# )

# #Оценка предикторов без учёта цели.
# set.seed( 0 )
# treats <- designTreatmentsZ(dframe = sourceTable,
#                             varlist = colnames(sourceTable)[-sourceTable_ncol],
#                             verbose = FALSE
# )
# 




#табличка только с названием колонки и её оценкой важности
resultTable <- treats$scoreFrame[,c( "varName" , "sig" )]

#сортировка
resultTable <- resultTable[order(resultTable$sig),]

#согласно общему правилу, оценка предиктора (sig) должна быть меньше 1 /<общее число предикторов>
#чем оценка меньше, тем лучше
resultTable$testPassed <- resultTable$sig < 1 /(sourceTable_ncol- 1 )

#для создания модели и прогноза лучше использовать только те предкторы у которых testPassed == TRUE
resultTable
 

Önem değerlendirmesinin sonuçları aşağıdaki gibidir. Tablodaki yordayıcı ne kadar yüksekse o kadar iyidir. Yalnızca VVolum6, VDel1, VVolum9, VQST10 testi geçti.

Çıngırakta, bu 4 öngörücü üzerinde aynı anda 6 model oluşturabilirsiniz ve SVM, doğrulama ve test verilerinde yaklaşık %55 doğruluk gösterir. Fena değil.

 varName sig testiPassed
182 VVolum6_catB 3.220305e-06 DOĞRU
28 VDel1_catB 1.930275e-03 DOĞRU
186 VVolum9_catB 5.946373e-03 DOĞRU
143 VQST10_catB 8.458616e-03 DOĞRU
126 VQST_catB 1.843740e-02 YANLIŞ
23 Del11_catP 2.315340e-02 YANLIŞ
147 Volum_catP 2.331145e-02 YANLIŞ
24 Del11_catB 2.429723e-02 YANLIŞ
154 Volum3_catB 2.985041e-02 YANLIŞ
12 Del5_catP 3.689965e-02 YANLIŞ
120 QST9_catB 4.092966e-02 YANLIŞ
130 VQST2_catB 4.136235e-02 YANLIŞ
163 Volum9_catP 4.299684e-02 YANLIŞ
109 QST2_catB 4.311742e-02 YANLIŞ
32 VDel3_catB 4.704981e-02 YANLIŞ
11 Del5_lev_x.1 4.725332e-02 YANLIŞ
19 Del9_catB 5.316355e-02 YANLIŞ
13 Del5_catB 5.472078e-02 YANLIŞ
178 VVolum4_catB 5.705614e-02 YANLIŞ
191 VVolum11_catB 5.749245e-02 YANLIŞ
148 Volum_catB 6.281945e-02 YANLIŞ
181 VVolum6_catP 6.534487e-02 YANLIŞ
31 VDel3_catP 6.911261e-02 YANLIŞ
74 VST11_catB 7.709038e-02 YANLIŞ
134 VQST4_catB 9.536026e-02 YANLIŞ
141 VQST9_catB 9.536026e-02 YANLIŞ
162 Volum7_catB 9.589108e-02 YANLIŞ
107 QST1_catB 9.589108e-02 YANLIŞ
2 Del_catB 1.049703e-01 YANLIŞ
151 Volum2_catP 1.071203e-01 YANLIŞ
60 ST11_catB 1.076877e-01 YANLIŞ
43 VDel10_catP 1.201338e-01 YANLIŞ
184 VVolum7_catB 1.286891e-01 YANLIŞ
121 QST10_catP 1.464880e-01 YANLIŞ
38 VDel6_catB 1.479268e-01 YANLIŞ
173 VVolum2_catP 1.663695e-01 YANLIŞ
8 Del3_catB 1.703652e-01 YANLIŞ
10 Del4_catB 1.755150e-01 YANLIŞ
30 VDel2_catB 1.781568e-01 YANLIŞ
37 VDel6_catP 1.797087e-01 YANLIŞ
1 Del_catP 1.995316e-01 YANLIŞ
112 QST4_catP 2.104902e-01 YANLIŞ
15 Del6_catB 2.132517e-01 YANLIŞ
27 VDel1_catP 2.313270e-01 YANLIŞ
41 VDel9_catP 2.316597e-01 YANLIŞ
100 VAD11_catP 2.320692e-01 YANLIŞ
144 VQST11_lev_x.100 2.374690e-01 YANLIŞ
123 QST11_catP 2.576971e-01 YANLIŞ
145 VQST11_catP 2.626389e-01 YANLIŞ
104 QST_catP 2.716664e-01 YANLIŞ
160 Volum6_catB 2.776463e-01 YANLIŞ
115 QST6_catP 3.034207e-01 YANLIŞ
137 VQST6_catB 3.060767e-01 YANLIŞ
102 QST_lev_x..100 3.061104e-01 YANLIŞ
36 VDel5_catB 3.149911e-01 YANLIŞ
99 VAD11_lev_x.0 3.340276e-01 YANLIŞ
17 Del7_catB 3.431346e-01 YANLIŞ
16 Del7_catP 3.819094e-01 YANLIŞ
3 Del1_catP 3.912432e-01 YANLIŞ
152 Volum2_catB 3.938369e-01 YANLIŞ
44 VDel10_catB 3.965567e-01 YANLIŞ
5 Del2_catP 4.363645e-01 YANLIŞ
20 Del10_catP 4.409282e-01 YANLIŞ
171 VVolum1_catP 4.550495e-01 YANLIŞ
169 VVolum_catP 4.682515e-01 YANLIŞ
46 VDel11_catP 4.693330e-01 YANLIŞ
86 AD11_catP 4.742976e-01 YANLIŞ
187 VVolum10_catP 4.963890e-01 YANLIŞ
132 VQST3_catB 5.291401e-01 YANLIŞ
14 Del6_catP 5.310502e-01 YANLIŞ
124 QST11_catB 5.355186e-01 YANLIŞ
177 VVolum4_catP 5.542335e-01 YANLIŞ
150 Volum1_catB 5.552986e-01 YANLIŞ
39 VDel7_catP 5.589613e-01 YANLIŞ
185 VVolum9_catP 5.589901e-01 YANLIŞ
59 ST11_catP 5.669251e-01 YANLIŞ
188 VVolum10_catB 5.680089e-01 YANLIŞ
21 Del10_catB 5.706515e-01 YANLIŞ
9 Del4_catP 5.708557e-01 YANLIŞ
142 VQST10_catP 5.725309e-01 YANLIŞ
113 QST4_catB 5.856434e-01 YANLIŞ
119 QST9_catP 5.922916e-01 YANLIŞ
131 VQST3_catP 6.033950e-01 YANLIŞ
168 Volum11_catB 6.156530e-01 YANLIŞ
155 Volum4_catP 6.196455e-01 YANLIŞ
170 VVolum_catB 6.244269e-01 YANLIŞ
180 VVolum5_catB 6.279081e-01 YANLIŞ
87 AD11_catB 6.372863e-01 YANLIŞ
153 Volum3_catP 6.641713e-01 YANLIŞ
73 VST11_catP 6.701117e-01 YANLIŞ
172 VVolum1_catB 6.707140e-01 YANLIŞ
183 VVolum7_catP 6.771533e-01 YANLIŞ
55 ST6_catB 6.780044e-01 YANLIŞ
42 VDel9_catB 6.925700e-01 YANLIŞ
167 Volum11_catP 6.973599e-01 YANLIŞ
179 VVolum5_catP 7.093678e-01 YANLIŞ
125 VQST_catP 7.189573e-01 YANLIŞ
146 VQST11_catB 7.195859e-01 YANLIŞ
101 VAD11_catB 7.250369e-01 YANLIŞ
25 VDel_catP 7.310211e-01 YANLIŞ
108 QST2_catP 7.426980e-01 YANLIŞ
29 VDel2_catP 7.486648e-01 YANLIŞ
136 VQST6_catP 7.529104e-01 YANLIŞ
103 QST_lev_x.0 7.600202e-01 YANLIŞ
22 Del11_lev_x.0 7.600202e-01 YANLIŞ
47 VDel11_catB 7.619000e-01 YANLIŞ
140 VQST9_catP 7.684919e-01 YANLIŞ
164 Volum9_catB 7.743767e-01 YANLIŞ
4 Del1_catB 7.796789e-01 YANLIŞ
158 Volum5_catB 7.804397e-01 YANLIŞ
117 QST7_catP 7.843659e-01 YANLIŞ
26 VDel_catB 7.904299e-01 YANLIŞ
166 Volum10_catB 7.936121e-01 YANLIŞ
165 Volum10_catP 8.017445e-01 YANLIŞ
6 Del2_catB 8.104867e-01 YANLIŞ
190 VVolum11_catP 8.133908e-01 YANLIŞ
45 VDel11_lev_x.0 8.231377e-01 YANLIŞ
189 VVolum11_lev_x.0 8.231377e-01 YANLIŞ
105 QST_catB 8.431046e-01 YANLIŞ
174 VVolum2_catB 8.506238e-01 YANLIŞ
81 AD6_catP 8.552222e-01 YANLIŞ
94 VAD6_catP 8.552222e-01 YANLIŞ
110 QST3_catP 8.560370e-01 YANLIŞ
35 VDel5_catP 8.633955e-01 YANLIŞ
122 QST10_catB 8.651814e-01 YANLIŞ
18 Del9_catP 8.816989e-01 YANLIŞ
34 VDel4_catB 8.909886e-01 YANLIŞ
176 VVolum3_catB 8.911481e-01 YANLIŞ
159 Volum6_catP 9.086195e-01 YANLIŞ
106 QST1_catP 9.218420e-01 YANLIŞ
133 VQST4_catP 9.218420e-01 YANLIŞ
70 VST9_catP 9.223350e-01 YANLIŞ
129 VQST2_catP 9.276503e-01 YANLIŞ
54 ST6_catP 9.371128e-01 YANLIŞ
161 Volum7_catP 9.634046e-01 YANLIŞ
138 VQST7_catP 9.991105e-01 YANLIŞ
116 QST6_catB 9.992413e-01 YANLIŞ
7 Del3_catP 9.993376e-01 YANLIŞ
33 VDel4_catP 9.994999e-01 YANLIŞ
40 VDel7_catB 9.995014e-01 YANLIŞ
157 Volum5_catP 9.995728e-01 YANLIŞ
156 Volum4_catB 9.995799e-01 YANLIŞ
118 QST7_catB 9.995921e-01 YANLIŞ
139 VQST7_catB 9.995937e-01 YANLIŞ
175 VVolum3_catP 9.996133e-01 YANLIŞ
149 Volum1_catP 9.996479e-01 YANLIŞ
48 ST_catB 1.000000e+00 YANLIŞ
49 ST1_catB 1.000000e+00 YANLIŞ
50 ST2_catB 1.000000e+00 YANLIŞ
51 ST3_catB 1.000000e+00 YANLIŞ
52 ST4_catB 1.000000e+00 YANLIŞ
53 ST5_catB 1.000000e+00 YANLIŞ
56 ST7_catB 1.000000e+00 YANLIŞ
57 ST9_catB 1.000000e+00 YANLIŞ
58 ST10_catB 1.000000e+00 YANLIŞ
61 VST_catB 1.000000e+00 YANLIŞ
62 VST1_catB 1.000000e+00 YANLIŞ
63 VST2_catB 1.000000e+00 YANLIŞ
64 VST3_catB 1.000000e+00 YANLIŞ
65 VST4_catB 1.000000e+00 YANLIŞ
66 VST5_catB 1.000000e+00 YANLIŞ
67 VST6_catP 1.000000e+00 YANLIŞ
68 VST6_catB 1.000000e+00 YANLIŞ
69 VST7_catB 1.000000e+00 YANLIŞ
71 VST9_catB 1.000000e+00 YANLIŞ
72 VST10_catB 1.000000e+00 YANLIŞ
75 AD_catB 1.000000e+00 YANLIŞ
76 AD1_catB 1.000000e+00 YANLIŞ
77 AD2_catB 1.000000e+00 YANLIŞ
78 AD3_catB 1.000000e+00 YANLIŞ
79 AD4_catB 1.000000e+00 YANLIŞ
80 AD5_catB 1.000000e+00 YANLIŞ
82 AD6_catB 1.000000e+00 YANLIŞ
83 AD7_catB 1.000000e+00 YANLIŞ
84 AD9_catB 1.000000e+00 YANLIŞ
85 AD10_catB 1.000000e+00 YANLIŞ
88 VAD_catB 1.000000e+00 YANLIŞ
89 VAD1_catB 1.000000e+00 YANLIŞ
90 VAD2_catB 1.000000e+00 YANLIŞ
91 VAD3_catB 1.000000e+00 YANLIŞ
92 VAD4_catB 1.000000e+00 YANLIŞ
93 VAD5_catB 1.000000e+00 YANLIŞ
95 VAD6_catB 1.000000e+00 YANLIŞ
96 VAD7_catB 1.000000e+00 YANLIŞ
97 VAD9_catB 1.000000e+00 YANLIŞ
98 VAD10_catB 1.000000e+00 YANLIŞ
111 QST3_catB 1.000000e+00 YANLIŞ
114 QST5_catB 1.000000e+00 YANLIŞ
127 VQST1_catP 1.000000e+00 YANLIŞ
128 VQST1_catB 1.000000e+00 YANLIŞ
135 VQST5_catB 1.000000e+00 YANLIŞ
 
elibrarius :
MLP, vakaların tahminlerinin% 95'inde ortaya çıkıyor ... bana öyle geliyor ki doğru bisikleti yapmıyorsunuz) Alınma.
Aynı zamanda kendi bisikletimi de yapıyorum, ancak onlarca yıllık kanıtlanmış MLP'ye dayanarak (dedikleri gibi, modası geçmiş ve daha havalı bir şey üzerinde çalışmamız gerekiyor).


Alglib'deki karar ağaçlarını tekrar deneyin, daha hızlı kabul edilirler ve doğruluk MLP'den daha iyidir. Diplerning ayrıca daha hızlı hesaplar, ancak artık alglib'de değil

Önemli olan hız/kalite oranı, sayarken bir hafta hatta bir gün hatta bir saat beklemenin ne anlamı var ki..bu yüzden en uygun kombinasyonu asla bulamazsınız) Model birkaç saniye eğitilmelidir, o zaman parametreleri veya tahmin edicileri otomatik olarak seçmek için genetiği kullanabilirsiniz, o zaman bu gerçek AI, aksi halde çöp)