Friday, May 24, 2013

List of NLP libraries and frameworks


List of NLP libraries and frameworks

http://mallet.cs.umass.edu/
MALLET is a Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.

http://gate.ac.uk/
GATE has grown over the years to include a desktop client for developers, a workflow-based web application, a Java library, an architecture and a process

http://opennlp.apache.org/
supports the most common NLP tasks, such as tokenization, sentence segmentation, part-of-speech tagging, named entity extraction, chunking, parsing, and coreference resolution.OpenNLP also includes maximum entropy and perceptron based machine learning.

http://nltk.org/
NLTK is a leading platform for building Python programs to work with human language data. It provides easy-to-use interfaces to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning.

Sunday, February 19, 2012

Hadoop Tools Universe

Tools and stuff related to the Hadoop ecosystem

Overview Links
http://www.slideshare.net/joshwills/hadoop-and-machine-learning


Configuration Management
Puppet
http://hstack.org/hstack-automated-deployment-using-puppet/

Chef
http://blog.milford.io/2011/03/first-github-post-hadoop-chef-cookbook/


Coordination Service
ZooKeeper
http://zookeeper.apache.org/
http://www.quora.com/Why-is-Apache-ZooKeeper-used-along-with-Hadoop


Storage
Distributed schema-less storage
HDFS
Ceph

Append only storage and metadata
Avro
RCFile
HCatalog

Mutable key-value storage and metadata
HBase


Integration
Tool access
FUSE
JDBC
ODBC

Data Ingestion
Flume
Sqoop


Data Prep/Feature Engineering
Languages/Environments
PigLatin
HiveQL

Java/Scala APIs
Crunch (Cloudera)
Scoobi (NICTA)
Cascading (Concurrent)
Jaql (IBM)


Machine Learning
Apache Mahout
http://mahout.apache.org/

SystemLM (IBM)

R-based Systems
Sugue
RHIPE
RHadoop
Ricardo (IBM)



Sunday, November 20, 2011

Octave Tips, Links, Tutes, Libraries


Collected Tips and Links for GNU Octave


Tips and Links:
Change default prompt and clear on startup:
Edit "C:\Octave\3.2.4_gcc-4.4.0\share\octave\site\m\startup\octaverc" and add:
PS1(">> ")
clc
See also:
http://www.gnu.org/software/octave/doc/interpreter/Customizing-the-Prompt.html
http://www.gnu.org/software/octave/doc/interpreter/Startup-Files.html

Debugging:
The keyboard function returns control to the user
See also:
http://www.gnu.org/software/octave/doc/interpreter/Debugging.html

Useful Commands:
whos - Variables in the current scope with sizes and bytes


Tutorials:
YAGTOM: Yet Another Guide TO Matlab


Libraries:
PMTK supports a large variety of probabilistic models, including linear and logistic regression models (optionally with kernels), SVMs and gaussian processes, directed and undirected graphical models, various kinds of latent variable models (mixtures, PCA, HMMs), etc.  Associated textbook.

Thursday, November 17, 2011

New online Stanford courses for 2012

Wow, new free online Stanford courses for Jan 2012!  Really enjoying the ML and AI classes offered in 2011 and have heard the DB class is good too.

EDIT: wow they keep coming for 2012...will keep updating...

EDIT 2: even better see: www.class-central.com
and www.online-education.za.org/all_available

Computer Science:
http://www.nlp-class.org  Natural Language Processing (23 Jan 2012)
http://www.pgm-class.org  Probabilistic Graphical Models (Jan 2012)
http://www.game-theory-class.org/  Game Theory (late Feb 2012)
http://www.hci-class.org/  Human-Computer Interfaces (Jan 2012)
http://www.saas-class.org/  Software Engineering for Software as a Service
http://www.cs101-class.org/  Computer Science 101
http://jan2012.ml-class.org/  Machine learning
http://www.algo-class.org/  Design and Analysis of Algorithms I (23 Jan 2012)
http://www.crypto-class.org/  Cryptography

Entrepreneurship:
http://www.launchpad-class.org/  The Lean Launchpad
http://www.venture-class.org/  Technology Entrepreneurship

Electrical Engineering
http://www.infotheory-class.org/ Information Theory  (Mar 2012)

Complex Systems
http://www.modelthinker-class.org/  Model Thinking  (23 Jan 2012)


Civil Engineering
http://www.greenbuilding-class.org/  Making Green Buildings

Medicine
http://www.anatomy-class.org/  Anatomy

Thursday, October 20, 2011

Javascript Libraries and Links

Web Client Libraries and Frameworks
jQuery
jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.

Underscore.js
Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. It's the tie to go along with jQuery's tux.

Modernizr
Modernizr is your starting point for making the best websites and applications that work exactly right no matter what browser or device your visitors use.

Knockout.js
Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM)

Backbone.js
Backbone supplies structure to JavaScript-heavy applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing application over a RESTful JSON interface.


JS and CSS Toolkits
Google Libraries API
The Google Libraries API is a content distribution network and loading architecture for the most popular, open-source JavaScript libraries.

CoffeeScript
CoffeeScript is a little language that compiles into JavaScript. Underneath all those awkward braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way. Also see: dart

lesscss
LESS extends CSS with dynamic behavior such as variables, mixins, operations and functions. LESS runs on both the client-side (IE 6+, Webkit, Firefox) and server-side, with Node.js and Rhino.

twitter bootstrap
Simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions.

requirejs.org
JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.


JS InfoVis Libraries
Processing.js
Processing.js is the sister project of the popular Processing visual programming language, designed for the web. Processing.js makes your data visualizations, digital art, interactive animations, educational graphs, video games, etc. work using web standards and without any plug-ins.

d3.js
D3.js is a small, free JavaScript library for manipulating documents based on data and visualization framework. (From the authors of the now inactive protovis.)

Flot
Flot is a pure Javascript plotting library for jQuery. It produces graphical plots of arbitrary datasets on-the-fly client-side.

arborjs
Arbor is a graph visualization library built with web workers and jQuery. Rather than trying to be an all-encompassing framework, arbor provides an efficient, force-directed layout algorithm plus abstractions for graph organization and screen refresh handling.

Raphaël
Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. If you want to create your own specific chart or image crop and rotate widget, for example, you can achieve it simply and easily with this library.


JS Math Libraries
MathJax
MathJax is an open source JavaScript display engine for mathematics that works in all modern browsers.

jStat
jStat is a statistical library written in JavaScript that allows you to perform advanced statistical operations without the need of a dedicated statistical language (i.e. MATLAB or R).


On the Radar
Stripe.js
Stripe.js lets you build your own payment forms while still avoiding most PCI requirements.  Credit cards go directly to Stripe's secure environment, and never hit your servers.

three.js
Javascript 3D Engine. The aim of the project is to create a lightweight 3D engine with a very low level of complexity.

speak.js
Enables text-to-speech on the web using only JavaScript and HTML5. A port of the eSpeak speech synthesizer from C++ to JavaScript using Emscripten. Online demo: http://syntensity.com/static/espeak.html


Blog Posts Etc
Knockout.js vs. Backbone.js
Introducing Knockout, a UI library for JavaScript
A re-introduction to JavaScript (mozilla.org)
JavaScript for C# developers: writing a library
20 Fresh JavaScript Data Visualization Libraries


Tuesday, September 13, 2011

R Packages

Here is a list of R packages that I find useful:

ggplot2 - is a plotting system for R, based on the grammar of graphics, which tries to take the good parts of base and lattice graphics and none of the bad parts. (Sep 2011)

caret - is a set of functions that attempt to streamline the process for creating predictive models. The package contains tools for: data splitting, pre-processing, model tuning using resampling, variable importance estimation. (short for Classification And REgression Training) (Sep 2011)

randomForest - Classification and regression based on a forest of trees using random inputs. (Dec 2011)

ada - Performs discrete, real, and gentle boost under both exponential and logistic loss on a given data set. The package ada provides a straightforward, well-documented, and broad boosting routine for classification, ideally suited for small to moderate-sized data sets. (Dec 2011)

gbm - Generalized Boosted Regression Models.  This package implements extensions to Freund and Schapire's AdaBoost algorithm and Friedman's gradient boosting machine. Includes regression methods for least squares, absolute loss, quantile regression, logistic, Poisson, Cox proportional hazards partial likelihood, and AdaBoost exponential loss. (Dec 2011)

dummies - Create dummy/indicator variables flexibly and efficiently.  Expands factors, characters and other eligible classes into dummy/indicator variables.

multicore - Overcome R's inefficient CPU usage.  This package provides a way of running parallel computations in R on machines with multiple cores or CPUs. Jobs can share the entire initial workspace and it provides methods for results collection.

Friday, August 5, 2011

List of Data Mining / Forcasting Competitions

Kaggle
http://www.kaggle.com/Competitions

TunedIT Solutions
http://tunedit.org/challenges/

Causality Workbench (none current as of Aug 2011)
http://www.causality.inf.ethz.ch/home.php

DARPA's Shredder Challenge (document reconstruction)
Closes December 5, 2011
http://www.shredderchallenge.com/

1st International Competition of Time Series Forecasting
Closes 10th of January 2012
http://www.caos.inf.uc3m.es/~jperalta/ICTSF/

if you know of any more sites offering data mining / forecasting / machine learning competitions please leave a comment!  Thanks.

Friday, May 27, 2011

Free Utilities for a New Machine

NOTE: this is a work in progress, links coming...


Apps

Chrome

Firefox

irfanview

FoxitReader

mRemote

FileZilla

foobar2000

vlc

Skype


System

Wizmouse (scrolling fix) v1.0.0.5.exe

puretext20_x86.zip

notepad++

7zip

Launchy

VirtualBox + Ubuntu

Xming Xserver

putty

SysinternalsSuite

www.magiciso.com/tutorials/miso-magicdisc-overview.htm

ImgBurn

TreeSizeFree

Generic Development Tools

Reflector / JustDecompile www.telerik.com/products/decompiling.aspx

DiffMerge

WinMerge

Expresso Regex

XPathBuilder v2.0.0.4

LINQPad

Screen Ruler

Tortoise SVN

Specific Development Tools

Eclipse

Python

MonoDevelop


Commercial Software

Visual Studio (2008 and 2010)

ReSharper

SQL Server Management Studio

Redgate SQL Compare adn SQL Data Compare

Microsoft Office

Friday, December 10, 2010

Windows hosted virtual private server (VPS) set up

In early 2010 I migrated my websites from shared web host that had begun to suck to a virtual private server (VPS) provided by Web24.

I did this for performance reasons as the shared web host had degraded over the course of several years, and additionally I wanted control over what was installed on the machine just like when at work.

Due to low traffic and budget constraints I'm running the VPS as a web server (IIS), DB server (SQL Server Express, and MySQL) and an SMTP server.  Here are my notes regarding the server installation and configuration so I can do it again fairly quickly if needed.

NOTE: these details were accurate at March 2010, newer versions and service packs are probably available now.

VPS Configuration
Windows Server 2003 R2, 64 bit
IIS 6
1GB RAM
10GB disk space
Parallels Power Panel
Full remote desktop access

General Utilities Installed
7zip, notepad++, Winmerge and Sysinternals Suite

Web Platform Installer
Used the WPI to install: .NET FW 2.0 .NET FW 3.5SP1, MVC 2.0

Database Servers
MySQL:

SQL Server 2008 Express:
SMTP Mail Server
hMailServer:
Web Mail
roundcube (PHP application):
Yep, that's it, too easy really.  Overall I'm pretty happy with Web24 - faster than the old shared hosting, and (almost) complete control over the environment. Only downside is a few more sysadmin tasks.

Next thing to do is switch to Server 2008 with IIS 7.

Entity Framework and LINQ2SQL Links

EF
Migrating from LINQ to SQL to Entity Framework: Eager Loading
http://blogs.msdn.com/adonet/archive/2008/10/07/migrating-from-linq-to-sql-to-entity-framework-eager-loading.aspx

Known Issues and Considerations in LINQ to Entities
http://msdn.microsoft.com/en-us/library/bb896317.aspx


LINQ2SQL

Linq to SQL DataContext Lifetime Management (Rick Strahl)


Python Libraries

Here are some useful Python libraries I've been using for conducting and visualising experiments in machine learning, forecasting and statistical learning. It is updated as I discover new libraries/applications.
Last updated April 2013.

Libraries

numpy - Numerical Python - Numerical Python adds a fast and sophisticated array facility to the Python language. NumPy is the most recent and most actively supported package.

scipy - Scientific Library for Python - SciPy is package of tools for science and engineering for Python. It includes modules for statistics, optimization, integration, linear algebra, Fourier transforms, signal and image processing, ODE solvers, and more.

matplotlib - matplotlib tries to make easy things easy and hard things possible. You can generate plots, histograms, power spectra, bar charts, errorcharts, scatterplots, etc, with just a few lines of code

PyBrain -  Python-Based Reinforcement Learning, Artificial Intelligence and Neural Network Library. PyBrain is a modular Machine Learning Library for Python. Its goal is to offer flexible, easy-to-use yet still powerful algorithms for Machine Learning Tasks and a variety of predefined environments to test and compare your algorithms.

nltk - Natural Language Toolkit — is a suite of open source Python modules, data and documentation for research and development in natural language processing.

PIL - Python Imaging Library adds image processing capabilities to your Python interpreter.

mlpy - Machine Learning PYthon - high-performance Python library for predictive modeling. Makes extensive use of  NumPy to provide fast N-dimensional array manipulation and easy integration of C code. The GNU Scientific Library ( GSL) is also required. It provides high level procedures that support, with few lines of code, the design of rich Data Analysis Protocols (DAPs) for preprocessing, clustering, predictive classification, regression and feature selection. Methods are available for feature weighting and ranking, data resampling, error evaluation and experiment landscaping.

networkx - High productivity software for complex networks - creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

neurolab - a simple and powerful Neural Network Library for Python. Contains based neural networks, train algorithms and flexible framework to create and explore other networks. Pure python + numpy.
Includes: Single layer perceptron, Multilayer feed forward perceptron, Competing layer (Kohonen Layer), Learning Vector Quantization (LVQ), Elman Recurrent network, Hopfield Recurrent network. (Sep 2011)
[Note: after using this library I prefer PyBrain since it feels more stable and better documented. However neurolab has a similar api to the MATLAB NN Toolbox]

scikits.learn - Easy-to-use and general-purpose machine learning in Python. Python module integrating classic machine learning algorithms in the tightly-knit world of scientific Python packages (numpy, scipy, matplotlib).  It aims to provide simple and efficient solutions to learning problems that are accessible to everybody and reusable in various contexts: machine-learning as a versatile tool for science and engineering. Part of SciKits. (Aug 2011)

scikits.* - SciKits (short for SciPy Toolkits), are add-on packages for SciPy, hosted and developed separately from the main SciPy distribution. All SciKits are available under the 'scikits' namespace.
Selected examples that have recent updates and look maintained: (Sep 2011)

Tablib - allows you to import, export, and manipulate tabular data sets. Advanced features include, segregation, dynamic columns, tags & filtering, and seamless format import & export. (Sep 2011)

pyneurgen - Python Neural Genetic Hybrids.  This software provides libraries for use in Python programs to build hybrids of neural networks and genetic algorithms and/or genetic programming. (Sep 2011)

pyml - machine learning in Python. PyML is an interactive object oriented framework for machine learning, it focuses on SVMs and other kernel methods.
Features:
Classifiers: support vector machines, nearest neighbor, ridge regression
Multi-class methods (one-against-rest and one-against-one)
Feature selection (filter methods, RFE)
Model selection
Preprocessing and normalization
Syntax for combining classifiers
Classifier testing (cross-validation, error rates, ROC curves)
(Sep 2011)

Pandas - pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.  R users will be pleased to find this library adopts some of the best concepts of R, like the foundational DataFrame (April 2013)

PyTables - PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope with extremely large amounts of data. PyTables is built on top of the HDF5 library, using the Python language and the NumPy package. (April 2013)

gensim - realize unsupervised semantic modelling from plain text.  Useful to determine similarity between pairs of documents.  Includes Latent Sematic Analysis and Latent Dirichlet Allocation (April 2013)

ramp - Ramp is a python package for rapid machine learning prototyping. It provides a simple, declarative syntax for exploring features, algorithms and transformations quickly and efficiently. At its core it’s a unified pandas-based framework for working with existing python machine learning and statistics libraries (scikit-learn, rpy2, etc.) (April 2013)

Statsmodels - Statsmodels is a Python module that allows users to explore data, estimate statistical models, and perform statistical tests. An extensive list of descriptive statistics, statistical tests, plotting functions, and result statistics are available for different types of data and each estimator. (April 2013)

Blaze - Blaze is the next generation of NumPy, Python’s extremely popular array library. Blaze is designed to handle out-of-core computations on large datasets that exceed the system memory capacity, as well as on distributed and streaming data. (April 2013)



Applications

IPython - IPython provides a rich toolkit to help you make the most out of using Python interactively. Its main components are:
Powerful interactive Python shells (terminal- and Qt-based).
Support for interactive data visualization and use of GUI toolkits.
Flexible, embeddable interpreters to load into your own projects.
Tools for high level and interactive parallel computing.

Orange - Open source data visualization and analysis for novice and experts. Data mining through visual programming or Python scripting. Components for machine learning. Extensions for bioinformatics and text mining. Packed with features for data analytics.

Friday, November 5, 2010

InfoVis Applications, Libraries

NOTE: This post is a work in-progress


Applications and Libraries

Gephi, App, Java (NetBeans build environment)
Gephi is an interactive visualization and exploration platform for all kinds of networks and complex systems, dynamic and hierarchical graphs. Runs on Windows, Linux and Mac OS X. Gephi is open-source and free.

prefuse, Library, Java
See also: vizster, uses prefuse to visualise social networks.
Prefuse supports a rich set of features for data modeling, visualization, and interaction. It provides optimized data structures for tables, graphs, and trees, a host of layout and visual encoding techniques, and support for animation, dynamic queries, integrated search, and database connectivity. Prefuse is written in Java, using the Java 2D graphics library, and is easily integrated into Java Swing applications or web applets. Prefuse is licensed under the terms of a BSD license, and can be freely used for both commercial and non-commercial purposes.

prefuse flare, Library, ActionScript
Flare is an ActionScript library for creating visualizations that run in the Adobe Flash Player. From basic charts and graphs to complex interactive graphics, the toolkit supports data management, visual encoding, animation, and interaction techniques.

Protovis, Library, Javascript with SVG
Protovis composes custom views of data with simple marks such as bars and dots. Unlike low-level graphics libraries that quickly become tedious for visualization, Protovis defines marks through dynamic properties that encode data, allowing inheritance, scales and layouts to simplify construction.

UbiGraph, Rendering engine, C++,  Linux only
UbiGraph is a tool for visualizing dynamic graphs. The basic version is free, and talks to Python, Ruby, PHP, Java, C, C++, C#, Haskell, and OCaml.

igraph, Library, C++ with Python module and R package
igraph contains functions for generating regular and random graphs, manipulating graphs, assigning attributes to vertices and edges. It can calculate various structural properties, graph isomorphism, includes heuristics for community structure detection, supports many file formats. The R and Python interfaces support visualization.

Graphviz, Tool set
The Graphviz layout programs take descriptions of graphs in a simple text language, and make diagrams in several useful formats such as images and SVG for web pages, Postscript for inclusion in PDF or other documents; or display in an interactive graph browser. (Graphviz also supports GXL, an XML dialect.)


People


Jeffrey Heer

Friday, April 23, 2010

Online Lectures (updated 2012)

Added 2012:


Stanford EE263: Introduction to Linear Dynamical Systems
Introduction to applied linear algebra and linear dynamical systems, with applications to circuits, signal processing, communications, and control systems.
http://www.stanford.edu/~boyd/ee263/index.html
http://www.youtube.com/playlist?list=PL06960BA52D0DB32B


MIT - 18.085 Computational Science and Engineering I
Review of linear algebra, including applications to networks, structures, and estimation, Lagrange multipliers. Also covered are: differential equations of equilibrium; Laplace's equation and potential flow; boundary-value problems; minimum principles and calculus of variations; Fourier series; discrete Fourier transform; convolution; and applications.
http://ocw.mit.edu/courses/mathematics/18-085-computational-science-and-engineering-i-fall-2008/index.htm


Statistical Aspects of Data Mining (Stats 202 - Google/Stanford)
Topics: decision trees, neural networks, association rules, clustering, case based methods, and data visualization.
http://www.youtube.com/playlist?list=PLA40054B49BA80084&feature=view_all
http://www.stats202.com/original_index.html


Added 2011:
Awesome, free, online courses from Stanford offered Oct 2011:

CS229, Machine Learning Course
Broad introduction to machine learning, datamining, and statistical pattern recognition
http://www.ml-class.org/
http://cs229.stanford.edu/
http://www.reddit.com/r/mlclass/

CS221, Artificial Intelligence Course
Covering basic elements of AI, such as knowledge representation, inference, machine learning, planning and game playing, information retrieval, and computer vision and robotics.
http://www.ai-class.com/
http://robots.stanford.edu/cs221/
http://www.reddit.com/r/aiclass

Unsupervised Feature Learning and Deep Learning
Video lectures by Andrew Ng (Stanford, also teaches CS229)
http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=ufldl


Added 2010:

Stanford - Programming Paradigms (CS107)
Online lectures http://www.youtube.com/view_play_list?p=9D558D49CA734A02
Course notes https://courseware.stanford.edu/info/course/CS107
Lecture summary https://courseware.stanford.edu/pg/courses/lectures/4838

Stanford - Machine Learning (CS229)
Online lectures http://www.youtube.com/view_play_list?p=A89DCFA6ADACE599
Course notes http://www.stanford.edu/class/cs229/
Lecture summary http://www.stanford.edu/class/cs229/schedule.html
Course Materials http://www.stanford.edu/class/cs229/materials.html
Notes
http://amitksaha.wordpress.com/ (229 search)

MIT - Introduction to Algorithms (6.046J / 18.410J)
Online lectures http://www.youtube.com/view_play_list?p=8B24C31197EC371C
Course notes
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/index.htm
Lecture summary
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/VideoLectures/
3rd party notes (very good)
http://www.catonmat.net/blog/category/introduction-to-algorithms/

Stanford - Introduction to Robotics (CS223A)

Online lectures http://www.youtube.com/view_play_list?p=65CC0384A1798ADF
Course notes 1 http://www.stanford.edu/class/cs223a/
Course notes 2
http://see.stanford.edu/see/courseInfo.aspx?coll=86cc8662-f6e4-43c3-a1be-b30d1d179743
Lecture summary
http://see.stanford.edu/see/lecturelist.aspx?coll=86cc8662-f6e4-43c3-a1be-b30d1d179743

MIT - Linear Algebra (18.06)
Online lectures http://www.youtube.com/view_play_list?p=E7DDD91010BC51F8
Course notes http://web.mit.edu/18.06/www/
Online lectures download
http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/VideoLectures/index.htm
Peteris Krumins' notes
http://www.catonmat.net/?s=MIT+Linear+Algebra&submit=Search

Stanford - Human-Computer Interaction Seminars (CS547)
Course notes http://hci.stanford.edu/courses/cs547/
Online lectures 2006/7 http://www.youtube.com/view_play_list?p=32A089D3E2DFB65D
Online lectures 2007/8 http://www.youtube.com/view_play_list?p=27C635EE182143CE
Online lectures 2008/9 http://www.youtube.com/view_play_list?p=CFE6199B78198411
Online lectures 2009/10 http://www.youtube.com/view_play_list?p=F4A01617834A0FB6


Other interesting lecture series:

Berkeley Computer Science 61A, 001 - Spring 2008:

Stanford Data Mining CS246/CS341 (formerly CS345A)

Friday, March 19, 2010

Open Data Sources, Web APIs and the Semantic Web

Links to various data sources that can be used in the push for a semantic web.

General reference
http://en.wikipedia.org/wiki/Linked_Data#Datasets (List of datasets)
http://www.programmableweb.com/ (Open APIs, mashups and the Web as platform)
http://esw.w3.org/TaskForces/CommunityProjects/LinkingOpenData/DataSets (RDF data sets that are part of the emerging Web of Linked Data)
http://blog.visual.ly/data-sources/ (a great list of useful resources for finding data, March 2012)

Dataset providers
Note: these 3 really take the cake and I'm going to start adding to these rather than update this post:
http://www.opendataday.org/wiki/Data (dataset listing page for #odhd)
http://datacatalogs.org/ (aims to be the most comprehensive list of open data catalogs in the world)
http://thedatahub.org/ (registry of open knowledge datasets and projects)


My old dataset providers list:
http://www.quora.com/Data/What-are-some-free-public-data-sets (quora.com free data set links)

http://wiki.dbpedia.org/Datasets (structured information from Wikipedia)
http://www.programmableweb.com/api/dbpedia/mashups

http://www.freebase.com/docs/data (developed by Metaweb)
http://www.programmableweb.com/api/freebase/mashups

http://www.mpi-inf.mpg.de/yago-naga/yago/ (YAGO2 is a huge semantic knowledge base, derived from Wikipedia, WordNet and GeoNames)

http://archive.ics.uci.edu/ml/ (UC Irvine Machine Learning Repository)

http://dbtune.org/ (Serving music-related RDF)

http://www.factual.com/  (evolving data on thousands of topics)

http://www.odata.org/producers (services that expose their data using OData)

http://openspending.org/datasets (government and corporate spending)
http://wiki.openspending.org/Main_Page

http://thedatahub.org/ (WOW, awesome site, thousands of shared datasets)

http://data.gov.uk/ (UK government data)

http://okfn.org/about/ (Good resource, projects using data and links to datasets)


Dataset indexing
http://www.sindice.com/ (Semantic web index)

Query languages/tools
http://en.wikipedia.org/wiki/SPARQL (QPARQL)
http://www.freebase.com/docs/mql/ (MQL for freebase)
http://en.wikipedia.org/wiki/Predictive_Model_Markup_Language (Sharing predictive analytics and data mining models)


People, blogs and groups
http://datavisualization.ch/ (premier news and knowledge resource for data visualization and infographics)
http://flowingdata.com/ (explores how designers, statisticians, and computer scientists are using data to understand ourselves better)
http://blog.kiwitobes.com/ (Toby Segaran, videos)
http://www.dataminingblog.com/list-of-blogs/ (yet another blog list)


Organisations and companies (semantic, bigdata)
http://linkeddata.org/home
http://www.metaweb.com/
http://www.google.com/publicdata/home
http://www.opencalais.com/
http://www.cloudera.com/
http://www.couchbase.com/
http://www.splunk.com/
http://timetric.com/
http://www.vertica.com/
http://www.asterdata.com/
http://www.quantcast.com/


Standards (yeah, need to add to this...)
RDF (Resource Description Framework)
XBRL (eXtensible Business Reporting Language)
SPARQL (SPARQL Protocol and RDF Query Language)
FOAF (Friend of a friend)
OWL (Web Ontology Language)
XFN (XHTML Friends Network)
hCard, hCalendar etc (Microformats in XHTML, see list)
PMML (Predictive Model Markup Language)
OData (Open Data Protocol by Microsoft)









Tuesday, March 2, 2010

Machine learning / AI links and libraries

Code libraries and frameworks

AForge
C# - extensive library for vision, AI, robotics etc
http://code.google.com/p/aforge/
http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=1181072

Emgu CV
.NET - wrapper to the Intel OpenCV image processing library
http://www.emgu.com/wiki/index.php/Main_Page
http://sourceforge.net/projects/emgucv/

Watchmaker Framework
Java - Evolutionary computation framework for evolutionary/genetic algorithms
http://watchmaker.uncommons.org/

ALGLIB
.NET - cross-platform numerical analysis and data processing library
http://www.alglib.net/

Infer.NET
.NET - Microsoft framework for running Bayesian inference in graphical models, used in a wide variety of domains including information retrieval, bioinformatics, epidemiology, vision
http://research.microsoft.com/en-us/um/cambridge/projects/infernet/default.aspx

Microsoft Solver Foundation
.NET - An extensible framework to model and solve complex problems by using constraints, goals, and data.
http://code.msdn.microsoft.com/solverfoundation


Weka Machine Learning Project
A collection of algorithms for solving real-world data mining problems



Software Tools

RapidMiner
Open-source system for data and text mining (Java based)
http://rapid-i.com/
http://sourceforge.net/projects/yale/

R Project
Free software environment for statistical computing and graphics


KNIME
The user-friendly and comprehensive open-source data integration, processing, analysis, and exploration platform.


Online books

A Field Guide to Genetic Programming (free pdf)
Poli, Langdon, McPhee (2009)
http://www.gp-field-guide.org.uk/

The Elements of Statistical Learning: Data Mining, Inference, and Prediction (free pdf)
Hastie, Tibshirani, Friedman (2009)
http://www-stat.stanford.edu/~tibs/ElemStatLearn/

Information Theory, Inference, and Learning Algorithms (free pdf)
David J.C. MacKay (2003)
http://www.inference.phy.cam.ac.uk/mackay/itila/book.html

Evolutionary Computation in Java - A Practical Guide to the Watchmaker Framework (html)
Daniel W. Dyer
http://watchmaker.uncommons.org/manual/index.html

Planning Algorithms (free pdf)
Steven M. LaVall (2006)
http://planning.cs.uiuc.edu/

Evolution of Parallel Cellular Machines: The Cellular Programming Approach (free pdf)
Moshe Sipper (1997)
http://www.moshesipper.com/pcm/


Links and feeds

Interesting information visualisation blog
http://abeautifulwww.com/

Jürgen Schmidhuber's home page
http://www.idsia.ch/~juergen/

Stanford course in machine learning
http://www.youtube.com/view_play_list?gl=AU&hl=en-GB&p=A89DCFA6ADACE599

Podcast
http://www.biota.org/

Library of AI resources
http://www.aaai.org/AITopics/pmwiki/pmwiki.php/AITopics/HomePage

Data Mining and Analytics Resources
http://www.kdnuggets.com/

Saturday, February 27, 2010

Setting up Subversion

REFERENCES
http://www.codinghorror.com/blog/archives/001093.html
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=8100

INSTALLATION

1.1 Download latest svn and tortoise files from link above
1.2 Install Setup-Subversion-1.6.6.msi
1.3 Install TortoiseSVN-1.6.5.16974-x64-svn-1.6.5.msi (choose either x86 or x64 version)


REPOSITORY SETUP

2.1 Create folder for the repository on the server e.g D:\SVN\Repository

2.2 Navigate to D:\SVN\Repository, right click and select
'Create Repository here'

2.3 Choose FSFS filesystem

2.4 Create skeleton project structure somewhere: (where trunk is for
the main code, tags and branches for advanced stuff if used in the
future)

svn://localhost
+---PROJECT1
|   +---branches
|   +---tags
|   \---trunk
\---PROJECT2
   +---branches
   +---tags
   \---trunk

2.5 Right click folder Root, select 'Import' and navigate to
file:///D:/SVN/Repository


CREATE SVN SERVICE

3.1 Setup svnserve as Windows service using the following command (note space before auto after start=):
sc create svnserve binpath= "C:\Program Files (x86)\Subversion\bin\svnserve.exe --service --root D:\SVN\Repository" DisplayName= "Subversion Repository" depend= Tcpip start= auto
(logon as Local System)

3.2 Start the service and set to auto start

3.3 Add users and passwords to D:\SVN\Repository\conf\passwd file
   e.g. [users]
        username1 = password

3.4 Set authorisation settings by editing D:\SVN\Repository\conf\authz
   e.g. anon-access = none
        auth-access = write
        password-db = passwd


FIREWALL
Create rules names Subversion for port 3690, inbound & outbound, private network to allow access from other machines on the network.


GET IT WORKING ON A CLIENT MACHINE

4.1 On your machine, create a working code folder for a project, say
D:\CODE\PROJECT1

4.2 Checkout the trunk for that project by right clicking, selecting
'SVN Checkout', then navigating to
svn:///machinename/PROJECT1/trunk

Thats about it.