當前位置:首頁 » 數據倉庫 » Python資料庫總結反思
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

Python資料庫總結反思

發布時間: 2022-12-25 02:24:40

㈠ 我的第一份數據科學實習

我的第一份數據科學實習
在寫本文時,這是我在Quantum Inventions公司實習的最後一天。當我坐在電腦屏幕前,反思過去幾個月的學習歷程,我感到非常的滿足。
在實習即將結束時,縈繞在我腦中的問題是:我學到了些什麼?這是我想要的嗎?
作為一名物理學家,我習慣通過推理解答問題從而來尋求真相。事實上,對數據科學家來說,問合適的問題也是至關重要的。
本文分為三個部分:實習前,實習期間,實習後。當中記敘了在這段經歷中我所得到的收獲。也歡迎閱讀我上一篇文章《我是如何從物理學轉行到數據科學領域》。
實習前
我仍然清楚地記得,在2017年11月的期末時我開始閱讀《統計學習導論:基於R應用》(An Introction to Statistical Learning?—?with Applications in R)。這是第一次接觸到基礎的機器學習知識。
一旦掌握了這些概念之後,我就開始學習熱門的課程Coursera上吳恩達的《機器學習》。雖然剛開始的時候並不那麼輕松,但是吳恩達能夠吸引人們的注意力,用簡單的方式解讀復雜的概念。這也許就是我喜歡上機器學習的原因之一。我也強烈建議你試試,機器學習並沒有聽上去那麼高大上和復雜。
同時,我開始學習人工智慧的另一個重要領域——深度學習。
在掌握了一定的基礎知識之後,我在2017年12月開始了我的第一份數據科學實習。
實習期間

Quantum Inventions專注於向消費者、企業和政府智能交通服務。我是第一位加入研發和分析團隊的數據科學實習生。
在剛開始的幾天,我認識到了許多出色的同事,接觸到許多行業術語以及正在進行的項目。在這次實習中,Quantum Inventions給了我足夠的信任和自由,讓我能夠選擇感興趣的項目,並為其而努力。
令我吃驚的是,目前我著手的這個項目是之前沒有人做過的。這時就需要大量的研究,存在許多不確定性和困難,但是我仍然樂在其中。為什麼呢?很簡單,因為我能夠有機會從頭開始體驗整個數據科學工作流程。
下面我將列出我所經歷的工作流程,在這一過程中為我進入數據科學領域打下了一定的基礎。希望能夠給你帶來一些幫助。
1. 了解業務問題
我所選的項目是預測短期高速公路行程時間。正如我所說的,提出合適的問題對數據科學家來說非常重要。 在項目完成前,需要提出大量的問題,從而了解實際的業務問題:可用的數據源,項目的最終目標等等。我們的目標是更准確地預測新加坡高速公路行程時間。
2. 收集數據源
我對新項目感到十分興奮,然後我開始從資料庫等渠道收集數據源。收集正確的數據源類似在不同網站抓取數據,以便稍後進行數據預處理。這一過程非常重要,這可能會影響你在後期建立模型的准確性。
3. 數據預處理

真實世界的數據並不那麼理想。我們不能期望會獲得Kaggle比賽中那樣格式良好且干凈的數據。因此,數據預處理(也稱為數據管理或數據清理)至關重要。該過程佔到整個工作流程的40%-70%,對提供給模型的數據進行清理。
Garbage in, Garbage out。(無用輸入,無用輸出)
我喜歡數據科學的一點在於,你必須對自己誠實。如果你沒有把握,認為預處理的數據已經足夠干凈,並可以提供給模型,那麼將存在使用錯誤數據構建模型的風險。換句話說,你需要從專業的角度質疑自己,確認數據是否可以使用。嚴格用閾值檢查數據,確認整個數據集中是否存在其他異常、缺失或不一致的數據。
我對這個過程格外謹慎,之前我僅僅因為預處理步驟中的小疏忽就給模型提供了錯誤的數據。
4. 建立模型
經過一番研究,對於項目我提出了以下四個模型:支持向量回歸(SVR),多層感知器(MLP),長期短期記憶網咯(LSTM)和狀態空間神經網路(SSNN)。
對於還在學習在線課程的我來說,從頭開始構建不同的模型無疑是十分困難的。幸運的是,Scikit-learn and Keras拯救了我,因為它們很容易學習,能夠快速構建原型模型,並用Python進行編寫。此外,我還學習了如何使用多種技術優化模型,並調整每個模型的參數。
5. 模型評估
為了評估每個模型的性能,我主要使用了以下指標:
· 平均絕對誤差(MAE)
· 均方誤差(MSE)
· 測定系數(R2)
在這個階段,重復步驟3-5(可互換),直到得出的最佳模型能夠超越基線估計。
實習後

這次實習加深了我對數據科學領域的熱愛,這段經歷為我之後的工作也提供了一些動力。我也大大提高了自身的能力,比如與不同人群進行利益的溝通技巧,利用數據解決業務問題等等。
數據科學行業還是一個新興領域,對於我們這些求職者來說,有時當中的一些工作描述可能有些模稜兩可。因此在求職時,發現自己不具備崗位所需的全部技能是完全正常的,因為大多數工作描述都是按照理想的方式寫的,從而符合僱主的期望。
當在學習或工作中遇到疑問時,你可以從在線課程、書籍和文章中進行學習,這也是我仍在做的,並通過個人項目或實習來應用所學到的知識。請耐心一點,學習的過程需要大量的精力和時間。
在最後,記得問自己:你學到了什麼?這是你要的嗎?

㈡ python好學嗎

有網友點評說:

Python語言本身是比較容易的,樓主說的難應該指programming本身。

不覺得非計算機專業出身就學不好編程,我就是學通信的,學Python全憑興趣。平時用Python干各種臟活累活,數值計算、數據處理、復雜文本處理、資料庫導入導出excel、網上搶票、Web數據抓取、消息推送、DHT網路爬蟲、Kodi插件、Web自動化測試、網盤下載、雲點播。甚至有次日記軟體密碼忘了,都是通過py+autoit暴力破解出來的。

我的win、debian、mac上面一般都會開一兩個ipython,臨時處理各類雜務。簡單來說,Python現在就是我日常生活的一部分。我不是專業程序員,也沒用Python做過什麼大項目,只是每天享受Python帶來的便捷與快樂。

樓主所說的不能深入理解,其實是不願意花時間鑽研。用了十幾年Python,現在也要一直翻看官方文檔和一些第三方mole的文檔,不斷把遇到的問題弄懂弄透,學習不就是這個過程么?

我覺得樓主對Python無愛,對編程無愛,那就沒必要強迫自己填鴨式「學習」了。

另外一個建議,練習時盡量不要後在現有demo基礎上改,從頭開始寫起,遇到問題一個個查清,這樣才能學到東西。

接收到這個小夥伴的答案,我內心開始反思,其實他說得都對的3個點是:

1.其實本身我對編程是不熱愛的,只是因為需要;

2.其實本身我是對Python更上層可以用來做什麼是不清楚的,思維還是在機械的完成一個Python習題;

3.其實我本身對編程的難度是小悄了的,Python簡單是相對於C、Java等語言。

說到這里,不知道看到本文的小夥伴有幾個有類似的心理映射,如果你是上面的狀態,那你學習Python一定是難的。

下面我們來看看另外一位學習者的建議:

python是一門簡單易學,容易理解,分分鍾就可以掌握的語言,我也是學了大概一兩個星期吧,就開始做項目了,嘻嘻!!!

這里有一個很嚴重的問題,,我在學python之前,做過3點的C#,一年的php和一年的java!

所以呢,我想說的是,如果你對編程不那麼敏感,就需要時間來彌補了,那些什麼書啊,公開課啊,我覺得都是輔助的,你要是不經歷幾個項目,怎麼知道python為什麼容易學,怎麼知道python好理解,怎麼知道python有哪些超級好用的框架,比如django,tonado之類的。

所以呀,編程沒有捷徑,你甭想通過看。。。就學會,寫起來才是最重要的!

最終通過對學習Python這件事,我總結了幾點關於學習Python的建議,希望跟大家一起分享:

1.編程語言是一回事,但更重要的是編程思想,不要把應試教育的思想帶到這裡面來,並不是所有的知識都能靠「五年高考三年模擬」來掌握;

2.自己找個想用程序解決的任務,然後自己邊學邊完成。

3.沒有編程基礎的人新學一門語言一定一定要有耐心,基礎知識沒有半年以上的學習和練習是很難徹底掌握的,千萬不要圖快,學的太快或許會有一時的成就感,但基礎知識不扎實終將會成為你前進道路上的瓶頸,不僅學新的知識一知半解,工作時也會磕磕絆絆。

4.沒有計算機基礎,不管學什麼語言都會有點吃力的,python語法比較簡單的。

5.現在要做的就是把錯誤犯下100遍,那你就拿下這個Get了!

祝你學習Python之路愉快。

知乎網友任泉經典評論:

說Python簡單的都是程序員或者半程序員,說其實還是很困難的都是有需求但並非依賴性的業余愛好者。

Python的簡單,是相對於C++的簡單,而不是相對於Word、Excel的簡單。它再接近自然語言,也有語法,也有數據結構,也有編程思想,而這些對於「業務愛好者」來說就等於「難」。

想要不難也很容易,保證自己每天都會去使用它就好了,每天不管是看書學習也好,照著案例敲代碼也好,針對需求寫個小程序也好,一定要每天用,直到自己習慣語法,習慣數據結構,習慣編程思想為止,到那個時候,你就變成了半個程序員。

想以一周一兩次,甚至更低的頻率來學習編程,無論你內心多麼熱愛,無論這門語言多麼簡單,都是學不會的,更別談學好了。