Skip to content

Instantly share code, notes, and snippets.

View jmailman's full-sized avatar

Joshua Banks Mailman jmailman

View GitHub Profile
@jmailman
jmailman / 18_sparse_data_B_Spline_tighter_sampling_increment.py
Last active April 5, 2021 21:36
18_sparse_data_B_Spline_tighter_sampling_increment.py
sampling_increment = 9
sparse_input = in_array[::sampling_increment]
sparse_data = curve[::sampling_increment]
title_suffix = ' sparse data' + ' - with B-Spline (sampling increment = 9)'
x_interp = np.linspace(x_min, x_max, 100)
BSpline = scipy.interpolate.make_interp_spline(sparse_input, sparse_data, 2)
y_BSpline = BSpline(x_interp)
@jmailman
jmailman / 17_sparse_data_B_Spline.py
Last active April 5, 2021 15:10
17_sparse_data_B_Spline.py
title_suffix = 'smooth data (assumed ground truth)'
graph(in_array, curve, title_suffix , scatter=True, solid_line=False)
title_suffix = ' – sparse data' + ' - with B-Spline'
import scipy
x_interp = np.linspace(x_min, x_max, 100)
BSpline = scipy.interpolate.make_interp_spline(sparse_input, sparse_data, 2)
y_BSpline = BSpline(x_interp)
@jmailman
jmailman / 16_noisy_data_with_moving_average.py
Last active April 2, 2021 16:11
16_noisy_data_with_moving_average.py
title_suffix = ' - noisy data'
graph(in_array, noisy_data, title_suffix, scatter=True, solid_line=False)
import pandas as pd
noisy_data_series = pd.Series(noisy_data)
# Use pandas's rolling method to generate a list of moving average series based on different bin sizes
bin_sizes = [3, 5, 7, 10]
mvg_avg_list = [ (in_array, noisy_data_series.rolling(bin_size).mean()) for bin_size in bin_sizes ]
title_suffix = ' - noisy data'+ ' - moving average'
@jmailman
jmailman / 15_noisy_data_with_20th_degree_polynomial.py
Created April 2, 2021 16:04
15_noisy_data_with_20th_degree_polynomial.py
title_suffix = ' - noisy data'
graph(in_array, noisy_data, title_suffix, scatter=True, solid_line=False)
z = np.polyfit(in_array, noisy_data, 20)
p = np.poly1d(z)
xp = np.linspace(x_min, x_max, 100)
title_suffix = ' - noisy data'+ ' - 20th dgr polynomial regression'
graph(in_array, noisy_data, ' - noisy data'+ ' - 20th dgr polynomial regression', scatter=True, solid_line=False, line_viz = [(xp, p(xp))])
@jmailman
jmailman / 14_noisy_data_with_cubic_polynomial.py
Created April 2, 2021 16:02
14_noisy_data_with_cubic_polynomial.py
title_suffix = ' - noisy data'
graph(in_array, noisy_data, title_suffix, scatter=True, solid_line=False)
x_min, x_max = -3.3, 4.3
from numpy.polynomial import polynomial as P
z = np.polyfit(in_array, noisy_data, 3)
p = np.poly1d(z)
xp = np.linspace(x_min, x_max, 100)
title_suffix = ' - noisy data'+ ' - 3rd dgr polynomial regression'
title_suffix = ' - noisy data'
graph(in_array, noisy_data, title_suffix, scatter=True, solid_line=False)
m, b = np.polyfit(in_array, noisy_data, 1)
title_suffix = ' - noisy data'+ ' - with linear regression'
graph(in_array, noisy_data, title_suffix, scatter=True, solid_line=False, line_viz = [(in_array, m*x+b)])
@jmailman
jmailman / 12_noisy_data_and_linear_interpolation_of_it.py
Last active April 2, 2021 16:00
12_noisy_data_and_linear_interpolation_of_it.py
title_suffix = ' - noisy data'
graph(in_array, noisy_data, title_suffix, scatter=True, solid_line=False)
title_suffix = ' - noisy data'+ ' - with linear interpolation'
graph(in_array, noisy_data, title_suffix, scatter=True, solid_line=True)
title_suffix = 'smooth data (assumed ground truth)'
graph(in_array, curve, title_suffix , scatter=True, solid_line=False)
title_suffix = ' - noisy data'
graph(in_array, noisy_data, title_suffix, scatter=True, solid_line=False)
title_suffix = ' - sparse data'
graph(sparse_input, sparse_data, title_suffix, scatter=True, solid_line=False, line_viz = None)
@jmailman
jmailman / 10_three_ground_truth_graphs_via_defined_graph_function.py
Created April 2, 2021 15:30
10_three_ground_truth_graphs_via_defined_graph_function.py
title_suffix = 'smooth data (assumed ground truth)'
graph(in_array, curve, title_suffix , scatter=True, solid_line=False)
title_suffix = 'smooth data' + ' with linear interpolation'
graph(in_array, curve, title_suffix, scatter=True, solid_line=True)
title_suffix = 'smooth data' + ' - linear interpolation only'
graph(in_array, curve, title_suffix, scatter=False, solid_line=True)
@jmailman
jmailman / 9_graph_function_defined.py
Created April 2, 2021 15:26
9_graph_function_defined.py
def graph(x_array, y_array, custom_title, scatter=True, solid_line=False, line_viz = None):
''' This function can accept basic x and y arrays for a basic
scatter plot or line plot (or both), but it can also accept,
in its line_viz parameter, a list of x, y array pairs.
Its configuration for coloring, line weight, and dot size are
tailored specifically for the smoothing examples presented in
this blog.'''
# Set up the plotting
figure_proportions = (10, 5)