pocketyのブログ

日記です。

全売りした

来週のSQあたりまでは、上がると思っているが、10.7で全売りした。利益は少しでたのでよかったが、来週がどうなるか?月曜に下がってくれたら買い戻します。

今日のマーケットは強かった。Nasdaq100    13565pt +273        SP500    4280pt +72

Nobu塾の予想では、N100で、14000pt手前まで上がる予想、そして9月中旬で12000ptまで下がる。

線形回帰・単回帰による住宅価格予測モデル

#単回帰の予測モデル

# ライブラリのインポート
# %matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 住宅価格データセットの読み込み

df.columns=['CRIM','ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']

# 先頭5行の表示
pd.DataFrame(df.head())

# データフレームの形状
print('dfの形状', df.shape)

# 特徴量に平均部屋数(RM)の20件を設定
X = df[:20][['RM']].values

# 正解に住宅価格(MEDV)の20件を設定
y = df[:20]['MEDV'].values

# 特徴量と正解の先頭五行を表示
X[:5], y[:5]

# 特徴量と正解の形状
X.shape, y.shape

# 線形回帰モデルを作成
model = LinearRegression()

# modelの訓練
model.fit(X, y)

# パラメータの取り出し
print('傾き: %.2f' % model.coef_)
print('切片: %.2f' % model.intercept_)

# モデルを使い、部屋数から住宅価格を予測
new_data = np.array([[6]])
model.predict (new_data)

# 一次関数作成用に部屋数の変数 X_pltを作成
X_plt = np.arange(5, 9, 1)
print('一次元配列のX_plt', X_plt)
# X_pltを二次元配列に変換
X_plt = np.arange(5, 9, 1) [:, np.newaxis]
print('二次元配列のX_plt', X_plt)

# 散布図と一次関数
plt.figure(figsize=(8,4)) # プロットのサイズ指定

#モデルのプロット
y_pred = model.predict(X_plt)

# 部屋数と住宅価格の散布図と一次関数のプロット
plt.scatter(X, y, color='blue', label='data')
plt.plot(X_plt, y_pred, color='red', linestyle='-', label='LinearRegression')
plt.ylabel('Price in $1000s [MEDV]')
plt.xlabel('Average number of rooms [RM]')
plt.title('Bostom house-prices')
plt.legend(loc='lower right')

plt.show()


pandasでnetkeibaをスクレイピング


import pandas as pd
import requests
import lxml.html
import time # サーバーに負担をかけないために
from tqdm import tqdm #どのくらい読み込んだかを表示

# レース場、第何回、何日目、何レース目
# 01:札幌、02:函館、03:福島、05:東京、06:中山、07:中京、08:京都、09:阪神、10:小倉

# race_idを入れたら読み込んでくれるfor文
def scrape_race_results(race_id_list):
race_results = {} # 辞書型
for race_id in tqdm(race_id_list): #tqdm race_id_listにどのくらい読み込んだかを表示
try: # IndexErrorが出ても無視して続けるようにする
race_results[race_id] = pd.read_html(url)[0]
time.sleep(1) # 1秒待機 サーバーに負担をかけない
except IndexError:
continue
return race_results


# strは整数型を文字列に変換、zfillは桁数を入れる EX 01 02
race_id_list = []
for place in range(1,11,1): #1から10まで一個づつ
for kai in range(1,6,1): #何回まで開催されているか
for day in range(1,9,1):
for r in range(1,13,1):
race_id = '2019' + str(place).zfill(2) + str(kai).zfill(2) + str(day).zfill(2) + str(r).zfill(2)
race_id_list.append(race_id)


test = scrape_race_results(race_id_list) # 結果をtestに変換


# どのレースか知りたいので Index に race_id を入れる
for key in test.keys():
test[key].index = [key] * len(test[key]) # keyにrace_idが入っている、dataframeの長さの分だけrace_idにIndexを書き換える

print(test)

# pandasのDataframe型に変換してpickleファイルで保存する
test = pd.concat([test[key] for key in test], sort=False) # これがないとpickleでもopenpyxlでもattributeエラーがでる。

import pickle
test.to_pickle('results.pickle')

import openpyxl
test.to_excel("excelresults.xlsx")

# 後で読み込むときは
# pd.read_pickle(results.pickle)