Skip to content

Instantly share code, notes, and snippets.

jpjacobs

Block or report user

Report or block jpjacobs

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@jpjacobs
jpjacobs / knn.pi
Last active Aug 29, 2015
Picat machine learning
View knn.pi
% Machine learning toolbox
module ml.
import util.
% calculates only half of the distances: symmetry
pdist(M) = M3 =>
M3 = new_array(M.length, M.length),
foreach(I in 1..M.length, J in I..M.length)
M3[I,J] = sum([(M[I,K]-M[J,K])**2 : K in 1..M[1].length]),
M3[J,I] = M3[I,J]
View knn.ijs
NB. knn graph
knn =: 4 : 0
d =. (+/@:*:@:-)"1/~ y NB. distances between vectors in y
n =. x ({. }.@/:)"1 d NB. get nearest neighbors (exclude self)
W =. n (_"_)`(<@<@<@[)`]}"1 d NB. set all non-neighbors to _
W =. (<.|:) W NB. make symmetric
)
View plotgraph.ijs
NB. Make square grid of side y
grid =: |:@:(,"2)@(,: |:)@(#"0 i.)
plotgraph =: 4 : 0 NB. todo: implement autoplacement of locations not given
pd 'reset'
pd 'type line;pensize 1;color blue'
edges =. ; (i.#x) ;/@,.&({&x)"0 &.> y
edges =. <"1 ~.@:(({~"1 /:@{.)"2) > edges NB. normalize: sort points on ascending x, eliminate double edges.
edges =. (#~ -.@({.&>-:{:&>)"1) edges NB. eliminate loops. Empties automagically disappear.
pd"1 edges
@jpjacobs
jpjacobs / som.ijs
Last active Feb 29, 2016
Kohonen SOM
View som.ijs
NB. Self-Organising map
require 'math/lapack/geev'
require 'tables/csv'
require 'viewmat'
NB. closeall_jviewmat_ ''
NB. parameters:
N =: 30 NB. side of neuron map. (N -> (*:N) neurons)
ntrain =: 25 NB. number of training samples per class
niter =: 10000 NB. number of iterations
'a0 an' =: 25 1 NB. Starting and ending learning factor
View fastica
NB. Fast ICA
NB. http://en.wikipedia.org/wiki/FastICA
require 'math/lapack math/lapack/geev'
require 'plot'
center =: -"1 +/%# NB. subtract column means
mp =: +/ .* NB. matrix product
cov =: (mp"2 1)~&.|: ] % <:^:(1&<)@# NB. Covariance (note, does NOT center)
I =: =@:i. NB. unit matrix
clean =: * |@* NB. clean near-to-zero values
whiten =: (mp ([ mp (I@# % %:)@] mp |:@[)&>/@(2b110&geev_jlapack_)@cov)@center
View gist:d0e92be3dfed7ed2df92
NB. Signal Processing in J
NB. ========================
NB. Mainly written as exercise, so no guarantees
NB. cocurrent <'jimproc'
NB. Assumptions : 1-cell = 1 sample of dimensionsionality $ samp
NB. set of samples in 2-cell
NB. Monad mean y
NB. Mean of data samples in y
mean =: +/ % #
View gist:63292d6d5b7ac34ceba3
NB. Listen to UDP stream (phone IMU eg.)
load'socket'
load'graph'
(;:'jsocket jdefs z') copath 'base'
sk =: 0 pick sdcheck sdsocket AF_INET_jdefs_,SOCK_DGRAM_jdefs_,0
sdcheck sdbind sk;AF_INET;'';5555
NB. sensor_number check socket
View gist:5d26fd1a910f1c64e28d
NB. Parpool.ijs
NB. ===================================
NB. Attempt to make a J parpool
NB. ----------------------------
NB. Todo's:
NB. - Spin up tasks
NB. - Use net/clientserver's jsss/jssc for workers resp master
NB. - Figure out how to automatically find data from sentence and send to each worker if needed
NB. - keep old data? or discard after return?
NB. - exploit rank (IRS) write parfor / blockprocessing
View gist:ae95fbecb0ef0fc7f0ec
NB. parpool.ijs
NB. Attempt to make a J parpool
NB. ----------------------------
NB. Todo's:
NB. - Spin up tasks
NB. - Use net/clientserver's jsss/jssc for workers resp master
NB. - Figure out how to automatically find data from sentence and send to each worker if needed
NB. - keep old data? or discard after return?
NB. - exploit rank (IRS) write parfor / blockprocessing
NB. ...
You can’t perform that action at this time.