- Books
- Annotated Algorithms in Python: with Applications in Physics, Biology, and Finance by Massimo Di Pierro
- Derivatives Analytics with Python by Yves Hilpisch
- Financial Modeling in Python by Shayne Fletcher, C Gardner
- Python for Finance by Yuxing Yan
- Python for Finance by Yves Hilpisch
- Conferences
- EuroPython 2011
- PyData London 2014
- DX Analytics - Python Based Library for Derivatives Analytics by Yves Hilpisch
- IPython
- People
- Videos
- Learning iPython Notebook by James Powell
- Web Pages
- For Python Quants Conference
- New York Python Meetup Group
- PyGotham
- Python Quants Group
- Quant Platform
- Webinars
Sunday, December 14, 2014
Python - Financial Industry
Recently, I have bumped into a decent amount of info about Python and the financial industry. Hopefully, the links below will save others some leg work
Monday, September 29, 2014
Simulated Annealing (SA) for Mathematical Optimization
Lately, I have been having conversations with various people regarding simulated annealing (SA). I thought that it would be helpful to put all the references in 1 spot.
I am not an expert in the subject. I am just trying to become part of the conversation.
Below are some references for SA which you hopefully will find helpful.
- Generally Applicable References
- Books
- Annealing Algorithm by R.H.J.M Otten and L.P.P.P van Ginneken
- Introduction to Optimum Design, Third Edition by Jasbir Arora
- Numerical Recipes 3rd Edition: The Art of Scientific Computing by William H. Press, Saul A. Teukolsky
- Simulated Annealing and Boltzmann Machines: A Stochastic Approach to Combinatorial Optimization and and Neural Computing by Emile Aarts, Jan Korst
- Interesting how book suggests using Boltzman Machines to execute SA in parallel. Also, please remember that Boltzman Machines are part of the mathematical stack for deep learning.
- Amazon
- Interesting how book suggests using Boltzman Machines to execute SA in parallel. Also, please remember that Boltzman Machines are part of the mathematical stack for deep learning.
- Simulated Annealing: Strategies, Potential Uses and Advantages by Marcos Tsuzuki, Thiago De Castro Martins
- Simulated Annealing: Theory and Applications by P.J. van Laarhoven, E.H. Aarts
- Annealing Algorithm by R.H.J.M Otten and L.P.P.P van Ginneken
- Articles
- Internet Information
- Serial and Parallel Simulated Annealing and Tabu Search Algorithms for the Traveling Salesman Problem by Miroslaw Malek, Mohan Guruswamy, Mihix Pandya, Howard Ownes
- Simulated Annealing by CryptoDen
- Simulated Annealing by Nathan Germer
- Simulated Annealing Tutorial - ME575 - Optimization
- Stony Brook Algorithm Repository by Steven Skiena
- Wikipedia
- Serial and Parallel Simulated Annealing and Tabu Search Algorithms for the Traveling Salesman Problem by Miroslaw Malek, Mohan Guruswamy, Mihix Pandya, Howard Ownes
- Python
- Books
- Parallelizing SA References
- Books
- Simulated Annealing and Boltzmann Machines: A Stochastic Approach to Combinatorial Optimization and and Neural Computing by Emile Aarts, Jan Korst
- Interesting how book suggests using Boltzman Machines to execute SA in parallel. Also, please remember that Boltzman Machines are part of the mathematical stack for deep learning.
- Amazon
- Interesting how book suggests using Boltzman Machines to execute SA in parallel. Also, please remember that Boltzman Machines are part of the mathematical stack for deep learning.
- Simulated Annealing and Boltzmann Machines: A Stochastic Approach to Combinatorial Optimization and and Neural Computing by Emile Aarts, Jan Korst
- Articles
- Efficient implementation of parallel simulated annealing algorithm in GPUs by A. M. Ferreiro, J. A. García, J. G. López-Salas, C. Vázquez
- Implementing a Parallel Simulated Annealing Algorithm by Zbigniew J. Czech, Wojciech Mikanik, Rafał Skinderowicz
- Mutlithreaded Simulated Annealing by Leonardo Jelenković, Joöko Poljak
- Parallel Simulated Annealing Algorithm for Graph Coloring Problem by Szymon Łukasik, Zbigniew Kokosiński, and Grzegorz Świętoń
- Parallel Simulated Annealing Algorithms by D. Janaki Ram, T. H. Sreenivas, K. Ganapathy Subramaniam
- Parallel Simulated Annealing Library by University of Paderborn
- Serial and Parallel Simulated Annealing and Tabu Search Algorithms for the Traveling Salesman Problem by Miroslaw Malek, Mohan Guruswamy, Mihix Pandya, Howard Ownes
- Efficient implementation of parallel simulated annealing algorithm in GPUs by A. M. Ferreiro, J. A. García, J. G. López-Salas, C. Vázquez
- Books
Friday, August 22, 2014
Generate All Permutations - Heap Algorithm
A common problem that shows up often is to generate all the possible permutations for a set of things. Here permutation is being used in the strict mathematical sense. For example, all the permutations of [ 1, 2, 3 ] are
Notice that the above results in 6 possibilities. This corresponds to 3 x 2 x 1 = 3! = 6. The "!" is mathematical notation for factorial. If you are interested in a general discussion about combinations and permutations and factorials, check out Combinations and Permutations by MathIsFun.Com. For those who want a strict definition of the problem we are going to work on permutations without repetition where we choose all the entries.
If you were in a hurry and the number of entities that had to consider were small and you weren't familiar w/ various algorithms, nested loops could be used to generate all the permutations. However, the nested loop approach does not scale because you don't want to change the code by adding / removing loops each time change the number of entities that have to consider.
Luckly, we can avoid nested loops by using the Heap algorithm. The original paper Permutations by Interchanges by B. R. Heap (\[Oxford Journals - The Computer Journal (1963) 6 (3): 293-298. doi: 10.1093/comjnl/6.3.293)\] can be freely obtained by clicking here. Later on, another article on the topic was Permutation Generation Methods by Robert Sedgewick - 1977 - ACM. Unfortunately, to obtain this article, you are going to have to pay for it. Luckly, Robert Sedgewick posted material on Heap's algorithm at Princeton. To obtain that material, click here.
The above "official" material can be supplemented by the following material found on the web
- [ 1, 2, 3 ]
- [ 1, 3, 2 ]
- [ 2, 1, 3 ]
- [ 2, 3, 1 ]
- [ 3, 1, 2 ]
- [ 3, 2, 1 ]
Notice that the above results in 6 possibilities. This corresponds to 3 x 2 x 1 = 3! = 6. The "!" is mathematical notation for factorial. If you are interested in a general discussion about combinations and permutations and factorials, check out Combinations and Permutations by MathIsFun.Com. For those who want a strict definition of the problem we are going to work on permutations without repetition where we choose all the entries.
If you were in a hurry and the number of entities that had to consider were small and you weren't familiar w/ various algorithms, nested loops could be used to generate all the permutations. However, the nested loop approach does not scale because you don't want to change the code by adding / removing loops each time change the number of entities that have to consider.
Luckly, we can avoid nested loops by using the Heap algorithm. The original paper Permutations by Interchanges by B. R. Heap (\[Oxford Journals - The Computer Journal (1963) 6 (3): 293-298. doi: 10.1093/comjnl/6.3.293)\] can be freely obtained by clicking here. Later on, another article on the topic was Permutation Generation Methods by Robert Sedgewick - 1977 - ACM. Unfortunately, to obtain this article, you are going to have to pay for it. Luckly, Robert Sedgewick posted material on Heap's algorithm at Princeton. To obtain that material, click here.
The above "official" material can be supplemented by the following material found on the web
Python Books on Algorithms
I haven't been able to find a list of Python books on algorithms and so here I am creating my own. Hopefully, it will help others
- Algorithms by Robert Sedgewick, Kevin Wayne
- Annotated Algorithms in Python by Dr Massimo Di Pierro
- Annotated Algorithms in Python: with Applications in Physics, Biology, and Finance by Dr Massimo Di Pierro
- Data Structures and Algorithms in Python by Michael T. Goodrich, Roberto Tamassia and Michael H. Goldwasser
- Data Structures and Algorithms Using Python by Rance D. Necaise
- Data Structures and Algorithms: Using Python and C++ by David M. Reed and John Zelle
- Image Analysis, Classification and Change Detection in Remote Sensing: With Algorithms for ENVI/IDL and Python, Third Edition by Morton J. Canty
- Problem Solving with Algorithms and Data Structures Using Python by Bradley N. Miller and David L. Ranum
- Problem Solving with Algorithms and Data Structures Using Python by Bradley N. Miller and David L. Ranum
- Problem Solving with Algorithms and Data Structures Using Python SECOND EDITION by Bradley N. Miller, David L. Ranum
- Programming Computer Vision with Python: Tools and algorithms for analyzing images by Jan Erik Solem
- Python Algorithms: Mastering Basic Algorithms in the Python Language by Magnus Lie Hetland
Monday, August 11, 2014
Deep Learning Mathematical Stack (Updated)
Deep learning seems to be a hot topic these days but I haven't been able to find a reference which states the mathematical stack needed to understand it. Below is my attempt at creating one
Markov Network Models fall under the category of Probabilistic Graphical Models (PGM).
Below are reference
- Markov Network Models
- Ising Models
- Variational Methods
- Hopfield Networks
- Boltzmann Machines
- Restricted Boltzmann Machines
- Deep Learning
Markov Network Models fall under the category of Probabilistic Graphical Models (PGM).
Below are reference
- Books
- Information Theory, Inference and Learning Algorithms by David J. C. MacKay
- Introduction to the Math of Neural Networks Kindle Edition by Jeff Heaton
- Videos
Probabilistic Graphical Models (PGM) - Topic List
Probabilistic Graphical Models (PGM)
Recently, I discussed probabilistic graphical Models (PGM) with several people. Everyone has a link here and a link there. So, I decided to put the references in one place. See list below. As expected, people will disagree about what should or should not be included. This is a good thing. So comment away.
Similarly, people will disagree as to what topics belong under the PGM umbrella. Furthermore, some people will want to format the topics in an alphabetic linear list while others will want a hierarchy. Attached to this blog are pdf files that reflect my attempt at both. Disagreemnt is a good thing. So comment away.
By the way, I am at best a novice at this type of stuff.
- Books
- Advanced Data Analysis from an Elementary Point of View by Cosma Rohilla Shalizi
- Algorithms for Graphical Models by James Cussens
- To download the book, click here.
- To download the book, click here.
- Artificial Intelligence: A Modern Approach 2e, by S. Russell & P. Norvig, Prentice-Hall, 2003
- Bayesian Artificial Intelligence, Second Edition by Kevin B. Korb, Ann E. Nicholson
- Bayesian Networks and Decision Graphs by Thomas Dyhre Nielsen, FINN VERNER JENSEN
- Bayesian Networks and Influence Diagrams: A Guide to Construction and Analysis by Uffe B. Kjærulff, Anders L. Madsen
- Bayesian Networks for Probabilistic Inference and Decision Analysis in Forensic Science by Franco Taroni, Alex Biedermann, Silvia Bozza
- Bayesian Networks in R: with Applications in Systems Biology (Use R!) by Radhakrishnan Nagarajan, Marco Scutari
- Bayesian Networks: A Practical Guide to Applications by Olivier Pourret, Patrick Naïm, Bruce Marcot
- Bayesian Networks: With Examples in R by Marco Scutari, Jean-Baptiste Denis
- Bayesian Reasoning and Machine Learning (BRML) by David Barber
- Author's Web Page for the Book
- Amazon
- ... only criticism (a mild one) is that, when applying Barber's examples to Bodies of Knowledge and data mining, he skips Prolog, backward chaining, predicate calculus and other techniques that are the foundation of automated inference systems (systems that extend knowledge bases automatically by checking whether new propositions can be inferred from the KB as consistent, relevant, etc.) ...
- ... only criticism (a mild one) is that, when applying Barber's examples to Bodies of Knowledge and data mining, he skips Prolog, backward chaining, predicate calculus and other techniques that are the foundation of automated inference systems (systems that extend knowledge bases automatically by checking whether new propositions can be inferred from the KB as consistent, relevant, etc.) ...
- Cambridge.Org
- Git Hub
- Author's Web Page for the Book
- Building Probabilistic Graphical Models with Python by Kiran R Karkera
- CERN Document Server
- Amazon
- ... All is illustrated with examples and code snippets using mostly the libpgm package. PyMC is used for Bayesian parameter estimation ...
- ... All is illustrated with examples and code snippets using mostly the libpgm package. PyMC is used for Bayesian parameter estimation ...
- PacktPub.com
- CERN Document Server
- Causality: Models, Reasoning and Inference by Judea Pearl
- Elements of Statistical Learning by Trevor Hastie
- Graphical Models by Steffen L. Lauritzen
- Graphical Models: Foundations of Neural Computation by Michael I. Jordan, Terrence J. Sejnowski
- Graphical Models: Representations for Learning, Reasoning and Data Mining by Christian Borgelt, Matthias Steinbrecher
- Graphical Models for Machine Learning and Digital Communication by Brendan J. Frey
- Graphical Models in Applied Multivariate Statistics Paperback by Joe Whittaker
- Graphical Models with R (Use R!) by Søren Højsgaard, David Edwards, Steffen Lauritzen
- Graphical Models, Exponential Families, and Variational Inference by Martin J Wainwright, Michael I Jordan
- Inference in Hidden Markov Models by Olivier Cappé, Eric Moulines, Tobias Ryden
- Introduction to Graphical Modelling by David Edwards
- Introduction to Statistical Learning: with Applications in R by Gareth James, Daniela Witten, Trevor Hastie
- Large-Scale Inference: Empirical Bayes Methods for Estimation, Testing, and Prediction by Bradley Efron
- Learning Bayesian Networks by Richard E. Neapolitan
- Learning in Graphical Models by Michael I. Jordan
- Machine Learning: a Probabilistic Perspective by Kevin Patrick Murphy
- Mind's Arrows: Bayes Nets and Graphical Causal Models in Psychology by Clark Glymour
- Modeling and Reasoning with Bayesian Networks by Adnan Darwiche
- Pattern Recognition & Machine Learning, by C.M. Bishop, Springer, 2007.
- Probabilistic Graphical Models: Principles and Techniques by Daphne Koller, Nir Friedman
- Amazon
- ... Her course for probabilistic models is available online, and watching the videos alongside the book really helps sometimes ...
- ... authors painstakingly provided necessary background materials from both probability theory and graph theory ...
- ... Her course for probabilistic models is available online, and watching the videos alongside the book really helps sometimes ...
- Associated Coursera Course
- Google
- mitpress.mit.edu
- Stanford.Edu
- Amazon
- Probabilistic Networks and Expert Systems - Exact Computational Methods for Bayesian Networks by Cowell, R.G., Dawid, P., Lauritzen, S.L., Spiegelhalter, D.J.
- Probabilistic Programming & Bayesian Methods for Hackers = Using Python and PyMC
- Probability on Graphs: Random Processes on Graphs and Lattices by Geoffrey Grimmett
- Advanced Data Analysis from an Elementary Point of View by Cosma Rohilla Shalizi
- Classes
- Web Pages
- BAYES NET BY EXAMPLE USING PYTHON AND KHAN ACADEMY DATA by DeRandomized.com
- Bayes Net Toolbox for Matlab
- Brief Introduction to Graphical Models and Bayesian Networks by Kevin Murphy
- Building Probabilistic Graphical Models with Python by Steve Lott
- Carmen: An open source project for probabilistic graphical models by Manuel Arias and Francisco J. D´ıez
- Comparison between igraph and networkx by Google Group: NetworkX Discussion
- Data Structures and Algorithms with Object-Oriented Design Patterns in Python by Bruno R. Preiss - Graphs and Graph Algorithms
- Daft: Python package that uses matplotlib to render pixel-perfect probabilistic graphical models
- ECE 175B: Prob. Reasoning & Graphical Models by Ken Kreutz-Delgado, Spring 2014
- FACTORIE
- FACTORIE is a toolkit for deployable probabilistic modeling, implemented as a software library in Scala.
- FACTORIE aims to provide a full-featured framework for probabilistic graphical models (both directed and undirected)
- SciKit-Learn provides an extensive set of tools for classification, regression, clustering, dimensionality reduction and model selection. It is more mature than FACTORIE, and it is easily integratable with matplotlib, a graphics package, so it can produce high-quality graphs directly. However, it does not support graphical models. SciKit-Learn is implemented in Python; in many cases it is less efficient than FACTORIE, which is JVM-based.
- FACTORIE is a toolkit for deployable probabilistic modeling, implemented as a software library in Scala.
- gPy
- graph-tool: Graph-tool is an efficient Python module for manipulation and statistical analysis of graphs (a.k.a. networks). Contrary to most other python modules with similar functionality, the core data structures and algorithms are implemented in C++, making extensive use of template metaprogramming, based heavily on the Boost Graph Library. This confers it a level of performance that is comparable (both in memory usage and computation time) to that of a pure C/C++ library.
- igraph: The network analysis package igraph is a collection of network analysis tools with the emphasis on efficiency, portability and ease of use. igraph is open source and free.
- Implementing a Principal Component Analysis (PCA) in Python step by step by Sebastian Raschka on April 13, 2014
- Daft: Python package that uses matplotlib to render pixel-perfect probabilistic graphical models
- NetworkX: NetworkX is a Python language software package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.
- Modular toolkit for Data Processing (MDP): Python data processing framework
- Pebl
- pgmpy
- Probabilistic Modeling Toolkit for Matlab/Octave
- Probabilistic Programming & Bayesian Methods for Hackers by Cam Davidson-Pilon
- PyDot: Python interface to Graphviz's Dot language. Pydot allows to easily create both directed and non directed graphs from Python.
- pymc
- PyNFG: PyNFG is designed to make it easy for researchers to model strategic environments using the Network Form Game (NFG) formalism developed by David Wolpert with contributions from Ritchie Lee, James Bono and others. The main idea of the NFG framework is to translate a strategic environment into the language of probabilistic graphical models.
- python-graph: Library for working with graphs in Python. This software provides a suitable data structure for representing graphs and a whole set of important algorithms.
- scikit-learn
- Software by Kevin Murphy and students
- Software Packages for Graphical Models by Kevin Murphy
- Two Node Directed Graphical Model Example by Jascha Sohl-Dickstein
- Understanding your data w/ Bayesian networks (in python) by Bartek Wilczunski (bartek@mimuw.edu.pl)
- Wikipedia: Bayesian Network
- Wikipedia: Graphical Model
- BAYES NET BY EXAMPLE USING PYTHON AND KHAN ACADEMY DATA by DeRandomized.com
Subscribe to:
Posts (Atom)