def main(): # 引数の処理 target_time = "" # 処理対象の時刻を引数で指定 target_dir = "" try_times = 10 # 試行回数 argvs = sys.argv # コマンドライン引数を格納したリストの取得 print(argvs) argc = len(argvs) # 引数の個数 if argc > 3: target_time = argvs[1] # 16 or 23 target_dir = argvs[2] # 結果を保存するフォルダ名 try_times = int(argvs[3]) # 作成する学習器の数(RFなら2000〜3000が良いと思う) else: print("input: target-time, target-dir, try-times") exit() # 教師データ作成の準備 terms = [(dt(2004, 2, 18), dt(2013, 9, 3)), (dt(2015, 6, 23), dt(2017, 9, 30))] # for aso #terms = [(dt(2010, 2, 18), dt(2013, 9, 3)), (dt(2015, 6, 23), dt(2016, 5, 1))] # for aso #terms = [(dt(2015, 6, 23), dt(2016, 2, 1))] # for aso #terms = [(dt(2015, 3, 1), dt(2016, 4, 1))] # for chichibu _save_flag = False # 検証用にファイルを残したいなら、Trueとする # 特徴生成オブジェクト作成 fg_obj = feature.feature_generator(target_time) tc = create_learning_data.teacher_creator( fg_obj, terms, "unkai_date.csv") # 一度メモリ内に教師データを作成するが、時間がかかる。 process(target_dir, tc, save_flag=_save_flag, try_times=try_times)
def main(): # 引数の処理 target_time = "" # 処理対象の時刻を引数で指定 target_dir = "" try_times = 10 # 試行回数 argvs = sys.argv # コマンドライン引数を格納したリストの取得 print(argvs) argc = len(argvs) # 引数の個数 if argc > 3: target_time = argvs[1] # 16 or 23 target_dir = argvs[2] # 結果を保存するフォルダ名 try_times = int(argvs[3]) # 作成する学習器の数(RFなら2000〜3000が良いと思う) else: print("input: target-time, target-dir, try-times") exit() # 教師データ作成の準備 terms = [(dt(2004, 2, 18), dt(2013, 9, 3)), (dt(2015, 6, 23), dt(2017, 9, 30))] # for aso #terms = [(dt(2010, 2, 18), dt(2013, 9, 3)), (dt(2015, 6, 23), dt(2016, 5, 1))] # for aso #terms = [(dt(2015, 6, 23), dt(2016, 2, 1))] # for aso #terms = [(dt(2015, 3, 1), dt(2016, 4, 1))] # for chichibu _save_flag = False # 検証用にファイルを残したいなら、Trueとする # 特徴生成オブジェクト作成 fg_obj = feature.feature_generator(target_time) tc = create_learning_data.teacher_creator(fg_obj, terms, "unkai_date.csv") # 一度メモリ内に教師データを作成するが、時間がかかる。 process(target_dir, tc, save_flag=_save_flag, try_times=try_times)
def main_process(target_time, target_dir, terms): """ 外部からの呼び出しを意識している。 target_time: str, 予測したい時刻(生成する特徴量の作成に影響する) target_dir: str, 学習器が保存されたフォルダ名 terms: list, 処理期間を格納したリスト。要素はタプル。要素の数は複数あっても良い。 """ # 引数に合わせて使う特徴ベクトル生成関数を変えて、検証する fg_obj = feature.feature_generator(target_time) sub_process2(target_dir, fg_obj, terms)
def main(): # 処理の対象期間(過去のデータに加えて、最新の観測データも加えるので、タプルで期間を指定する) #terms = [(dt(2004, 2, 18), dt(2013, 9, 3)), (dt(2015, 6, 23), dt(2016, 1, 4))] terms = [(dt(2015, 6, 23), dt(2015, 11, 30))] # 特徴ベクトルを作成する関数 fg_obj = feature.feature_generator(23) # 特徴ベクトルを作成して保存 tc = teacher_creator(fg_obj, terms) tc.save_teacher()
def main(): # 機械学習オブジェクトを生成(復元) clf = mc.load(mc.default_path) # 特徴生成オブジェクト作成 fg_obj = feature.feature_generator(23) predict( clf, date_range(datetime.datetime(2015, 6, 23), datetime.datetime(2015, 10, 24)), fg_obj, True)
def main(): # 機械学習オブジェクトを生成(復元) clf = mc.load(mc.default_path) # 特徴生成オブジェクト作成 fg_obj = feature.feature_generator(23) predict( clf, date_range(datetime.datetime(2015, 6, 23), datetime.datetime(2015, 10, 24)), fg_obj, True )
def main_process(target_time, target_dir): """ 外部からの呼び出しを意識している。 """ # 処理対象の制限(処理時間の短縮になるかも) #terms = [(dt(2016, 5, 1), dt(2016, 5, 19))] terms = [(dt(2016, 8, 1), dt(2016, 9, 8))] # 引数に合わせて使う特徴ベクトル生成関数を変えて、検証する fg_obj = feature.feature_generator(target_time) _path = sub_process2(target_time, target_dir, fg_obj, terms) return [_path]
def __init__(self, key='train'): # Specify data path assert key in ('train', 'val', 'test') if key == 'train': self._data_path = workspace_config.train_path elif key == 'val': self._data_path = workspace_config.val_path elif key == 'test': self._data_path = workspace_config.test_path else: print('No magic here!') # Specify label mapping self._label_map = { 'yes': 0, 'no': 1, 'up': 2, 'down': 3, 'left': 4, 'right': 5, 'on': 6, 'off': 7, 'stop': 8, 'go': 9, 'silence': 10, 'unknown': 11, } self._class_num = 12 # Fetch feature generator self._fgen = feature_generator() # Do the actuall work self._data, self._label = self.load_data() # Marker self._epochs_completed = 0 self._index_in_epoch = 0 self._num_examples = self._data.shape[0] return
def main(): # 予想したい日の日付けを設定 target_date = None _day = dt.now() # まずはコマンドライン引数による指定がない場合を想定 if _day.hour >= 10: # この時刻を過ぎると、翌日の予想を実施する _day += td(days=1) target_date = dt(year=_day.year, month=_day.month, day=_day.day) argvs = sys.argv # コマンドライン引数を格納したリストの取得 argc = len(argvs) # 引数の個数 if argc >= 2: # 引数で計算対象の日を渡す arg = argvs[1] arg += " 0:0:0" # 時分秒を加える t = timeKM.getTime(arg) if t != None: target_date = t print(target_date) # 予測を実行する時刻を決定する(引数がなければスクリプト実行時の時刻が使われる) process_hour = dt.now().hour if argc >= 3: # 引数で予想実行時刻を渡す(その時刻に雲海が出るかを確認するものではない) arg = argvs[2] if arg.isdigit(): process_hour = int(arg) # 予報する対象の時刻 target_time = 23 if 23 > process_hour >= 16: target_time = 16 # アメダスの観測所オブジェクトを作成 amedas_nodes = amd.get_amedas_nodes() #print(amedas_nodes) # 特徴ベクトルを生成するオブジェクトの用意 features_dict = {} for block_no in ["47819", "1240", "0962", "47818"]: node = amedas_nodes[block_no] lines = get_amedas_data(node, target_date) weather_data = feature.get_weather_dict(lines) _keys = sorted(weather_data.keys()) # 確認のために表示 for a_key in _keys: print(block_no, weather_data[a_key]) if int(node.block_no) > 47000: features_dict[block_no] = [weather_data, feature.index_A] else: features_dict[block_no] = [weather_data, feature.index_B] fg_obj = feature.feature_generator(target_time, features_dict) # 機械学習オブジェクトを生成 clf = mc.load(os.path.abspath("./learned_machine/time" + str(target_time))) print(type(clf)) # 特徴ベクトルを生成 _feature = fg_obj.get_feature(target_date) _feature = np.array([_feature]) # TensorFlowはnumpy.arrayの2重の入れ子でないと動かない print(_feature) # 予測を実施 print("--predict--") print("target date: " + str(target_date)) print("process hur: " + str(process_hour)) results = [] #if _feature != None: #if not None in _feature: # Noneがあると計算出来ない test = clf.predict(_feature) results.append((target_date, test[0], _feature)) print(test) # 予測結果を保存 with open("result.csv", "w") as fw: for result in results: _date, predict_result, _feature = result str_feature = [str(x) for x in _feature] fw.write(str(dt.now())) fw.write(",") fw.write(str(_date)) fw.write(",") fw.write(str(predict_result)) fw.write(",") fw.write("$") fw.write(",") fw.write(",".join(str_feature)) fw.write("\n") return results