def write_robberies(writer, row): print row writer.writerow(["year", "income0", "income1", "coeff0", "coeff1", "coeff2"]) incomes = np.linspace(0, 1e6, 20) for year in range(2010, 2100+1): crime_fraction = np.sin(np.pi*incomes / 1e6) + random.uniform(.5, 1.5) * (1 + (year - 2010) / 200.0) crime = 200 * crime_fraction spline = UnivariateSpline(incomes, crime, s=10, k=2) conditional = SplineModelConditional.make_conditional_from_spline(spline, [0, 1e6]) for jj in range(conditional.size()): row = [year, conditional.y0s[jj], conditional.y1s[jj]] row.extend(conditional.coeffs[jj]) writer.writerow(row)
def skew_gaussian_construct(ys, lps, low_segment, high_segment): mid_segment = SplineModelConditional.make_conditional_from_spline(InterpolatedUnivariateSpline(ys, lps, k=2), (low_segment.y1s[0], high_segment.y0s[0])) conditional = SplineModelConditional() conditional.add_segment(low_segment.y0s[0], low_segment.y1s[0], copy.copy(low_segment.coeffs[0])) for ii in range(mid_segment.size()): conditional.add_segment(mid_segment.y0s[ii], mid_segment.y1s[ii], mid_segment.coeffs[ii]) conditional.add_segment(high_segment.y0s[0], high_segment.y1s[0], copy.copy(high_segment.coeffs[0])) try: conditional.rescale() except: return None return conditional
def make_conditional(header, row, limits): # Look for a special case conditional = FeaturesInterpreter.features_to_gaussian(header, row, limits) if conditional is not None: return conditional conditional = FeaturesInterpreter.features_to_exponential(header, row, limits) if conditional is not None: return conditional conditional = FeaturesInterpreter.features_to_uniform(header, row, limits) if conditional is not None: return conditional spline = FeaturesInterpreter.best_spline(header, row, limits) conditional = SplineModelConditional.make_conditional_from_spline(spline, limits) return conditional.rescale()
def skew_gaussian_construct(ys, lps, low_segment, high_segment): mid_segment = SplineModelConditional.make_conditional_from_spline( InterpolatedUnivariateSpline(ys, lps, k=2), (low_segment.y1s[0], high_segment.y0s[0])) conditional = SplineModelConditional() conditional.add_segment(low_segment.y0s[0], low_segment.y1s[0], copy.copy(low_segment.coeffs[0])) for ii in range(mid_segment.size()): conditional.add_segment(mid_segment.y0s[ii], mid_segment.y1s[ii], mid_segment.coeffs[ii]) conditional.add_segment(high_segment.y0s[0], high_segment.y1s[0], copy.copy(high_segment.coeffs[0])) try: conditional.rescale() except: return None return conditional
def make_conditional(header, row, limits): # Look for a special case conditional = FeaturesInterpreter.features_to_gaussian( header, row, limits) if conditional is not None: return conditional conditional = FeaturesInterpreter.features_to_exponential( header, row, limits) if conditional is not None: return conditional conditional = FeaturesInterpreter.features_to_uniform( header, row, limits) if conditional is not None: return conditional spline = FeaturesInterpreter.best_spline(header, row, limits) conditional = SplineModelConditional.make_conditional_from_spline( spline, limits) return conditional.rescale()