Discusión sobre el artículo "Los bosques aleatorios predicen las tendencias" - página 12
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Para: CyberCortex
Perdona SanSanych que me meta.
No podía dejar pasar tanta altanería y agresividad poco profesional.
Veamos una por una las afirmaciones del autor en su descripción del programa de aplicación
Cita: "Ventajas de CyberCortex en comparación con los análogos existentes:
El algoritmo utilizado. Para muchos operadores, las tecnologías del campo de la inteligencia artificial empiezan y terminan con el manido tema de las redes neuronales clásicas. Pero el algoritmo de bousting implementado en CyberCortex es una herramienta un orden de magnitud más potente y moderna(?), porque: "
Objeción:
¿De dónde viene esta opinión despectivamente grandilocuente de muchos traders? Generalmente este campo se llama Aprendizaje Automático, la Inteligencia Artificial es algo diferente. Estoy seguro de que muchos traders conocen muchos tipos de redes neuronales de las que ni siquiera han oído hablar (redes profundas, redes convolucionales y otras modernas). El tema de las redes neuronales está agotado para aquellos que se han limitado a estudiar MLP . Me apresuro a decepcionarte, el tema de las redes neuronales ha recibido ahora un segundo aliento tras el desarrollo de los métodos de aprendizaje profundo y para los que saben y pueden hacerlo, está lejos de ser un tema cerrado. Además, conocemos muchos otros algoritmos de clasificación que están implementados en numerosos paquetes del lenguaje R.
El algoritmo bousting en diversas modificaciones se conoce desde hace bastante tiempo (1996) y no es en absoluto más potente que el algoritmo de redes neuronales. Por cierto, debería decirnos qué algoritmo utiliza su programa. En un vistazo rápido a los paquetes R -
"ADA"- adaptive stochastic bousting. uno de mis favoritos, se implementan tres modificaciones del algoritmo original: Gentle-, Logit-, y Real AdaBoost
.
"adabag" - el paquete utiliza los algoritmos multiclase Adaboost.M1(Freund and Schapire's), AdaBoost-SAMME(Zhu et al., 2009) , y el algoritmo Bagging de Breiman ;
"boost" - contiene un conjunto de métodos de boosting como - 'BagBoost', 'LogitBoost', 'AdaBoost' y 'L2Boost' complementados por la preselección de características (predictores) mediante el estadístico de prueba de Wilcoxon ;
pga: contiene un conjunto de algoritmos que combinan AdaBoost y Random Forest con un algoritmo evolutivo.
Si tiene un algoritmo original desconocido en el mundo, describa al menos en términos generalesla diferencia con los existentes y cualquier ventaja sobre ellos , y sería deseable un enlace a la descripción.
Como puede ver, la elección es bastante amplia.
Para los que no están en el tema. "Busting" (amplificación) - un método de remuestreo propuesto originalmente pararesolver problemas en áreas de la ciencia, donde inicialmente el número de ejemplos (resultados de experimentos) para utilizarlos en cálculos estadísticos eran pocos, para extraer otros nuevos es imposible o muy caro. La esencia del método consiste en extraer del pequeño conjunto inicial una muestra de menor tamaño formada aleatoriamente.Esteprocedimiento se repitemuchas veces y, como resultado, se obtiene una muestra total suficientemente grande, que luego se utiliza en los cálculos estadísticos.
En primer lugar. El mercado de divisas no es un caso de "déficit de datos". Al contrario, es un caso de "abundancia de datos".
En segundo lugar. La largaexperiencia deinvestigación y aplicación de bousting y crossvalidation en la práctica y en las universidades ha demostrado que no es conveniente utilizar estos métodos en el proceso de formación, es decir, cuando se selecciona un modelo porerrorinterno. Pero son muy útiles en la etapa de evaluación del modelo entrenado, es decir, obteniendo el error externo. Por lo tanto, para nuestro caso de "abundancia de datos", dividir en entrenar/validar/probar durante el entrenamiento es lo ideal. Hay muchas otras sutilezas que deben tenerse en cuenta en el proceso de selección de datos y preentrenamiento y de las que depende en gran medidael resultado de la modelización, pero éste es un gran tema aparte.
Desde mi experiencia de largos experimentos con ADA puedo decir que a veces los resultados son excelentes, a veces repugnantes = muy inestables.
Cita: "Elalgoritmo no requiere reducir la dimensionalidad de los datos de entrada y averiguar qué características son informativas y cuáles no. Al contrario, cuantos más datos de entrada haya, mayor será la probabilidad de una clasificación correcta. Las características no informativas se descartan automáticamente".
Pregunta: ¿cómo se eliminanmágicamente las características poco informativas? La determinación(evaluación) dela importancia de los predictores está incluida en todos los algoritmos de árboles de decisión, pero se utilizan muchos criterios para determinar la importancia y no todos dan resultados inequívocos. ¿Cómo se resuelve en el programa?
Cita: "Elalgoritmo no requiere ninguna normalización preliminar de los datos ni ningún tipo de manipulación previa. Todos los datos se reducen automáticamente a varianza unitaria y expectativa matemática cero".
El único algoritmo que realmente no requiere ningún preprocesamiento esRandomForest. Todos los demás requieren varios preprocesamientos. Obviamente, ¿quieres decir que tu programa hace el proceso de estandarización (x menos la media dividida por la desviación estándar) por el usuario? No estoy seguro de que sea una buena solución, ya que hay al menos una docena de métodosde preprocesamiento diferentesy hay que determinar cuál es el mejor en cada caso.
Cita: " Elalgoritmo, a diferencia de las redes neuronales, no requiere ajustar los parámetros de entrenamiento para obtener el resultado de clasificación óptimo."
No es cierto. Cualquier algoritmo de boustingconocido tiene al menos dos parámetros que hay que ajustar para obtener el mejor resultado.
Cita:"El algoritmo es prácticamente inmune a la tendencia al sobreentrenamiento".
Afirmación falsa. Cualquier algoritmo de aprendizaje automático es susceptible a esta enfermedad: el sobreaprendizaje. La reducción del riesgo de obtener un modelo sobreentrenado se consigue mediante la regularización. Hoy en día se conocen varios métodos de regularización que se utilizan con éxito, incluso en algoritmos de bousting.
Cita:"El algoritmo permite clasificar los datos en cualquier número de clases".
Esto no es un logro de este algoritmo. Hoy en día, casi todos los algoritmos de aprendizaje automático lo hacen.
Cita:"La peculiaridad del algoritmo implementado es que si hay patrones en los datos, se encontrarán. Por el contrario, si no hay patrones en los datos, entonces las predicciones del programa no serán mejores que un simple lanzamiento de moneda, lo cual es lógico"
Puede que le sorprenda, pero todos los algoritmos tienen esta característica.
Conclusión: el incomprensible algoritmo que usted ofrece por dinero se puede implementar de forma transparente, sencilla y en diversas variantes en el lenguaje R y tenga en cuenta que es absolutamente libre, es decir, gratuito. Este programa tendrá entre 10 y 15 líneas. Esta es la primera. La segunda ventaja innegable del lenguaje R es que está desarrollado y respaldado por la comunidad científica mundial (prácticamente todas las universidades del mundo) y ahora por los gigantes del negocio del software. Microsoft ha lanzado un servicio en la nube "Azure "con Microsoft Azure Machine Learning Studio" que permite realizar todas las etapas de creación, entrenamiento y evaluación del modelo en la nube y posteriormente obtener predicciones enviando datos al servicio para su modelo. El servicio está basado íntegramente en el lenguaje R y dispone de una interfaz gráfica que permite reducir el proceso a "dibujar" un cuadro (estoy simplificando, claro). Si antes el lenguaje era un estándar de facto en los círculos de investigación, ahora prácticamente se ha convertido en tal en el ámbito aplicado e industrial.
Una última cosa. No estoy en contra de que se monetice el trabajo plasmado en el programa. Me parece bien. Estoy en contra de que atribuya cualidades inexistentes o exageradas al producto con fines publicitarios. Parece poco profesional.
Tenga cuidado. Como decía el clásico.
Buena suerte
¡Hola!
"Generalmente, este campo se llama Aprendizaje Automático, la Inteligencia Artificial es un poco diferente".- El aprendizaje automático es una subsección de la inteligencia artificial. Pero seguro que lo has olvidado. Sucede que...
He oído hablar de nuevos tipos de redes neuronales:) Y, si te has fijado, en la descripción de mi programa pone"redes neuronales clásicas ", no todas las redes. Por clásicas entiendo MLP, sus derivadas, red de Hopfield, red probabilística y otras.
"¿De dónde viene esta opinión despectivamente grandilocuente de muchos operadores?". - Esta mega hiperimportante opinión viene del hecho de que la gran mayoría de traders que intentan utilizar tecnologías de inteligencia artificial débil utilizan redes neuronales clásicas .
"Por cierto, sería necesario expresar con qué algoritmo específico funciona su programa".- Adaptive bousting of single-level decision trees (stumps). Está escrito ahí. Como lo implementé desde cero yo mismo, sin ver ningún modelo delante de mí, y no había ninguna descripción normal en Internet, apliqué algunas de mis heurísticas al desarrollarlo.
"Para los que no lo sepan. "Boosting es un método de remuestreo propuesto por..." - No sé de dónde has copiado esto, pero creo que lo que describe esta definición no es boosting, sino bootstrap:) Boosting es potenciar clasificadores simples. En bousting, no se obtiene una muestra grande N de una muestra pequeña m. En bousting, para cada clasificador simple subsiguiente, los ejemplos mal clasificados por el anterior se muestrean preferentemente. El número de ejemplos es siempre igual al número original de ejemplos. Después de esto, es especialmente gracioso leer tu serio:"Para los que están fuera de onda". xD
"En primer lugar. El mercado de divisas no es un caso de "escasez de datos". Al contrario, es un caso de "abundancia de datos"." - Bueno, depende del lado desde el que lo mires. Si te refieres a las cotizaciones de forex y a un montón de indicadores "pseudomatemáticos" que huelen a viejo y derivados varios de ellos, entonces sí, no hay escasez. Pero como te has ido por otros derroteros, confundiendo accidentalmente bousting con bootstrap, tu máxima quedará desoída, pues no tengo ni idea de qué tipo de respuesta esperas.
"La largaexperiencia en lainvestigación y aplicación de bousting y crossvalidation en la práctica y en las universidades ha demostrado..." - ¿en serio? Aburrido...
"De mi experiencia de largos experimentos con ADA puedo decir- a veces grandes resultados, a veces repugnantes = muy inestable " ". - Tu experiencia no es un axioma para nosotros, tal vez mezclaste algunos botones allí o algo, similar a la confusión justo arriba. No se.
"¿Cómo se resuelve esto en el software? " - todo clasificador simple se centra en la característica que produce el menor error de clasificación. Si la característica no es informativa, el error es alto. Ésa es la magia del asunto. Desafiemos esta lógica con más tonterías científicas sobre cómo las universidades..... No, en serio, escribe algo.
" No estoy seguro de que sea una buena solución": ¿no crees que estás siendo demasiado categórico? Me parece que el desarrollador de software tiene un poco más de criterio sobre lo que hay que añadir para que funcione como está previsto.
"No es cierto. Cualquier algoritmo de boustingconocido tiene al menos dos parámetros que necesitan ser ajustados para obtener un mejor resultado." - ¿qué parámetros tienes ahí en R que hay que afinar? Tomo nota...
"Cita:"El algoritmo es virtualmente inmune a la tendencia al sobreentrenamiento. "Falsa afirmación...."" - Me gustan mucho tus afirmaciones :). Bueno, en primer lugar, dice "prácticamente". En ruso significa "casi". Pero si hay un patrón estable en los datos, por ejemplo, como en el experimento con el reconocimiento de matrículas de coche, entonces sí, el algoritmo no se reentrena. En la muestra de entrenamiento el error llega a cero, y en la muestra de prueba el error permanece constante, alrededor del 1%. ¿Las preguntas?
"Este no es el logro de este algoritmo. Hoy en día, casi todos los algoritmos de aprendizaje automático hacen esto". - puedes decirme que es una desventaja. Es una ventaja comparado con un clasificador binario. ¿O no lo crees?
"Puede que te sorprenda, pero todos los algoritmos tienen esta característica".- Lee atentamente, "si hay patrones en los datos, se encontrarán". Ese es mi énfasis. El principal problema de los algoritmos de aprendizaje automático es cuántos patrones se encontrarán. Mi programa está bien con esto. Por tu lógica, resulta que teniendo algún MLP, la gente no debería desarrollar otros algoritmos, porque un perseptrón multicapa es un algoritmo de aprendizaje automático, y dices que"todos los algoritmos tienen esta característica".
"Un algoritmo oscuro que ofreces por dinero" - No estoy ofreciendo un algoritmo, sino un programa. No tengo nada en contra del lenguaje R. Pero ya ves cuál es el punto: no todas las personas pueden y quieren entender la lógica y la sintaxis del lenguaje de programación, entender la configuración de los algoritmos, convertir algunos archivos y conectarse a la terminal a través de diversas muletas para utilizar el resultado de los cálculos. Si alguien puede hacer todo eso, le felicito. Algunas personas sólo necesitan que funcione "nada más sacarlo de la caja". Cualquiera diría que voy detrás de ti y te obligo a comprar nuestro software. Usa R, te aseguro que no me hará enfadar.
"No me molesta que monetices tu duro trabajo en software." - Lo siento, olvidé preguntarte tu opinión sobre esto. Pero mientras a ti te parezca bien, a mí también.
"Me opongo a que atribuyas cualidades inexistentes o exageradas a un producto con fines publicitarios " . - y me opongo a que escribas sobre algo de lo que no sabes nada.
Gracias. He terminado. Como decía el clásico.
PD: Solo respondo a la agresividad. Sin ánimo de ofender. Paz.
P.P.D.: Y sí, no deberías haber empezado a discutir conmigo:))
Я не понимаю содержание Скрежет обучение режим? В частности, о том, как использовать платформу использовать платформу MT4 MQL предварительной подготой. вки?
¡Chicos, hola! ¡Su energía, en la dirección correcta!
¡Enhorabuena, tenéis un error estratégico!
Cito la primera línea de su artículo: "Inicialmente, el propósito de la construcción de un sistema de comercio es predecir el comportamiento de algún instrumento de mercado, por ejemplo, un par de divisas".
Ni siquiera he seguido leyendo el artículo. Es mejor estudiar TODOS los métodos de previsión.
Le contaré un secreto: el objetivo de construir un sistema de trading es "Crear un modelo de (su) comportamiento".
No es importante lo que el mercado (líder) hará, es importante lo que usted hará: Y, O, NO.
Por ejemplo: Y - perseguir al líder (repetir las acciones del líder).
He intentado instalar rattle en linux (Kubuntu), no ha funcionado, hay muchas dependencias para la compilación del código.
Analizando los errores de instalación obtuve la siguiente lista de paquetes que necesitan ser instalados en el propio sistema operativo antes de instalar rattle en R:
console -
$ sudo apt-get install libxml2-dev unixodbc-dev libssl-dev libgtk2.0-dev
Y luego puedes ejecutar la instalación en el propio R -
> install.packages("rattle", dependencies=TRUE)
Y si todavía te faltan algunos archivos *.h para instalar rattle, puedes encontrar el paquete requerido así
$ sudo apt-get install apt-file
$ apt-file update
$ apt-file search /someheaderfile.h
Tal vez esto ayude a alguien más :)
Después de actualizar el sistema operativo rattle dejó de funcionar, al llamar a rattle() da un error
Error in method(obj, ...) : Invalid root element: 'requires'
La primera forma que casi ayudó fue ejecutar rattle con un parámetro adicional
Resultó que la versión de rattle instalada desde cran está desactualizada, es necesario reinstalar rattle especificando el repositorio de desarrolladores para obtener una nueva versión.rattle(useGtkBuilder = TRUE)
la ventana del programa se abrió, pero los botones no funcionaban, el método no ayudó hasta el final.
install.packages("rattle", repos="https://rattle.togaware.com", type="source")
Y después de eso todo funcionó bien.