Skip to content

Instantly share code, notes, and snippets.

View bryangoodrich's full-sized avatar

Bryan Goodrich bryangoodrich

View GitHub Profile
@bryangoodrich
bryangoodrich / LambdaLists.r
Last active July 28, 2020 13:19
List Out Of Lambda [in R] An adaptation of Steve Losh's JavaScript exploration[1] with a hat tip to Hadley Wickham's Advanced R Programming[2] that led me there. References [1] http://stevelosh.com/blog/2013/03/list-out-of-lambda/ [2] http://adv-r.had.co.nz/
# Created by Bryan Goodrich
# Version 0.1
#
# Title: List Out Of Lambda [in R]
#
# An adaptation of Steve Losh's JavaScript exploration[1] with a hat tip to
# Hadley Wickham's Advanced R Programming[2] that led me there.
#
# References
# [1] http://stevelosh.com/blog/2013/03/list-out-of-lambda/
@bryangoodrich
bryangoodrich / GameOfLife.R
Last active September 9, 2016 15:01
I want to play a game ... Conway's Game of Life! For explanation, see http://en.wikipedia.org/wiki/Conway's_Game_of_Life
#' Execute a round of the Game of Life
#'
#' I want to play a game. Specifically, Conway's Game of Life.
#'
#' @param x a matrix populated with 0s and 1s.
#' @param birth a vector indicating the birthing rule. Defaults to 3.
#' @param stay a vector indicating the stay alive rule Defaults to c(2,3).
#' @return a matrix representing an updated input matrix according to the rules
#' @references \url{http://en.wikipedia.org/wiki/Conway's_Game_of_Life}
#' @author Bryan Goodrich
@bryangoodrich
bryangoodrich / GradientDescent.R
Last active August 29, 2015 14:05
Gradient Descent for Logistic Classifier
gradientDescent <- function(X, y, initial_theta, method = "BFGS", ...) {
m <- nrow(y)
sigmoid <- function(x) 1 / (1 + exp(-x))
gradFunction <- function(theta) (1/m) * (t(X) %*% (sigmoid(X %*% theta)-y))
costFunction <- function(theta)
(1/m) * (t(-y) %*% log(sigmoid(X %*% theta)) - t(1-y) %*% log(1 - sigmoid(X %*% theta)))
optim(initial_theta, costFunction, gradFunction, method = method, ...)
}
@bryangoodrich
bryangoodrich / RegularizedGradientDescent.R
Created August 26, 2014 05:45
Regularized Gradient Descent Logistic Classifier with Decision Boundary
loadInput <- function() {
structure(c(0.051267, -0.092742, -0.21371, -0.375, -0.51325,
-0.52477, -0.39804, -0.30588, 0.016705, 0.13191, 0.38537, 0.52938,
0.63882, 0.73675, 0.54666, 0.322, 0.16647, -0.046659, -0.17339,
-0.47869, -0.60541, -0.62846, -0.59389, -0.42108, -0.11578, 0.20104,
0.46601, 0.67339, -0.13882, -0.29435, -0.26555, -0.16187, -0.17339,
-0.28283, -0.36348, -0.30012, -0.23675, -0.06394, 0.062788, 0.22984,
0.2932, 0.48329, 0.64459, 0.46025, 0.6273, 0.57546, 0.72523,
0.22408, 0.44297, 0.322, 0.13767, -0.0063364, -0.092742, -0.20795,
-0.20795, -0.43836, -0.21947, -0.13882, 0.18376, 0.22408, 0.29896,
@bryangoodrich
bryangoodrich / PercolationModel.py
Created March 17, 2015 06:42
Using Union-Find Data Structure to Model Percolation System
import array
class WeightedQuickUnion:
def __init__(self, N):
self.count = N
self.id = array.array('i', range(N))
self.size = array.array('i', [1] * N)
def connected(self, p, q):
return self.find(p) == self.find(q)
@bryangoodrich
bryangoodrich / TwitterTopics.r
Last active June 29, 2022 20:33
Twitter Topic Modeling Using R
# Twitter Topic Modeling Using R
# Author: Bryan Goodrich
# Date Created: February 13, 2015
# Last Modified: April 3, 2015
#
# Use twitteR API to query Twitter, parse the search result, and
# perform a series of topic models for identifying potentially
# useful topics from your query content. This has applications for
# social media, research, or general curiosity
#
@bryangoodrich
bryangoodrich / reverse_input.cpp
Last active August 29, 2015 14:25
Reverse an integer text input stream.
/*********************************************************************
* Compilation: g++ -std=c++11 reverse.cpp -o reverse.exe
* Execution: reverse.exe < input.txt
*
* Reverse an integer text input stream
*
* This is a toy code snippet for using C++11 types to handle
* an input stream, store the incoming data by line, and reverse
* it while printing to standard output.
*
@bryangoodrich
bryangoodrich / sorted_map.cpp
Created July 24, 2015 22:39
Sort an incoming map by key length, ties broken by string sorted order
/*********************************************************************
* Compilation: g++ -std=c++11 map.cpp -o map.exe
* Execution: map.exe < input.txt
*
* Output the contents of a sorted map
*
* This is a toy code snippet for using C++11 types to handle
* an input stream, store the incoming data columns by line,
* and sort the output list according to length of key,
* with ties broken by string sort order (map default).
@bryangoodrich
bryangoodrich / flip_grid.cpp
Created July 24, 2015 23:18
Input and rotate a grid through designated input format
/*********************************************************************
* Compilation: g++ grid.cpp -o grid.exe
* Execution: grid.exe < input.txt
*
* Input and rotate a grid
*
* This is a toy code snippet for handling informational
* input (integer size of grid), importing multiple
* columns, and exporting with formatted output. Nothing
* amazing, but can provide a basis for this sort of
@bryangoodrich
bryangoodrich / grid_file.cpp
Created July 25, 2015 00:12
Input and rotate a grid through designated input format and file import
/*********************************************************************
* Compilation: g++ grid_file.cpp -o grid_file.exe
* Execution: grid_file.exe input.txt
*
* Input and rotate a grid
*
* This is a toy code snippet for handling informational
* input (integer size of grid), importing multiple
* columns, and exporting with formatted output. This
* example uses C++ approaches to file and string input