見出し画像

超簡単Pythonで株価データ特徴量自動抽出(AutoFeat利用)

PythonでAutoFeatを利用して超簡単に株価データ特徴量を自動抽出

1. ツールインストール

$ pip install scikit-learn xgboost yfinance autofeat

2. ファイル作成

pred.py

import yfinance as yf
from sklearn.model_selection import train_test_split
import xgboost as xgb
from sklearn.metrics import accuracy_score
from autofeat import AutoFeatClassifier

df = yf.download("AAPL", start="2010-11-01", end="2020-11-01")
df["Diff"] = df.Close.diff()
df["y"] = df["Diff"].apply(lambda x: 1 if x > 0 else 0).shift(-1)
df = df.drop(
 ["Diff", "Adj Close"],
 axis=1,
).dropna()
# print(df)
X = df.drop(["y"], axis=1).values
y = df["y"].values
X_train, X_test, y_train, y_test = train_test_split(
 X,
 y,
 test_size=0.2,
 shuffle=False,
)
model = AutoFeatClassifier()
X_train_ = model.fit_transform(X_train, y_train)
X_test_ = model.transform(X_test)
clf = xgb.XGBClassifier()
clf.fit(
 X_train,
 y_train,
)
y_pred = clf.predict(X_test)
print(accuracy_score(y_test, y_pred))

3. 実行

$ python pred.py

0.48214285714285715

以上、超簡単!

4. 参考

5. 関連記事


この記事が気に入ったらサポートをしてみませんか?