久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

使用Python - PCA分析進行金融數據分析

1.pandas的一個技巧

apply() 和applymap()是DataFrame數據類型的函數,map()是Series數據類型的函數。apply()的操作目標DataFrame的一列或許一行數據, applymap()是element-wise的,作用于每個DataFrame的每個數據。 map()也是element-wise的,對Series中的每個數據調用一次函數。

2.PCA分解德國DAX30指數

DAX30指數有三十個股票,聽起來不多的樣子,其實還是挺多的,我們很有必要對其進行主成分分析,然后找出最重要的幾個股票。想必PCA的原理大家應該都是知道,說白了就是在一個回歸中找到影響最大的那幾個,當然,數學原理就涉及矩陣分解,什么SVD呀。

先上點代碼

  1. import?pandas?as?pd
  2. import?pandas.io.data?as?web
  3. import?numpy?as?np
  4. np.random.seed(1000)
  5. import?scipy.stats?as?scs
  6. import?statsmodels.api?as?sm
  7. import?matplotlib?as?mpl
  8. import?matplotlib.pyplot?as?plt
  9. from?sklearn.decomposition?import?KernelPCA#導入機器學習的PCA包
  10. symbols?=?['ADS.DE','ALV.DE','BAS.DE','BAYN.DE','BEI.DE','BMW.DE','CBK.DE','CON.DE','DAI.DE',
  11. ????????????'DB1.DE','DBK.DE','DPW.DE','DTE.DE','EOAN.DE','FME.DE','FRE.DE','HEI.DE','HEN3.DE',
  12. ????????????'IFX.DE','LHA.DE','LIN.DE','LXS.DE','MRK.DE','MUV2.DE','RWE.DE','SAP.DE','SDF.DE',
  13. ????????????'SIE.DE','TKA.DE','VOW3.DE','^GDAXI']#DAX30指數各個股票的代碼以及德國30指數代碼,共31個數據列
  14. data?=?pd.DataFrame()
  15. for?sym?in?symbols:#獲取數據
  16. ????data[sym]?=?web.DataReader(sym,data_source?=?'yahoo')['Close']
  17. data?=?data.dropna()#丟棄缺失數據
  18. dax?=?pd.DataFrame(data.pop('^GDAXI'))#將指數數據單獨拿出來,采用pop在獲取的時候已經從原來的地方刪除了這一列數據了
  19. scale_function?=?lambda?x:(x-x.mean())/x.std()
  20. pca?=?KernelPCA().fit(data.apply(scale_function))#這里用到了apply函數。做PCA前,我們要對數據做標準化
  21. get_we?=?lambda?x:x/x.sum()
  22. print?get_we(pca.lambdas_)[:10]

這樣,你就可以看到前十個股票對DAX30指數的貢獻量了。

  1. pca?=?KernelPCA(n_components?=?1).fit(data.apply(scale_function))
  2. dax['PCA_1']?=pca.transform(data)
  3. dax.apply(scale_function).plot(figsize?=?(8,4))
  4. pca?=?KernelPCA(n_components?=?5).fit(data.apply(scale_function))
  5. weights?=?get_we(pca.lambdas_)
  6. dax['PCA_5']?=np.dot(pca.transform(data),weights)

使用Python - PCA分析進行金融數據分析

這里,我們采用只用第一個成分去擬合以及前五個成分去擬合,發現效果好的出奇。這樣我們就做到了降維的工作了。我們再來展開看一下PCA的效果。

  1. plt.figure(figsize?=?(8,4))
  2. plt.scatter(dax['PCA_5'],dax['^GDAXI'],color?=?'r')

這里,我們把PCA后的值與原始值進行散點圖的繪制,

使用Python - PCA分析進行金融數據分析

咱們看到,全體效果還是不錯的,但是很顯然,兩頭和中心老是有點疑問,所以,假如咱們要進步,咱們能夠在中心分段進行PCA,這樣的話,效果應該會更加好。

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 石景山区| 荔浦县| 惠来县| 阳高县| 中阳县| 金沙县| 蓝山县| 广州市| 扶绥县| 津南区| 子洲县| 潍坊市| 确山县| 勐海县| 福海县| 班玛县| 庆元县| 威信县| 昔阳县| 永嘉县| 万盛区| 洪雅县| 曲水县| 乌什县| 和硕县| 科技| 广灵县| 通化市| 武安市| 汽车| 古蔺县| 桐乡市| 页游| 临桂县| 上虞市| 柳江县| 六枝特区| 正定县| 平定县| 宁德市| 高安市|