def updated_model_with_errors(parameter): layout = { 'yaxis': { 'range': [0, 450], 'title': 'sales' }, 'xaxis': { 'title': 'ad spend' } } inputs = list(range(1500, 4500, 250)) predictions = list( map(lambda ad_spend: parameter * ad_spend, observed_ad_spends)) data_trace = trace_values([2000, 3500, 4000], [260, 445, 490], name='actual sales') predictions_trace = trace_values(observed_ad_spends, predictions, 'lines', name='predictions') y_values_y_hats = list(zip(observed_sales, predictions)) errors = list(map(lambda pair: pair[0] - pair[1], y_values_y_hats)) error_traces = error_line_traces(observed_ad_spends, observed_sales, errors) return plot([data_trace, predictions_trace] + error_traces)
def plot_data_and_model(): inputs = list(range(1500, 4500, 250)) predictions = list(map(lambda input: .15*input,inputs)) predictions_trace = trace_values(inputs, predictions, 'lines', name = 'predictions') data_trace = trace_values([2000, 3500, 4000], [260, 445, 490], name = 'actual sales') layout = {'yaxis': {'range': [0, 18], 'title': 'sales'}, 'xaxis': {'title': 'ad spend'}} return plot([data_trace, predictions_trace])
def updated_model_with_errors(parameter): layout = {'yaxis': {'range': [0, 18], 'title': 'shot distance'}, 'xaxis': {'title': 'shot angle'}} predictions = list(map(lambda angle: parameter*angle, observed_shot_angles)) actual_trace = trace_values(observed_shot_angles, observed_distances, name = 'actual shots') predictions_trace = trace_values(observed_shot_angles, predictions, 'lines', name = 'predictions') y_values_y_hats = list(zip(observed_distances, predictions)) errors = list(map(lambda pair: pair[0] - pair[1], y_values_y_hats)) error_traces = error_line_traces(observed_shot_angles, observed_distances, errors) return py.plot([actual_trace, predictions_trace] + error_traces)
def delta_x_trace(list_of_terms, x_value, delta): initial_f = output_at(list_of_terms, x_value) trace = trace_values(x_values=[x_value, x_value + delta], text=[str(x_value), str(x_value + delta)], y_values=[initial_f, initial_f], mode = 'lines+text', name = 'x2 - x1 = ' + str(initial_f + delta) + ' - ' + str(initial_f) + ' = ' + str(delta)) return trace
def delta_f_trace(list_of_terms, x_value, delta_x): initial_f = output_at(list_of_terms, x_value) delta_y = delta_f(list_of_terms, x_value, delta_x) trace = trace_values(x_values=[x_value + delta_x, x_value + delta_x], y_values=[initial_f, initial_f + delta_y], text=[str(initial_f), str(initial_f + delta_y)], mode = 'lines+text', name = 'y2 - y1 = ' + str(initial_f + delta_y) + ' - ' + str(initial_f) + ' = ' + str(delta_y)) return trace
def plot_data_and_errors(): inputs = [.30, .40, .50, .60, .70] predictions = list(map(lambda angle: 40*angle,inputs)) predictions_trace = trace_values(inputs, predictions, 'lines', name = 'predictions') errors = [-4, -9, -11] error_traces = error_line_traces(observed_shot_angles, observed_distances, errors) return py.plot([data_trace, predictions_trace] + error_traces)
def delta_x_trace(list_of_terms, x_value, delta): initial_f = output_at(list_of_terms, x_value) trace = trace_values(x_values=[x_value, x_value + delta], text=[str(x_value), str(x_value + delta)], y_values=[initial_f, initial_f], mode = 'lines+text', name = 'x2 - x1 = ' + str(initial_f + delta) + ' - ' + str(initial_f) + ' = ' + str(delta), options = {'textposition': 'bottom'}) return trace
def delta_f_trace(list_of_terms, x_value, delta_x): initial_f = output_at(list_of_terms, x_value) delta_y = delta_f(list_of_terms, x_value, delta_x) trace = trace_values(x_values=[x_value + delta_x, x_value + delta_x], y_values=[initial_f, initial_f + delta_y], text=[str(initial_f), str(initial_f + delta_y)], mode = 'lines+text', name = 'y2 - y1 = ' + str(initial_f + delta_y) + ' - ' + str(initial_f) + ' = ' + str(delta_y), options = {'textposition': 'right'}) return trace
def plot_data_and_errors(): inputs = list(range(1500, 4500, 250)) predictions = list(map(lambda input: .15*input,inputs)) predictions_trace = trace_values(inputs, predictions, 'lines', name = 'predictions') errors = [-40, -80, -110] ad_spends = [2000, 3500, 4000] sales = [260, 445, 490] error_traces = error_line_traces(ad_spends, sales, errors) return plot([data_trace, predictions_trace] + error_traces)
def delta_x_trace(function, x_value, delta): initial_f = function(x_value) trace = trace_values(x_values=[x_value, x_value + delta], text=[str(x_value), str(x_value + delta)], y_values=[initial_f, initial_f], mode='lines+text', name='x2 - x1 = ' + str(initial_f + delta) + ' - ' + str(initial_f) + ' = ' + str(delta), options={'textposition': 'bottom left'}) return trace
def delta_f_trace(function, x_value, delta_x): initial_f = function(x_value) delta_y = delta_f(function, x_value, delta_x) trace = trace_values(x_values=[x_value + delta_x, x_value + delta_x], y_values=[initial_f, initial_f + delta_y], text=[str(initial_f), str(initial_f + delta_y)], mode='lines+text', name='y2 - y1 = ' + str(initial_f + delta_y) + ' - ' + str(initial_f) + ' = ' + str(delta_y), options={'textposition': 'top right'}) return trace
def plot_data_and_model(): model_trace = trace_values(angles, predicted_distances, mode='lines', name='model') layout = { 'yaxis': { 'range': [0, 18], 'title': 'shot distance' }, 'xaxis': { 'title': 'shot angle' } } return plot([data_trace, model_trace])
from graph import trace_values, plot from graph import m_b_trace, plot, m_b_data, trace_values from error import error_line_traces angles = [.1, .2, .3, .4, .5, .6, .7] predicted_distances = list(map(lambda angle: 40 * angle, angles)) model_trace = trace_values(angles, predicted_distances, mode = 'lines', name = 'model') data_trace = trace_values([2000, 3500, 4000], [260, 445, 490], name = 'actual sales') observed_ad_spends = [2000, 3500, 4000] observed_sales = [260, 445, 490] def plot_data_and_model(): inputs = list(range(1500, 4500, 250)) predictions = list(map(lambda input: .15*input,inputs)) predictions_trace = trace_values(inputs, predictions, 'lines', name = 'predictions') data_trace = trace_values([2000, 3500, 4000], [260, 445, 490], name = 'actual sales') layout = {'yaxis': {'range': [0, 18], 'title': 'sales'}, 'xaxis': {'title': 'ad spend'}} return plot([data_trace, predictions_trace]) def plot_data_and_errors(): inputs = list(range(1500, 4500, 250)) predictions = list(map(lambda input: .15*input,inputs)) predictions_trace = trace_values(inputs, predictions, 'lines', name = 'predictions') errors = [-40, -80, -110] ad_spends = [2000, 3500, 4000] sales = [260, 445, 490] error_traces = error_line_traces(ad_spends, sales, errors) return plot([data_trace, predictions_trace] + error_traces) def updated_model_with_errors(parameter): layout = {'yaxis': {'range': [0, 450], 'title': 'sales'}, 'xaxis': {'title': 'ad spend'}}
def function_values_trace(list_of_terms, x_values): function_values = list(map(lambda x: output_at(list_of_terms, x), x_values)) return trace_values(x_values, function_values, mode='line')
def function_values_trace(list_of_terms, x_values): function_values = list(map(lambda x: output_at(list_of_terms, x),x_values)) return trace_values(x_values, function_values, mode = 'line')
def derivative_values_trace(function, x_values, delta_x): derivative_values = list( map(lambda x: derivative_of(function, x, delta_x), x_values)) return trace_values(x_values, derivative_values, mode='lines')
def function_values_trace(function, x_values): function_values = list(map(lambda x: function(x), x_values)) return trace_values(x_values, function_values, mode='lines')
def derivative_values_trace(list_of_terms, x_values, delta_x): derivative_values = list(map(lambda x: derivative_of(list_of_terms, x, delta_x), x_values)) return trace_values(x_values, derivative_values, mode = 'line')
from graph import trace_values, plot from graph import m_b_trace, plot, m_b_data, trace_values from error import error_line_traces angles = [.1, .2, .3, .4, .5, .6, .7] predicted_distances = list(map(lambda angle: 40 * angle, angles)) data_trace = trace_values([.30, .50, .70], [8, 11, 17], name='actual shots') observed_shot_angles = [.30, .50, .70] observed_distances = [8, 11, 17] def plot_data_and_model(): model_trace = trace_values(angles, predicted_distances, mode='lines', name='model') layout = { 'yaxis': { 'range': [0, 18], 'title': 'shot distance' }, 'xaxis': { 'title': 'shot angle' } } return plot([data_trace, model_trace]) def plot_data_and_errors(): inputs = [.30, .40, .50, .60, .70] predictions = list(map(lambda angle: 40 * angle, inputs))
def derivative_values_trace(list_of_terms, x_values, delta_x): derivative_values = list( map(lambda x: derivative_of(list_of_terms, x, delta_x), x_values)) return trace_values(x_values, derivative_values, mode='line')
from graph import model_trace, trace_rss, pair_colors, plot_side_by_side from graph import trace_values m_values = [.5, .6] b = 100 rss_traces = [] model_traces = [] ad_spends = [800, 1500, 2000, 3500, 4000] tshirt_sales = [330, 780, 1130, 1310, 1780] actual_trace = trace_values(x_values=ad_spends, y_values=tshirt_sales) for m in m_values: rss_trace = trace_rss(m, b, ad_spends, tshirt_sales) rss_traces.append(rss_trace) built_model_trace = model_trace(m, b, ad_spends, tshirt_sales) model_traces.append(built_model_trace) pair_colors(model_traces, rss_traces) figure = plot_side_by_side([actual_trace] + model_traces, rss_traces)