用Python 自學資料科學與機器學習入門實戰:入門導論

文章推薦指數: 80 %
投票人數:10人

如何使用Python 學習機器學習(Machine Learning). 隨著資料科學(Data Science)技術的興起,人工智慧(Artificial Intelligence)、機器 ... Togglenavigation 首頁 關於我們 學習資源 想要自學程式?七個自學程式設計正確的觀念和心態 跨領域自學程式設計常見問題解析FAQ 自學程式設計學習資源懶人包 Facebook自學程式社團 YouTube影音 搜尋搜尋 RecentPosts 初學者GoogleColaboratory(Colab)整合GoogleDrive安裝教學 Matplotlib/Pandas資料分析繪圖顯示中文字體入門教學 如何在終端機下使用conda指令管理虛擬環境 [程式挑戰]全域變數和區域變數可視範圍VariableScope [看懂IT術語]AI人工智慧 RecentComments 尚無留言可供顯示。

Skiptocontent 隨著資料科學(DataScience)技術的興起,人工智慧(ArtificialIntelligence)、機器學習(MachineLearning)成為近幾年來電腦科學界十分熱門的研究領域,如今在實體和線上的學習機器學習的資源有很多,本文整理了一些好用學習資源希望幫助初學者能更容易使用Python入門機器學習的領域中,從零開始學習機器學習。

若是對於資料科學不熟悉的讀者可以先參考適用於初學者的資料科學影片,讓自己對於資料科學有初步的認識。

人工智慧的發展 「人工智慧」(ArtificialIntelligence)這專有名稱正式出現在西元1956年,在美國達特茅斯學院(DartmouthCollege)召開的第一次人工智慧會議。

根據維基百科的定義,人工智慧係指由機器所展現的智慧,一般而言人工智慧又分為「強人工智慧」(StrongAI)和「弱人工智慧」(WeakAI)兩種不同的主張。

所謂的強人工智慧指的是有自我意識、有知覺可以自己推理和解決問題的機器智慧,而「弱人工智慧」只能模擬人類的思維與行為表現,但缺乏真正的推理與解決問題的能力,也不具有自主意識。

人工智慧在歷史上經歷了幾次熱潮和寒冬,從最早的邏輯推理到後來的專家系統,再到目前的機器學習/深度學習,機器學習可以視為人工智慧的一個實現方式或是發展的一個歷程。

事實上,人工智慧或是機器學習都是一門跨領域的學門,牽涉了電腦科學、數學、神經學、心理學、經濟學、統計學等層面,也有許多相關的學門: 隨著運算資源(雲端運算、GPU等)、海量資料(目前還有許多資料還沒被創造,等待我們去發掘呢)以及機器學習/深度學習的發展,生活上許多產品已經可以看到人工智慧的應用。

但人工智慧最美好的境界莫過於人機之間的互動以及相輔相成,以AlphaGO為例,雖然人類在圍棋領域輸給人機器,但也從機器的思考方式去重新思考了圍棋的真諦和有別於人類的思考方式。

「就因為某樣東西思考的方式跟你不一樣,就代表它沒在思考嗎?」“Justbecausesomethingthinksdifferentlyfromyou,doesitmeanit’snotthinking?”—《模仿遊戲》《ImitationGame》(2015) 什麼是機器學習(MachineLearning)? 機器學習是一種資料科學的技術也是一種實現人工智慧的一種方式,協助電腦從現有的資料學習,以便預測未來的行為、結果和趨勢。

根據學習的方式又可以分為需要解答的監督式學習(Supervisedlearning)、非監督式學習(Unsupervisedlearning)和增強學習(Reinforcementlearning)等(還有一種混合式的半監督式學習)等子類別。

機器學習技術可以應用的範圍十分廣泛,總的來說機器學習可以解決以下幾種問題: 分類問題:這是A類或B類嗎?異常值判斷:這很奇怪嗎?預測性分析:有多少?分群問題:這是如何組織的?增強學習協助決策:我接下來該怎麼辦? 當我們蒐集到相關、精確、連貫、足夠資料就可以挑選合適的演算法進行模型的的建置。

為什麼選擇Python? 在資料科學和機器學習領域最重要的兩大程式語言就是Python和R,Python簡潔易學、應用範圍廣(不限於數據分析)且學習曲線平緩,適合作為第一個入門的程式語言,透過pandas、SciPy/NumPy、sckikit-learn、matplotlib和statsmodels可以進行數據分析的工作,適合工程任務和需要和網路應用程式整合的專案。

至於R由於是統計學家開發的程式語言,則是擅長於統計分析、圖表繪製,常用於學術研究領域,建議也要有一定程度的掌握。

一般情況下Python和R並非互斥,而是互補,許多資料工程師、科學家往往是在Python和R兩個語言中轉換,小量模型驗證、統計分析和圖表繪製使用R,當要撰寫演算法和資料庫、網路服務互動等情況時在移轉到Python。

為了降低學習成本。

此外Python本身是一種通用語言,除了資料科學外也可以廣泛使用在網路開發、網站建置、遊戲開發、網路爬蟲等領域,當你需要整合系統產品服務時,可以擔任一站式的開發語言,更重要的是Python也可以當成膠水語言非常輕易和C/C++等效能較佳的語言整合。

簡而言之,Python是一種簡潔易學但功能強大,值得投資的程式語言,所以我們這邊先使用Python進行介紹。

若對於Python和R比較,這邊有兩篇文章可以參考数据科学界华山论剑:R与Python巅峰对决、Whichisbetterfordataanalysis:RorPython?。

如何開始入門機器學習? 事實上,資料科學是個跨領域學門,在學習如何使用Python進行機器學習過程中通常必須掌握以下知識: 機器學習演算法Python程式語言和資料分析函式庫線性代數/統計學等相關學門專業領域的領域知識(DomainKnowledge) 為了掌握以上三大領域知識(我們先把焦點放在機器學習核心技法,暫時忽略資料科學中對於領域知識的掌握),具體來說我們可以有以下步驟可以參考: 掌握基礎Python程式語言知識線上學習資源: CodecademyDataCamp(也可以學R)LearnXinYMinutes(X=Python)LearnPythontheHardWay 了解基礎數學/統計學和機器學習基礎知識 可汗學院線性代數IntrotoDescriptiveStatisticsIntrotoInferentialStatisticsAndrewNg機器學習課程AndrewNg機器學習筆記CarnegieMellonUniversityMachineLearningMachineLearningFoundations(機器學習基石) 知道如何使用Python科學計算函式庫和套件推薦安裝Anaconda,支援跨平台多種版本Python,預設將數據分析、科學計算的套件裝好,自帶spyder編輯器、JupyterNotebook(IPythonNotebook),可以提供一個網頁版介面,讓使用者可以透過瀏覽器進行Julia、Python或R程式的開發與維護。

numpy:科學分析,ScipyLectureNotes教學文件pandas:資料分析matplotlib:會製圖瞟scikit-learn:機器學習工具 使用scikit-learn學習Python機器學習應用 MachineLearning:Python機器學習:使­用Pytho­n 運用Python實作機器學習演算法 感知器決策樹線性迴歸k-means分群 實作進階機器學習演算法 SVMKNNRandomForests降低維度驗證模型 了解深度學習(DeepLearning)在Python的實作和應用 NTUAppliedDeepLearningStanfordDeepLearning深度學習(DeepLearning)自學素材推薦深度學習DeepLearning:中文學習資源整理 總結 以上整理了一些機器學習網路學習資源,若你累積一些小小經驗後,不妨挑戰一下Kaggle或是KDD測試一下自己的實力並累積更多數據分析的經驗。

延伸閱讀 7StepstoMasteringMachineLearningWithPython人人都可成為資料科學大師!一整年的網路自學清單就在這了AnalyticsVidhya台灣資料科學年會「2016台灣資料科學愛好者年會」精彩資料總整理(持續更新中)大數據會消失,資料科學不會!你該知道的資料科學第一堂課如何選擇MicrosoftAzureMachineLearning的演算法MicrosoftAzureMachineLearning機器學習服務文件KdnuggetsBigdatafinanceUsingPythonandRtogether:3mainapproaches机器学习最佳入门学习资源机器学习(MachineLearning)&深度学习(DeepLearning)资料(Chapter1)SIRAJRAVAL’SDEEPLEARNING (imageviarespondr) 加入Discord自學程式設計交流社群 Archives 2022年4月 2020年8月 2020年4月 2019年12月 2019年1月 2018年9月 2017年12月 2017年11月 2017年10月 2017年8月 2017年7月 2017年5月 2017年1月 2016年12月 Categories Uncategorized LeaveaCommentCancel發佈留言必須填寫的電子郵件地址不會公開。

必填欄位標示為*Message:Name: EmailAddress: Website: Savemyname,email,andwebsiteinthisbrowserforthenexttimeIcomment.



請為這篇文章評分?