株価を予想してみたくインターネットで検索ししてよさそうなページがあったのですがエラーが起きてしまい動きません。
そのサイトのURL(https://qiita.com/shiroino11111/items/f812938fbbba7123fbcc)
開発環境
windows10
core i 7
annacondanavigator3
jupyter notebook
python3
1#フォルダ内のCSVファイルを全て読む準備 2# data/kabu1フォルダ内にある全てのcsvファイルの一覧を取得 3files = glob.glob("data/kabu1/*.csv") 4 5# 説明変数となる行列X, 被説明変数となるy2を作成 6base = 100 7day_ago = 3 8num_sihyou = 8 9reset =True 10# すべてのCSVファイルから得微量作成 11for file in files: 12 temp = pd.read_csv(file, header=0, encoding='cp932') 13 temp = temp[['日付','始値', '高値','安値','終値','5日平均','25日平均','75日平均','出来高']] 14 temp= temp.iloc[::-1]#上下反対に 15 temp2 = np.array(temp) 16 17 # 前日比を出すためにbase日後からのデータを取得 18 temp3 = np.zeros((len(temp2)-base, num_sihyou)) 19 temp3[0:len(temp3), 0] = temp2[base:len(temp2), 4] / temp2[base-1:len(temp2)-1, 4] 20 temp3[0:len(temp3), 1] = temp2[base:len(temp2), 1] / temp2[base:len(temp2), 4] 21 temp3[0:len(temp3), 2] = temp2[base:len(temp2), 2] / temp2[base:len(temp2), 4] 22 temp3[0:len(temp3), 3] = temp2[base:len(temp2), 3] / temp2[base:len(temp2), 4] 23 temp3[0:len(temp3), 4] = temp2[base:len(temp2), 5].astype(np.float) / temp2[base:len(temp2), 4].astype(np.float) 24 temp3[0:len(temp3), 5] = temp2[base:len(temp2), 6].astype(np.float) / temp2[base:len(temp2), 4].astype(np.float) 25 temp3[0:len(temp3), 6] = temp2[base:len(temp2), 7].astype(np.float) / temp2[base:len(temp2), 4].astype(np.float) 26 temp3[0:len(temp3), 7] = temp2[base:len(temp2), 8].astype(np.float) / temp2[base-1:len(temp2)-1, 8].astype(np.float) 27 28 # tempX : 現在の企業のデータ 29 tempX = np.zeros((len(temp3), day_ago*num_sihyou)) 30 31 # 日にちごとに横向きに(day_ago)分並べる 32 # sckit-learnは過去の情報を学習できないので、複数日(day_ago)分を特微量に加える必要がある 33 # 注:tempX[0:day_ago]分は欠如データが生まれる 34 for s in range(0, num_sihyou): 35 for i in range(0, day_ago): 36 tempX[i:len(temp3), day_ago*s+i] = temp3[0:len(temp3)-i,s] 37 38 # Xに追加 39 # X : すべての企業のデータ 40 # tempX[0:day_ago]分は削除 41 if reset: 42 X = tempX[day_ago:] 43 reset = False 44 else: 45 X = np.concatenate((X, tempX[day_ago:]), axis=0) 46 47# 何日後を値段の差を予測するのか 48pre_day = 1 49# y : pre_day後の終値/当日終値 50y = np.zeros(len(X)) 51y[0:len(y)-pre_day] = X[pre_day:len(X),0] 52X = X[:-pre_day] 53y = y[:-pre_day]
と打ち込むと、
python3
1--------------------------------------------------------------------------- 2NameError Traceback (most recent call last) 3<ipython-input-23-872f95300fb0> in <module> 4 48 pre_day = 1 5 49 # y : pre_day後の終値/当日終値 6---> 50 y = np.zeros(len(X)) 7 51 y[0:len(y)-pre_day] = X[pre_day:len(X),0] 8 52 X = X[:-pre_day] 9 10NameError: name 'X' is not defined
と出てきてしまいます。
ネットと全く同じコードのはずなのに動きません。
いろいろと試しても無駄でした。
なにかわかる方がいれば対応策を教えていただきたいです。
あなたの回答
tips
プレビュー