機(jī)器學(xué)習(xí)服務(wù)提取圖片的特征向量">使用SAP Leonardo上的機(jī)器學(xué)習(xí)服務(wù)提取圖片的特征向量
681
2022-05-28
先把來源寫上
來源:貪心學(xué)院,https://www.zhihu.com/people/tan-xin-xue-yuan/activities
這次回歸
之前寫過關(guān)于平安股票的,竟然沒想到是同一個案例
平安股票分析
說明下這個模型是沒用的
import numpy as np # 數(shù)學(xué)計算 import pandas as pd # 數(shù)據(jù)處理, 讀取 CSV 文件 (e.g. pd.read_csv) import matplotlib.pyplot as plt from datetime import datetime as dt
1
2
3
4
5
# 你可以使用如下的方法下載某一個公司的股票交易歷史 # 000001 為平安銀行 # 如果你還沒有安裝, 可以使用 pip install tushare 安裝tushare python包 # import tushare as ts # df = ts.get_hist_data('000001') # print(df) # df.to_csv('000001.csv')
1
2
3
4
5
6
7
df = pd.read_csv('./000001.csv')
1
print(np.shape(df)) df.head()
1
2
(611, 14)
1
股票數(shù)據(jù)的特征
date:日期
open:開盤價
high:最高價
close:收盤價
low:最低價
volume:成交量
price_change:價格變動
p_change:漲跌幅
ma5:5日均價
ma10:10日均價
ma20:20日均價
v_ma5:5日均量
v_ma10:10日均量
v_ma20:20日均量
# 將每一個數(shù)據(jù)的鍵值的類型從字符串轉(zhuǎn)為日期 df['date'] = pd.to_datetime(df['date']) df = df.set_index('date') # 按照時間升序排列 df.sort_values(by=['date'], inplace=True, ascending=True) df.tail()
1
2
3
4
5
6
7
# 檢測是否有缺失數(shù)據(jù) NaNs df.dropna(axis=0 , inplace=True) df.isna().sum()
1
2
3
4
open 0 high 0 close 0 low 0 volume 0 price_change 0 p_change 0 ma5 0 ma10 0 ma20 0 v_ma5 0 v_ma10 0 v_ma20 0 dtype: int64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
K線圖
Min_date = df.index.min() Max_date = df.index.max() print ("First date is",Min_date) print ("Last date is",Max_date) print (Max_date - Min_date)
1
2
3
4
5
First date is 2016-11-29 00:00:00 Last date is 2019-05-30 00:00:00 912 days 00:00:00
1
2
3
plotly畫圖
from plotly import tools from plotly.graph_objs import * from plotly.offline import init_notebook_mode, iplot, iplot_mpl init_notebook_mode() import plotly.plotly as py import plotly.graph_objs as go trace = go.Ohlc(x=df.index, open=df['open'], high=df['high'], low=df['low'], close=df['close']) data = [trace] iplot(data, filename='simple_ohlc')
1
2
3
4
5
6
7
8
9
10
from sklearn.linear_model import LinearRegression from sklearn import preprocessing # 創(chuàng)建新的列, 包含預(yù)測值, 根據(jù)當(dāng)前的數(shù)據(jù)預(yù)測5天以后的收盤價 num = 5 # 預(yù)測5天后的情況 df['label'] = df['close'].shift(-num) # 預(yù)測值 print(df.shape) df.head(6)
1
2
3
4
5
6
7
8
# 丟棄 'label', 'price_change', 'p_change', 不需要它們做預(yù)測 Data = df.drop(['label', 'price_change', 'p_change'],axis=1) Data.tail()
1
2
3
X = Data.values # 0 到 1 X = preprocessing.scale(X) # 后面5個不要 X = X[:-num] df.dropna(inplace=True) Target = df.label y = Target.values print(np.shape(X), np.shape(y)) # (606, 11) (606,)
1
2
3
4
5
6
7
8
9
10
11
12
# 將數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù) X_train, y_train = X[0:550, :], y[0:550] X_test, y_test = X[550:, -51:], y[550:606] print(X_train.shape) print(y_train.shape) print(X_test.shape) print(y_test.shape) (550, 11) (550,) (56, 11) (56,)
1
2
3
4
5
6
7
8
9
10
11
12
lr = LinearRegression() lr.fit(X_train, y_train) lr.score(X_test, y_test) # 使用絕對系數(shù) R^2 評估模型 # 0.04930040648385525 非常的垃圾,所以個人認(rèn)為毫無意義
1
2
3
4
5
6
7
打廣告,歡迎關(guān)注毛利學(xué)python
機(jī)器學(xué)習(xí)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。