Skip to content

Instantly share code, notes, and snippets.

View coppeliaMLA's full-sized avatar

coppelia machine learning and analytics coppeliaMLA

View GitHub Profile
@coppeliaMLA
coppeliaMLA / SankeyClusComp
Last active August 29, 2015 14:03
Generates the data for comparing two clusters using a Sankey diagram
clusComp<-function(cl1, cl2, num.clus){
#Set up object for recording clusters
clus.change<-NULL
ct1<-cutree(cl1, k=num.clus)
add.1<-data.frame(size=rep(1, length(ct1)), ind=names(ct1), cluster=paste0(1, ".", ct1))
ct2<-cutree(cl2, k=num.clus)
add.2<-data.frame(size=rep(2, length(ct2)), ind=names(ct2), cluster=paste0(2, ".", ct2))
@coppeliaMLA
coppeliaMLA / bagHclust.R
Created June 26, 2014 16:28
Bagging algorithm for hclust
library(reshape2)
#Bagging hierarchical clustering
bagHClust<-function(data, n, k, size, outlier.th) {
clus.bs<-NULL
for (i in 1:n) {
@coppeliaMLA
coppeliaMLA / visGAPath.R
Last active August 29, 2015 14:03
Visualising the path of a genetic algorithm
# *--------------------------------------------------------------------
# | FUNCTION: visGAPath
# | Function for visualising the path of a genetic algorithmn using
# | principal components analysis
# *--------------------------------------------------------------------
# | Version |Date |Programmer |Details of Change
# | 01 |18/04/2012|Simon Raper |first version.
# *--------------------------------------------------------------------
# | INPUTS: func The function to be optimised
# | npar The number of parameters to optimise over
@coppeliaMLA
coppeliaMLA / visGAExamples.R
Created June 27, 2014 10:52
Examples for visualising the path of a genetic algorithm
#Maximize a mixture of multivariate normal distributions
library(mvtnorm)
mnMix&lt;-function(args){
mean.vec.d1&lt;-rep(0.3,5)
std.vec.d1&lt;-diag(rep(1,5))
mean.vec.d2&lt;-rep(1,5)
std.vec.d2&lt;-diag(rep(1.5,5))
mean.vec.d3&lt;-c(1, 5, 2, 1, 0)
std.vec.d3&lt;-diag(rep(0.5, 5))
if (args[1]&lt;0){
@coppeliaMLA
coppeliaMLA / busterExample1.R
Created July 8, 2014 16:02
Buster Example 1
#Testing on the iris data set
iris.dist<-dist(iris[,1:4])
bhc<-buster(iris.dist, n=250, k=3, size=0.66, method='ward', pct.exc=0.1)
plot(bhc)
#We see the unstable observations in pink.
cluster<-bhc$obs.eval$cluster[order(bhc$obs.eval$obs.ind)]
plot(iris[,1:4], col=6-cluster, pch = rep(15:17, each=50))
@coppeliaMLA
coppeliaMLA / busterExample2.R
Created July 8, 2014 16:07
Buster Example 2
#Another simple test
x.1<-rnorm(50, 10, 3)
y.1<-rnorm(50, 10, 3)
x.2<-rnorm(50, 20, 3)
y.2<-rnorm(50, 10, 3)
x.3<-rnorm(50, 13, 3)
y.3<-rnorm(50, 20, 3)
test.data<-data.frame(group=rep(1:3, each=50), x=c(x.1, x.2, x.3), y=c(y.1, y.2, y.3))
@coppeliaMLA
coppeliaMLA / CreateData.R
Last active August 29, 2015 14:05
PMMLExample
exp1<-rnorm(100000)
exp2<-rnorm(100000)
exp3<-rnorm(100000)
noise<-rnorm(100000)
lin.pred<-5*exp1+2*exp2+6*exp3+noise
response.prob<-1/(1+exp(-lin.pred))
response<-as.numeric(response.prob>0.5)
toy.data<-data.frame(response, exp1, exp2, exp3)
write.csv(toy.data, 'ToyData.csv', row.names = FALSE)
@coppeliaMLA
coppeliaMLA / index.html
Created October 26, 2014 09:40
ROI Fan
<!DOCTYPE html>
<meta charset="utf-8">
<style>
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
width: 960px;
height: 500px;
position: relative;
}
@coppeliaMLA
coppeliaMLA / tree.json
Last active August 29, 2015 14:17
Example json for tree visualisations
{
"name": "root",
"visits": "202K",
"children": [
{
"name": "purpledog.com",
"visits": "50K"
},
{
"name": "squishedfish.co.uk",
<head>
<script src="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js"></script>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.css"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.16/d3.min.js"></script>
<style> #mapid {
height: 800px;
} </style>
</head>
<body>