Files
regressions/utility.py
2018-08-20 17:32:15 +09:00

62 lines
1.4 KiB
Python

import numpy as np
import pandas as pd
class Loader:
def load_data():
#df = pd.read_csv('data/sample.txt', delimiter=',', header=None).astype(np.float32)
#df = pd.read_csv('data/ex1data1.txt', delimiter=',', header=None).astype(np.float32)
df = pd.read_csv('data/train.csv', delimiter=',', comment='#').astype(np.float32)
df[0] = df['x']
df[1] = df['y']
df[2] = pd.Series([1]*len(df[0]))
df = df.reindex(columns=[1, 2, 0])
return df
class Stepper:
def __init__(self, print_gap=1.0e-4, break_gap=1.0e-9):
self._prev_cost = 0
self._cost = 0
self._cost_diff = 0
self._serial_divergence_cnt = 0
self.accumulator = 0
self._print_gap = print_gap
self._break_gap = break_gap
self._b_print_turn = False
self._b_break_turn = False
def add_step(self, step):
self._b_print_turn = False
self._b_break_turn = False
self._prev_cost = self._cost
self._cost = step
self._cost_diff = self._cost - self._prev_cost
self.accumulator += abs(self._cost_diff)
if self.accumulator >= self._print_gap:
self.accumulator = 0
self._b_print_turn = True
if self._prev_cost != 0 and (self._cost_diff > 0 or abs(self._cost_diff) < self._break_gap):
self._serial_divergence_cnt += 1
if self._serial_divergence_cnt >= 5:
self._b_break_turn = True
else:
self._serial_divergence_cnt = 0
def is_print_turn(self):
return self._b_print_turn
def is_break_turn(self):
return self._b_break_turn