Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 532

 
anónima:

y transponer según sea necesario en función de la dimensión de la matriz

Basta con utilizar las dos funciones kohonen::classvec2classmat, kohonen::classmat2classvec. Sólo tienes que copiar esas funciones a ti mismo y utilizarlas cuando las necesites.

> classvec2classmat
function (yvec) 
{
    if (!is.factor(yvec)) 
        yvec <- factor(yvec)
    nclasses <- nlevels(yvec)
    outmat <- matrix(0, length(yvec), nclasses)
    dimnames(outmat) <- list(NULL, levels(yvec))
    for (i in 1:nclasses) outmat[which(as.integer(yvec) == i), 
        i] <- 1
    outmat
}
> classmat2classvec
function (ymat, threshold = 0) 
{
    class.names <- dimnames(ymat)[[2]]
    if (is.null(class.names)) 
        class.names <- 1:ncol(ymat)
    classes <- apply(ymat, 1, function(x) which(x == max(x))[1])
    classes[apply(ymat, 1, max) < threshold] <- NA
    factor(class.names[classes], levels = class.names)
}

Buena suerte

 
elibrarius:

Otro problema con R.

En un ordenador está bien, en el otro hay unos requisitos mayores de corrección del código.

Por ejemplo

darch.unitFunction = linearUnit - provocó el bloqueo de Rterm.exe

cambió a

darch.unitFunction ="linearUnit"

este punto comenzó a pasar antes del siguiente error.

También tuve que cambiar library(darch) por require(darch)

Ahora es el aprendizaje en sí lo que es un fastidio.

R_NN <- darch(
darch = NULL,
x = MatrixLearnX ,
y = MatrixLearnY ,
paramsList = params
)

He probado muchas variantes, Rterm.exe siempre se bloquea

¿Tiene R algún tipo de control de nivel de error? ¿Quizás en el segundo PC terminé con un nivel de error para resolver al detenerme en cada advertencia?

En ambos ordenadores he instalado R con la configuración por defecto, he instalado todos los paquetes.
¿Cómo lo arreglo?

Toma una instantánea de la sesión en uno y otro PC y compáralas. Por ejemplo

> sessionInfo()
R version 3.4.2 (2017-09-28)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils    
[5] datasets  methods   base     

other attached packages:
[1] kohonen_3.0.4        RevoUtils_10.0.6    
[3] RevoUtilsMath_10.0.1

loaded via a namespace (and not attached):
[1] MASS_7.3-47    compiler_3.4.2
[3] tools_3.4.2    Rcpp_0.12.13  

buena suerte

 
Vladimir Perervenko:

Toma una instantánea de la sesión en uno y otro ordenador y compáralas. Por ejemplo

buena suerte

No por ese método, pero lo descubrí, más bien por ensayo y error.
Gracias

 

Por cierto, he visto la expresión "hardcode" una red.
Aparentemente es para obtener la función con los pesos y compensaciones y calcular las salidas.

Por ejemplo, cómo obtener los pesos de darch para la primera capa: print(NN@layers[[1]]$weights)

¿Existe algún script preparado para crear dicha función codificada?

 

Hizo una funcionalidad básica para el comercio de criptomonedas a través de R. El intercambio de criptomonedas es bittrex, una vez pasado todos los controles allí, así que ahora podría comprobar el código en acción de una vez.
En el código debe cambiar los valores API_KEY y API_SECRET a lo que el intercambio le dará personalmente en la configuración del perfil.

Menos de este intercambiador - su api no tiene ninguna función para obtener los valores ohlc, las garrapatas tienen que recoger ellos mismos y por ellos para construir barras ohlc (o descargarlos de los recursos externos). Y para acceder a la api y trolear a través de ella (y a través de R) es necesario pasar la verificación de identidad, y activar el 2fa.

Probablemente debería encontrar un intercambio que da ohlc a través de api, y no requiere la verificación de identidad para el comercio, todos los intercambios de trabajo con api en general es similar, esta secuencia de comandos puede ser fácilmente rehecho para otro.

Archivos adjuntos:
 
Maxim Dmitrievsky:

Pero sí, el 90% es minería de datos 10% selección de modelos

¡+100!
 
Yuriy Asaulenko:

Así que pronto tendrás que tener una granja minera para las estrategias de minería.


Pues bien, ahora la situación es la siguiente: el bot que hice antes tiene una óptica muy chula a poca distancia, en la parte delantera funciona al 50/50, es decir, si el mercado no ha cambiado sube, si ha cambiado baja. Se puede modificar, se pueden colar más neuronas de Reshetov, o hay una versión basada en la lógica difusa, es aún más brusca, pero aumenta los pesos optimizables... así que básicamente si lo entreno en la nube durante un día y pago unas... no sé... 100 libras por él, probablemente debería durar mucho y dar buenos beneficios, pero no estoy mentalmente preparado para entrenamientos tan largos. La segunda variante es un sistema de auto-optimización, aún no está listo, puede volver a entrenarse sin optimizador. Me gusta más esta variante, pero aún no está claro :)

 
Maxim Dmitrievsky:

Pues bien, ahora la situación es la siguiente: el bot que hice antes es muy chulo óptimo en una distancia pequeña, en el mercado a plazo funciona al 50/50, es decir, si el mercado no ha cambiado sube, si ha cambiado baja. Se puede modificar, se pueden colar más neuronas de Reshetov, o hay una versión basada en la lógica difusa, es aún más brusca, pero aumenta los pesos optimizables... así que básicamente si lo entreno en la nube durante un día y pago unas... no sé... 100 libras por él, probablemente debería durar mucho y dar buenos beneficios, pero no estoy mentalmente preparado para entrenamientos tan largos. La segunda opción es un sistema de auto-optimización, aún no está listo, se reentrenará sin el optimizador ... Me gusta más esta variante, pero aún no está claro :)

No entiendo qué es el optimizador.

Cuando escucho optimizador, tengo una mala asociación con un probador-optimizador de MT.

 
Yuriy Asaulenko:

No entiendo, ¿qué es un optimizador?

Cuando oigo optimizador, tengo una mala asociación con un probador-optimizador de MT.


sí, ¿por qué no es bueno? MO es, en esencia, la optimización antes de que se inventara la IA.

La genética también es un MO

 
Maxim Dmitrievsky:

sí, ¿por qué no es bueno? MO es esencialmente la optimización hasta que se inventa la IA.

La genética también forma parte de la IA.

La optimización es una cuestión de criterios. La optimización según el beneficio máximo no es un criterio muy bueno. Al mismo tiempo, no hay ninguna razón para creer que en el futuro funcionará de alguna manera, lo que vemos a menudo en la práctica, en el foro en particular.