精通機器學習|使用Scikit-Learn, Keras與TensorFlow+精通機器學習|使用Python(Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems,Aurélien Géron + Introduction to Machine Learning with Python,Sarah Guido & Andreas C. Mueller)
雖然這邊列的是兩本書,原本重心在看第一本Scikit-learn,Keras,Tensorflow,畢竟我是基於在金融投機深度學習程式交易化上需求才學這個,目的是實作,但發現它程式碼技術實質內容不多,多數時是理論程序的漫談,並不能親自改為能執行的程式碼,所以有些乏味.所以還是把重心放在第二本機器學習的python實踐上,其中關於Scikit-Learn,Keras,Tensorflow的基礎基本在後面那本中沒有細談,這在前面那本中卻是重點,需要先經過這本的速覽才比較無礙的進入後一本,而後一本專攻python程式碼,內容集中在Scikit-learn,所以要用得對它的基本常識與用法有所了解.第一本不愧是重要概念書籍,很多內容說得非常明白清楚,是一本值得花時間去看的工具觀念書,雖然它也有python程式碼,但是那個比較像是在舉例如何用的手冊型介紹,並沒有能讓人親自寫一遍程式碼的空間,而關於keras,tensorflow的程式碼實踐就另外找專攻實作的案例或書籍來跑了.以"精通機器學習|使用Python"來說本身介紹的scikit-learn是Python中對於經典機器學習框架的集大成者,在NumPy和SciPy之後,在TensorFlow之前,這本書和它介紹的scikit-learn框架和經典機器學習算法的理論非常值得一讀.
其實這兩本拖延了很長時間,主要原因倒不是在內容,而是之前的電腦執行速度相對深度學習需要的功能已經太慢,執行花太久時間,人都搞得不耐煩,想換個電腦.但那時卡在一個尷尬間,30系列顯卡的機器功效不明,耳聞配置40系列顯卡的電腦要出了,所以選擇先等待,暫停了一段時間.畢竟我是要實作的,單看書可不行.新的13代i9的cpu加上4090的顯卡組成的電腦主要目標竟是去跑電玩,時代變換也夠大的.遙想以前在學校跑SAS,只有80X86的選項,慢的受不了,現在新的電腦若給只有文書需求的人,效能竟然都遠遠過剩.之所以提到SAS,是因為經過理解這裡的Scikit-Learn,我才發現其實這些都內容,以前都學過,而且時間竟然是在上個世紀,而且從現在的眼光來看,個人的碩士論文其實就是直一個深度學習的實證案例而已.
當初的做法其實用今日的眼光看其實很簡單,先找定一些標籤企業,這些企業可能因為研發,或是財務上的因素,被分成為若干類,比如以研發高低為標籤定義為高技術或高行銷類企業,或是以財務狀態,如是否列入全額交割股來分為有發生財務危機或無財務危機的企業,反正就是先幫企業建立一個類別標籤,可分成2個以上的類別,再找出足夠的選取樣本企業的歷年財報或經營數據,比如發生全額交割事件前的5年所有歷年的財報與財務數據,每年選擇20個財務比例為特徵值(變數),用這20個變數去構建一個新模式,這個新的模式同時依時間與變數分別各自建立歷年的預測模式,如此便可以用一個未知類別的企業數據投入模式來預測它未來財務發生問題的可能能性.以前只知道這個叫做多變量分析,但其實這個模式就是一個融合了非監督模式與監督模式的個案.首先得握法便是透過component reduction的概念去處理,常用的方式如主成分分析,因素分析去對原資料處理,目的是將原本20個變數的資料轉換成為具相關程度高解釋力的幾個成份,或因素,如此便能將原先要處理20個變數(特徵值)的工程簡化成只要集中處理3~5個重要的成份或因素即可.然後再根據這些降階後的3到5個主成份與主因素去進行建構監督化學習模式,比如線性回歸,或是區別分析(Discriminant Analysis),找出模型的相關係數後,然後便能用新的某些企業財報測試資料去做模型的精確度處理,看看預測能力,只是這整個處理,我們以前就是在多變量分析裡學過的,當時還沒有所謂的機器學習這樣的名詞概念,更別說監督學習,非監督學習的分類.
我把"精通機器學習|使用Python"使用的鳶尾花的例子,加上第二章classification與regression的分類問題一鍵入python程式碼值計去跑才突然想到這跟以前所學根本是同一個東西,只是被機器學習的新名詞搞得有點玄幻了,其實都是舊東西呀,後面的k-means,cluster,其實記憶裡真的都學過了,突然間程式碼似乎都變得容易理解了,因為當時學這個目的就是針對於將要寫作的論文,所以可能重心就放在理解為主上,且當時的環境似乎深度學習還是機器學習都是屬於發展上的停滯期,似乎要10多年後才再有了新的東西.如果說這本書在執行上有甚麼問題,那應該就ˋ老問題了,書的程式碼是以預設在linux或unix的環境中執行的,我們使用pc上的Juputer來跑python,會有一些因為版本與環境問題的錯誤出現,但這些都是要執行者自己去摸索體會並修改成符合自身電腦環境需求的形式,有時會花一點時間,這也是沒有辦法的事情.
以前學多變量分析的時候,雖然也會碰到數學上的問題,但是當時多以理解它的作用為主,比如所謂的將20個變數降階成3~5的主成分或是因素,或是cluster,依我們的能力根本不可能從數學上說明清楚它的導入,只知道它是一種靠著旋轉坐標軸,加上水平垂直來平移坐標軸.讓原來的樣本空間更容易被看出存在某忠特別的分類區塊,或是靠著投影的方式將一個空間中的點轉一個面或一條線上的點的意思.現在學機器學習則是同一項課題中內容太多且雜亂,容易搞錯,且因為沒有自己創設的資料例子,單看書上舉的例子或按照它的程式碼自行跑一遍,還是多少點隔靴搔癢,差點意思,我比較喜歡用自己想做的案例實作,這樣的理解會比較深入,運用時也不會太心虛...,
留言列表