1. 程式人生 > >好書丨最想推薦給程式設計師們看的基於Python3實現的資料科學書

好書丨最想推薦給程式設計師們看的基於Python3實現的資料科學書

點選上方“程式人生”,選擇“置頂公眾號”

第一時間關注程式猿(媛)身邊的故事

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

參與文末話題討論,有機會獲贈本書或優惠福利。

和武俠世界裡有少林和武當兩大門派一樣,資料科學領域也有兩個不同的學派:以統計分析為基礎的統計學派,以及以機器學習為基礎的人工智慧派。雖然這兩個學派的目的都是從資料中挖掘價值,但彼此“都不服氣”。注重模型預測效果的人工智慧派認為統計學派“固步自封”,研究和使用的模型都只是一些線性模型,太過簡單,根本無法處理複雜的現實資料。而注重假設和模型解釋的統計學派則認為人工智慧派搭建的模型缺乏理論依據、無法解釋,很難幫助我們通過模型去理解資料

隨著雲端計算和人工智慧的發展,資料科學這門新的綜合學科被越來越多的人所熟知,業界也普遍看好其在未來的發展前景。體現在就業市場上,

與這個行業相關的資料科學家和資料工程師成為了“21世紀最吸引人的職業”。

就像“一千個人眼裡有一千個哈姆雷特”一樣,對於什麼是資料科學也有很多種不同的解讀,並由此衍生出很多相關概念,比如資料驅動(data driven)、大資料(big data)、分散式計算(parallel computing)等。這些概念雖然各有側重點,但它們都毫無爭議地圍繞著同一個主題:如何從實際的生活中提取出資料,然後利用計算機的運算能力和模型演算法從這些資料中找出一些有價值的內容,為商業決策提供支援。這正是資料科學的核心內涵。

傳統的資料分析手段是所謂的商業智慧(business intelligence)。這種方法通常將資料按不同的維度交叉分組,並在此基礎上,利用統計方法分析每個組別裡的資訊。比如商業智慧中最常見的問題是:“過去3個月,通過搜尋引擎進入網站併成功完成註冊的新使用者裡,年齡分佈情況如何?若將上面的使用者群按年齡段分組,各組中有多大比例的使用者在完成註冊後,完成了至少一次消費?”

這樣的分析是非常有用的,能揭示一些資料的直觀資訊。但這樣的方法如同盲人摸象,只能告訴我們資料在某個區域性的情況,而不能給出資料的全貌。而且對於某些問題,這樣的結果顯得有些不夠用。比如使用者註冊之後完成消費的比例與哪些因素相關?又比如對於某個客戶,應該向他推薦什麼樣的商品?在這些場景下,我們就需要更加精細的資料分析工具—機器學習和統計模型。在我看來,這些內容是資料科學的核心內容,也是我推薦《精通資料科學:從線性迴歸到深度學習》一書的重點。

640?

 1.1挑戰

這樣的分析是非常有用的,能揭示一些資料的直觀資訊。但這樣的方法如同盲人摸象,只能告訴我們資料在某個區域性的情況,而不能給出資料的全貌。而且對於某些問題,這樣的結果顯得有些不夠用。比如使用者註冊之後完成消費的比例與哪些因素相關?又比如對於某個客戶,應該向他推薦什麼樣的商品?在這些場景下,我們就需要更加精細的資料分析工具—機器學習和統計模型。在我看來,這些內容是資料科學的核心內容,也是《精通資料科學:從線性迴歸到深度學習》

一書介紹的重點。

在資料科學實踐中,我們將使用較為複雜的機器學習或統計模型對資料做精細化的分析和預測。這在工程實現和模型搭建兩方面都提出了挑戰,如圖1-1所示。

640?wx_fmt=png工程實現的挑戰640?wx_fmt=png

資料科學在工程上的挑戰可以大致分為3類:特徵提取、矩陣運算和分散式機器學習。

(1)一個建模專案的成功在很大程度上依賴於建模前期的特徵提取。它包含資料清洗、資料整合、變數歸一化等。經過處理後,原本攪作一團的原始資料將被轉換為能被模型使用的特徵。這些工作需要大量的自動化程式來處理,特別是面對大資料時,因為這些大資料無法靠“人眼”來檢查。在一個典型的建模專案中,這部分花費的時間遠遠大於選擇和編寫模型演算法的時間。

(2)對於一個複雜的數學模型,計算機通常需要使用類似隨機梯度下降法的最優化演算法來估算它的模型引數。這個過程需要大量的迴圈,才能使引數到達收斂值附近。因此即使面對的是很小的資料集,複雜的模型也需要很長時間才能得到正確的引數估計。而且模型在結構上越複雜,需要估計的引數也就越多。對這些大量的模型引數同時做更新,在數學上對應著矩陣運算。但傳統的CPU架構並不擅長做這樣的運算,這導致模型訓練需要耗費大量的時間。為了提高模型的訓練速度,需要將相應的矩陣運算(模型引數的估算過程)移植到GPU或者特製的計算晶片上,比如TPU。

(3)近年來,隨著分散式系統的流行和普及,儲存海量資料成為了業界的標配。為了能在這海量的資料上使用複雜模型,需要將原本在一臺機器上執行的模型演算法改寫成能在多臺機器上並行執行,這也是分散式機器學習的核心內容。

640?

圖1-1

640?wx_fmt=png模型搭建的挑戰640?wx_fmt=png

資料科學對模型搭建的要求也可以總結為3點:模型預測效果好、模型引數是穩定且“正確”的、模型結果容易解釋。

(1)模型的預測效果好,這是資料科學成功的關鍵。而一個模型的預測效果取決於它的假設是否被滿足。從數學上來看,任何一個模型除去假設部分,它的其他推導都是嚴謹的數學演算,是無懈可擊的。因此模型假設就像模型的阿喀琉斯之踵,是它唯一的薄弱環節。當問題場景或資料滿足模型假設時,模型的效果一定不會差,反之,則預測效果就無法保證了。但在實際生產中,針對一個具體的問題,幾乎不可能找到一個模型,它的假設被百分之百地滿足。這時就需要避重就輕,通過特徵提取等手段,儘量避免違反那些對結果影響很大的假設。這就是為什麼說“所有模型都是錯的,但是,其中有一些是有用的”。

(2)除了被用來對未知資料做預測外,模型另一個重要的功能就是對已有資料做分析,比如哪個變數對結果的影響最大或者某個變數對結果到底是正向影響還是負向影響等。這些分析結果在很大程度上依賴於模型引數的估計值,後者的準確與否直接決定分析結果的質量。但問題是,模型引數的估計值是不太“可靠”的。例如從訓練資料中隨機抽取兩個不完全一樣的資料子集A和B,然後用這兩個資料集分別訓練同一個模型。得到的引數估計值幾乎不可能完全一樣。從數學的角度來看,這說明模型引數的估計值其實是一個隨機變數,具體的值取決於訓練模型時使用的資料。於是我們要求這些估計值是“正確”的:圍繞引數真實值上下波動(也就是說它們的期望等於引數真實值)。我們還要求這些估計值是穩定的:波動的幅度不能太大(也就是說它們的方法比較小)。這樣就可以把引數估計值的“不可靠性”控制在可接受的範圍內。

(3)資料科學家將模型搭建好,並不是一個數據科學專案的終點。為了充分發揮資料的價值,需要將模型結果應用到實際的生產中,比如為手機銀行APP架設實時反欺詐系統,或者將利用新搭建的車禍風險模型為汽車保險定價等。參與這個過程的不僅有懂模型的資料科學家,還有更多非技術的業務人員。而後者往往是使用模型的主力,比如根據反欺詐系統的結果,對可疑使用者進行人工稽核,又或者向客戶解釋為什麼他的車險比別人貴。為了幫助他們更好地理解模型結果,需要將複雜深奧的模型翻譯成直觀的普通語言。這要求模型是能被解釋的,而且是容易被解釋的。

在對資料搭建模型時,有兩種截然不同的思路,如圖1-2所示。

一種是所謂的資料模型(data model),也就是傳統的統計模型。這種思路假設資料的產生過程是已知的(或者是可以假設的),可以通過模型去理解整個過程。因此,這類模型通常具有很好的可解釋性,分析其穩定性的數學工具也很多,能很好地滿足上面提到的後兩點。但是在實際生產中,這些模型的預測效果並不好,或者更準確地說,單獨使用時,預測效果並不理想。

640?
圖1-2

另一種是所謂的演算法模型(algorithm model),也就是機器學習。這類模型是人工智慧的核心內容,它們假設資料的產生過程是複雜且未知的。建模的目的是儘可能地從結構上“模仿”資料的產生過程,從而達到較好的預測效果。但代價是模型的可解釋性很差,而且模型穩定性的分析方法也不多。

正如上面的分析,統計學和機器學習在某些方面具有極好的互補性。因此在實際的生產中,為了將一個數據科學專案做得儘可能完美,我們需要將這兩種思路結合起來使用。比如使用機器學習的模型對資料建模,然後借鑑資料模型的分析工具,分析模型的穩定性和給出模型結果的直觀解釋。

 1.2 機器學習

在討論機器學習之前,我們先來總結一下人是怎麼學習的:在面對一個具體的問題時,人首先會根據已有的經驗和當前的資訊做出反應行動,然後按照行動獲得的反饋去修正自己的經驗,並不斷重複這個過程。

機器學習就是通過程式讓計算機“學會”人的學習過程。換句話說,機器學習是一個計算機程式,這個程式能夠根據“經驗”自我完善。那麼問題來了,既然都是程式,機器學習和傳統程式設計有什麼不同呢?

640?wx_fmt=png機器學習與傳統程式設計640?wx_fmt=png

首先,通過一個假想的例子來體會這兩者之間的差異。假設我們需要構建一個能區分老虎和斑馬圖片的系統,而這個任務被交給了程式設計師小李和資料科學家小胡。

程式設計師小李拿到這個任務之後,他首先總結了兩條分辨這兩種動物的經驗:

•  斑馬的毛髮是黑白相間的,而老虎的毛髮有3種顏色:黑色、白色和黃色。

•  斑馬的耳朵比較大,而老虎的耳朵比較小。

然後,小李將上面的兩條經驗總結成規則:如果圖中的動物有黃色毛髮或者耳朵比較小,那麼圖中的動物是老虎,反之則為斑馬。

最後,他將規則翻譯成程式程式碼交給計算機去執行。

資料科學家小胡的做法則完全不同。他並不去總結區別這兩種動物的規則,而是假設毛髮顏色和耳朵大小能區別這兩者。於是小胡將這個邏輯翻譯成學習程式執行在計算機上。與此同時,他還從網路上收集了一大堆老虎和斑馬的圖片,並將這些圖片做好標記,即每張圖片對應的動物是什麼。然後小胡將資料(圖片+標記)輸入給之前編寫好的學習程式,而後者就可以根據資料不斷累積經驗和總結規則,這個過程被稱為模型訓練。經過一段時間的訓練後,學習程式最後得到了一個模型(以程式碼的形式存在)。這個得到的模型和小李自己編寫的程式一樣,可以用來區分老虎和斑馬的圖片。

小李和小胡各自的工作流程如圖1-3所示。從程式設計的角度來看,機器學習是一種能自動生成程式的特殊程式。

640?

圖1-3

也許上面的例子有點過於抽象了,下面再來看一個簡單而具體的例子。假設我們想通過一個成年人的身高(用變數x表示)來預測他的體重(用變數y表示)。這項工作同樣被交給了小李和小胡。

小李拿到問題之後,首先上網查閱了成年人身高與體重的相關研究資料。他發現這兩者的關係可以用如下的公式表示。

y = 0.9x – 90                         (1-1)

接著他將公式(1-1)轉換為程式裡面的函式,這個函式的輸入引數是身高,輸出是預測的體重。

小胡接到任務後,首先假設身高和體重的關係可以用線性迴歸模型來表示,也就是公式(1-2),其中a和b為未知的模型引數

y = ax + b                           (1-2)

同圖片識別中的做法類似,小胡接下來收集了大量的人體身高和體重的資料。他將這些資料輸入給模型,而模型將根據得到的資料估計未知引數a,b。估計的原則是使得模型預測值與實際值的差距達到最小。經過計算之後,得到引數的估計值為a ̂  = 0.8,b ̂  = -100。也就是說經過模型訓練後,小胡得到了如公式(1-3)所示的程式

y = 0.8x – 100                         (1-3)

圖1-4所示是小李和小胡各自提供的解決方案。640?

圖1-4

總結一下,傳統的程式設計方式是人類自己積累經驗,並將這些經驗轉換為規則或數學公式,然後就是用程式語言去表示這些規則和公式。而機器學習可以被看作一種全新的程式設計方式。在進行機器學習時,人類不需要總結具體的規則或公式,只需制訂學習的步驟,然後將大量的資料輸入給計算機。後者可以根據資料和人類提供的學習步驟自己總結經驗,自動升級。計算機“學習”完成之後會得到一個模型程式,而這個由程式生成的程式可以達到甚至超過人類自身的水平。

640?wx_fmt=png監督式學習和非監督式學習640?wx_fmt=png

機器學習根據所用的訓練資料可以分為兩類。一類是監督式學習,這類模型的特點是訓練資料裡有標註,也就是常說的被預測量y。1.2.1節裡討論的兩個例子都是監督式學習。監督式學習按標註的型別又可以細分為兩類:分類和迴歸。如果資料裡的標註表示事物的類別,也就是說標註是離散的,那麼相應的模型就屬於分類,比如1.2.1節裡動物圖片識別的例子。如果標註表示具體的數量,也就是說標註的是連續的,那麼相應的模型就屬於迴歸,比如1.2.1節裡通過身高預測體重的例子。

另一類是非監督式學習,這類模型所用的訓練資料裡並沒有標註,只有自變數x。非監督式學習根據用途又可以分為兩類:聚類和降維。把“距離”相近的點歸於一類叫作聚類,而將高維空間裡的資料對映到低維度空間叫作降維,具體內容見圖1-5。

640?

1-5

 1.3 統計模型

從上面的例子中可以看到,機器學習非常依賴所用的訓練資料。但是資料就百分之百可靠嗎?下面就來看兩個資料“說謊”的例子。

如圖1-6所示,我們將某APP每月的使用者註冊數表示在圖中。圖1-6a給人的直觀印象是每月的安裝數是大致差不多的,沒有明顯的增長。而圖1-6b給人不同的印象,從3月份開始,使用者註冊數大幅度增長。但其實兩幅圖的資料是一模一樣的,給人不同的感覺是因為圖1-6a中縱軸的起點是0,而且使用了對數尺度;而圖1-6b的縱軸是從17 000開始的,而且使用的是線性尺度。

640?

      (ab

1-6

讀者可能會覺得上面這個例子太過簡單了,只需要使用一些簡單的統計指標,比如平均值或每個月的增長率,就可以避免錯誤的結論。那麼下面來看一個複雜一點的例子。

當得到如圖1-7所示的兩組資料時,我們應該如何用模型去描述資料的變化規律呢?

•  對於圖1-7a,資料的圖形有點像拋物線,因此選擇二次多項式擬合是一個比較合理的選擇。於是假設模型的形式為y = (x - a)(x - b)。然後使用資料去估計模型中的未知引數a,b。得到的結果還不錯,模型的預測值與真實值的差異並不大。

640?

    (ab

1-7

•  對於圖1-7b,資料之間有明顯的線性關係,所以使用線性迴歸對其建模,即y = ax + b。與上面類似,得到的模型結果也不錯。

根據上面的分析結果,可以得出如下的結論,圖1-7a中的x與y之間是二次函式關係,而圖1-7b的x與y之間是線性關係。但其實兩幅圖中的變數y都是與x無關的隨機變數,只是因為觀察視窗較小,收集的資料樣本太少,讓我們誤以為它們之間存在某種關係。如果增大觀察視窗,收集更多的資料,則可以得到完全不同的結論。如圖1-8所示,如果將收集的樣本數從20增加到200,會發現圖1-8a中的資料圖形更像是一個向下開口的拋物線,這與圖1-7a中的結論完全相反。而圖1-8b中也不再是向下的直線,而與開口向上的拋物線更加相似。

640?

   (ab

1-8

上面的例子就是所謂的模型幻覺:表面上找到了資料變動的規律,但其實只是由隨機擾動引起的數字巧合。因此在對搭建模型時,必須時刻保持警惕,不然很容易掉進資料的“陷阱”裡,被資料給騙了,而這正是統計學的研究重點。這門學科會“小心翼翼”地處理它的各種模型,以確保模型能擺脫資料中隨機因素的干擾,得到穩定且正確的結論,正好彌補機器學習在這方面的不足。

 1.4 關於《精通資料科學:從線性迴歸到深度學習》

資料科學涉及計算機程式設計和數學建模這兩個方面。它們之間的交集並不多,所強調的技能也有很大區別。這體現在實際生產中就是懂模型的人不懂程式設計,懂程式設計的人不懂模型,兩者兼備的人才非常稀缺。本書的第一個目的就是將這兩者的鴻溝彌補起來,注重模型假設和數學推導的同時,強調如何用程式碼實現模型。

  從模型之間的聯絡和區別出發,分析各個模型的優缺點。幫助非數學專業的讀者更加深入地理解模型的假設和適用範圍,而不只是停留在會使用開源模型庫的API。

•  通過大量實際案例和程式碼展示,幫助非計算機專業的讀者能獨立上機實踐模型演算法,而不只停留在模型的理論研究。

對於資料科學中的模型搭建,統計學和機器學習是其最重要的組成部分。這兩門學科的側重點並不相同,在很多方面它們是彼此很好的補充。在面對一個實際問題時,若能將兩者的方法相結合,能更好地挖掘資料的內在規律,從而更大程度地發揮資料的價值。這是本書的第二個目的。

•  將機器學習和統計結合起來,並借鑑統計學在經濟領域的應用,為機器學習的演算法提供一個生動而又不失精確的解釋。同時用豐富的圖片將這些解釋直觀地表現出來,幫助專業人員將模型和演算法解釋給非專業的業務人員,推動模型的落地和應用。

•  借鑑計量經濟學的方法,深入探討模型應用中常常被人們(特別是機器學習專業人員)忽略的問題,如模型是否穩定、模型結果是否可靠等,幫助讀者反思建模過程中是否有考慮不周到的地方,以至於模型得到錯誤的結論。

當前,資料科學有兩個最熱門的前沿領域:分散式機器學習和深度學習。本書有專門的章節討論它們,展示這兩個領域想要解決的問題和目前最好(或最流行)的解決方案。這是本書的第三個目的:從巨集觀的角度向讀者展示什麼是資料科學,想要解決的問題、主要的方法以及未來的發展方向。

本書並不試圖成為機器學習或統計學的參考文。在之後的章節裡,有關模型的數學推導都只是簡略講解,並不做詳細證明(本文也不會為了迎合行文簡便,一味地迴避這些難點)。本書討論的重點是資料科學的整個工作流程(Pipeline):不止是搭建模型、用資料去訓練模型,而是如何對資料進行預處理,初步分析資料、搭建並評估模型以及根據結果分析模型的缺點進而改進模型。

本文摘自《精通資料科學:從線性迴歸到深度學習》

640?

《精通資料科學:從線性迴歸到深度學習》

唐亙  

資料科學入門到實戰,介紹資料科學常用的工具——Python、數學基礎及模型,討論資料科學的前沿領域——大資料和人工智慧,包括機器學習領域經典的模型、分散式機器學習、神經網路和深度學習等。 

·在資料學科的角度,融合了數學、電腦科學、計量經濟學的精髓

·為讀者闡釋了資料科學所要解決的核心問題—資料模型、演算法模型的理論內涵和適用範圍 

·以常用的IT工具—Python 3為基礎,教會讀者如何建模以及通過演算法實現資料模型,具有很強的實操性。 

·本書還為讀者詳解了分散式機器學習、神經網路、深度學習等大資料和人工智慧的前沿技術。

作者簡介:唐亙,資料科學家,專注於機器學習和大資料。曾獲得復旦大學的數學和計算機雙學士學位;巴黎綜合理工的金融碩士學位;法國國立統計與經濟管理學校的資料科學碩士學位。熱愛並積極參與是Apache Spark和Scikit-Learn等開源專案。作為講師和技術顧問,為多家機構(包括惠普、華為、復旦大學等)提供百餘場技術培訓。此前的工作和研究集中於經濟和量化金融,曾參與經濟合作與發展組織(OECD)的研究專案並發表論文,並擔任英國最大線上出版社Packt的技術審稿人。  

 本書目錄

(滑動手機檢視)

第1章  資料科學概述1

1.1 挑戰2

1.1.1  工程實現的挑戰2

1.1.2  模型搭建的挑戰3

1.2 機器學習5

1.2.1  機器學習與傳統程式設計5

1.2.2  監督式學習和非監督式學習8

1.3 統計模型8

1.4 關於本書10

第2章  Python安裝指南與簡介:告別空談12

2.1 Python簡介13

2.1.1  什麼是Python15

2.1.2  Python在資料科學中的地位16

2.1.3  不可能繞過的第三方庫17

2.2 Python安裝17

2.2.1  Windows下的安裝18

2.2.2  Mac下的安裝21

2.2.3  Linux下的安裝24

2.3 Python上手實踐26

2.3.1  Python shell26

2.3.2  第一個Python程式:Word Count28

2.3.3  Python程式設計基礎30

2.3.4  Python的工程結構34

2.4 本章小結35

第3章  數學基礎:惱人但又不可或缺的知識36

3.1 矩陣和向量空間37

3.1.1  標量、向量與矩陣37

3.1.2  特殊矩陣39

3.1.3  矩陣運算39

3.1.4  程式碼實現42

3.1.5  向量空間44

3.2 概率:量化隨機46

3.2.1  定義概率:事件和概率空間47

3.2.2  條件概率:資訊的價值48

3.2.3  隨機變數:兩種不同的隨機50

3.2.4  正態分佈:殊途同歸52

3.2.5  P-value:自信的猜測53

3.3 微積分55

3.3.1  導數和積分:位置、速度55

3.3.2  極限:變化的終點57

3.3.3  複合函式:鏈式法則58

3.3.4  多元函式:偏導數59

3.3.5  極值與最值:最優選擇59

3.4 本章小結61

第4章  線性迴歸:模型之母62

4.1 一個簡單的例子64

4.1.1  從機器學習的角度看這個問題66

4.1.2  從統計學的角度看這個問題69

4.2 上手實踐:模型實現73

4.2.1  機器學習程式碼實現74

4.2.2  統計方法程式碼實現77

4.3 模型陷阱82

4.3.1  過度擬合:模型越複雜越好嗎84

4.3.2  模型幻覺之統計學方案:假設檢驗87

4.3.3  模型幻覺之機器學習方案:懲罰項89

4.3.4  比較兩種方案92

4.4 模型持久化92

4.4.1  模型的生命週期93

4.4.2  儲存模型93

4.5 本章小結96

第5章  邏輯迴歸:隱藏因子97

5.1 二元分類問題:是與否98

5.1.1  線性迴歸:為何失效98

5.1.2  視窗效應:看不見的才是關鍵100

5.1.3  邏輯分佈:勝者生存102

5.1.4  引數估計之似然函式:統計學角度104

5.1.5  引數估計之損失函式:機器學習角度104

5.1.6  引數估計之最終預測:從概率到選擇106

5.1.7  空間變換:非線性到線性106

5.2 上手實踐:模型實現108

5.2.1  初步分析資料:直觀印象108

5.2.2  搭建模型113

5.2.3  理解模型結果116

5.3 評估模型效果:孰優孰劣118

5.3.1  查準率與查全率119

5.3.2  ROC曲線與AUC123

5.4 多元分類問題:超越是與否127

5.4.1  多元邏輯迴歸:邏輯分佈的威力128

5.4.2  One-vs.-all:從二元到多元129

5.4.3  模型實現130

5.5 非均衡資料集132

5.5.1  準確度悖論132

5.5.2  一個例子133

5.5.3  解決方法135

5.6 本章小結136

第6章  工程實現:計算機是怎麼算的138

6.1 演算法思路:模擬滾動139

6.2 數值求解:梯度下降法141

6.3 上手實踐:程式碼實現142

相關推薦

好書推薦程式設計師基於Python3實現資料科學

點選上方“程式人生”,選擇“置頂公眾號”第一時間關注程式猿(媛)身邊的故事參與文末話題討論,有機

這是我推薦程式設計師基於Python3實現資料科學

​點選關注非同步圖書,置頂公眾號每天與你分享IT好書 技術乾貨 職場知識​參與文末話題討論,每日贈送非同步圖書。——非同步小編​​和武俠世界裡有少林和武當兩大門派一樣,資料科學領域也有兩個不同的學派:以統計分析為基礎的統計學派,以及以機器學習為基礎的人工智慧派。雖然這兩個學派

推薦程式設計師的最新技術

11月書訊重榜來襲十一月書訊釋出啦!9種好書與您相約月末準備銀子買書吧。即將上架 Python機器學習《 Python機器學習——預測分析核心演算法 》從演算法和Python 語言實現的角度,幫助讀者認識機器學習。 專注於兩類核心的“演算法族”,即懲罰線性迴歸

推薦程式設計師的一些(不止是技術

生活中我是一個嗜書如命的人,不管是小說還是非小說,不同型別的書我都喜歡看。不過,人在成年之後,讀書的熱情會逐漸消退,把精力投入到其他事物上。不足為奇的是,不論何種形式的書(包括電子書和有聲讀物),幾乎沒有成年人能堅持定期閱讀。我既不打算談論社交媒體如何轉移了我們的注

一個行走在路上的程式設計師創業者,希望將自己的故事分享那些要改變世界的程式設計師,共勉!!!

緣由 我是一個程式設計師,從1995年小學3年級就跟程式設計結緣,當時只是學校開的培訓班以為能玩遊戲就報名了,還學習了basic和logo語言,雖然沒有任何用處也學得不深入,但卻對我的一生產生關鍵影響,讓我喜歡上了程式設計,讓我覺得除了科學家、老師、醫生、畫家、作家之外,世

博導推薦我一本基於Python實現爬蟲的, 適合程式的!

網際網路包括了至今為止最有效的資料集,並且大年夜大年夜區域性能地下收費拜候。但這些資料根基上不克不及複用。它們被嵌入在網站的佈局、樣式中,得抽取出來才調應用。我們從網頁中抽取資料的過程就是我們熟知的彙集爬蟲,網際網路期間每天都有大年夜大年夜量的資訊被頒佈發表到彙集上,彙集爬蟲也愈來愈有效。

Java 程式設計師值得一好書推薦

作者:mdcc 連結:https://zhuanlan.zhihu.com/p/23444919 來源:知乎 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。“學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。個人認為看書有兩點

李開復程式設計師的七個建議(轉摘)

https://blog.csdn.net/fly8377/article/details/2060485 1.練內功。不要只花功夫學習各種流行的程式語言和工具,以及某些公司招聘廣告上要求的科目。要把資料結構、演算法、資料庫、作業系統原理、計算機體系結構、計算機網路、離散數學等基礎課程學

程式設計師面試有哪些小竅門?接地氣的程式設計師面試面試技巧總結

先來看看:    https://mobile.yangkeduo.com/mall_page.html?mall_id=129221094 因為程式設計師基本都是頭腦程式化,不太會察言觀色,也就是情商不是很高,我就是屬於那種!~~今天我們要講的並不是諸如php面試

做c++程式設計師如何修煉技術?

作為一名想要真正學東西的並從事軟體這行的人,我覺得還是學習C++更有利於自己的成長。一個幹了10年的Java程式設計師和一個幹了兩三年的Java程式設計師相比,並沒有多大優勢。但是一個幹了10年的C++程式設計師和一個幹兩三年C++的程式設計師有天攘之別。 在學習C/C++或者想要學習C/

調查:Java程式設計師傷心,C++程式設計師年老

說起我們對程式設計世界現有的刻板印象,你一定聽說過類似於沒有人喜歡用Java編碼或者使用C ++都是老人家,等等這樣的話。為了分析這些刻板印象背後的真相,Trestle Technology的資料工程師寫了一個工具。 不知道你有沒有聽說過微軟的Project Oxford,它的Face API可

推薦程式設計師必讀的三十本經典鉅作

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

程式設計師準備的邏輯思維題

【1】假設有一個,裡面有無窮多的水。現有2個空水壺,容積分別為5升和6升。問題是如何只用這2個水壺從池塘裡取得3升的水。 【2】周雯的媽媽是豫林水泥廠的化驗員。 一天,周雯來到化驗室做作業。做完後想出去玩。 “等等,媽媽還要考你一個題目,”她接著說,”你看這6只做化驗用的玻璃杯,前面3只盛滿了

剛從阿里面試回來,程式設計師談談(進阿里的必

       最近面試了多家網際網路公司,最終收到了阿里offer,面試前在網上也蒐集了面試題目, 但有些不是過時的,就是題目雜亂,歸納不繫統。 這次面試過後,我把面試上阿里的面試過程整理了一下,當做是一個總結,後來有朋友問我要面試記錄,索性發布出來,跟大家一起分享

告訴準程式設計師些什麼?

1。實現一個功能的方案有很多種,不要讓自己停留在原地。 2。敏捷開發流程比你懂多少技術還要重要。 3。編碼規範大於寫程式碼的自由度。 4。不要讓自己限制於一門語言,選擇合適的方案去應用在不停的場景。 5。好的程式設計師是至少0.75個產品經理,永遠記著自己不是寫完程式碼在本地執行

java 書籍推薦 JavaEE程式設計師必讀圖書大推薦

java 書籍推薦 JavaEE程式設計師必讀圖書大推薦 轉自:http://www.cnblogs.com/xlwmin/articles/2192775.html   下面是我根據多年的閱讀和實踐經驗,給您推薦的一些圖書: 第一部分: Java語言篇 1 《Ja

#國企年薪20萬女員工轉行當程式設計師,網友:你還是太年輕

看到這樣一則帖子,一女網友發帖吐槽了自己的工作,表示自己想要從國企跳槽到網際網路公司,但是覺得工作很壓抑看不到未來的希望,打算辭職考研,出來做一名演算法工程師,做一個有獨立想法敢於活出自我的女程式設計師。 如果有想學習java的程式設計師,可來我們的java學習扣qun:72340,3928

#27歲985公務員年薪30萬,竟轉行做程式設計師!網友:跑去996?

俗話說“沒有比較就沒有傷害”,小時候我們會被大人和別人家的孩子比成績,長大後還要比薪資,看誰賺得多,要是自己處在優勢位置的話那還好,但要是處於弱勢地位,那麼總會心有不甘,不過這種弱勢地位有時候也可以激勵我們努力學習和工作,成為我們前進的動力。 有一位網友在一家國企任職,年薪30萬,六險一

你見過牛逼的程式設計師是什麼樣的?拳打回車鍵,腳踩Emacs編輯器

我自己是一名大資料架構師,目前辭職在做線上教育大資料講師,每天都會直播分享免費公開課,大家可以加群參加。以及我自己整理了一套最新的大資料學習系統教程,包括Hadoop,資料探勘,資料分析。送給正在學習大資料的小夥伴!這裡是大資料學習者聚集地,歡迎初學和進階中的小夥伴!加QQ群:5849001

你願意嫁程式設計師嗎?網友的回覆很扎心,很中肯

程式設計師一直被大家貼上各種標籤,譬如 “直男癌”,“品味差”,“地中海”,“顏值低”,“不浪漫“,“加班多“,“情商低“、“智商高”、“收入高”等。 對於這些標籤小編覺得有些說的太過於絕對了,比如 “直男癌”,“品味差”這些跟程式設計師職業沒多大關係了,應該屬於個人生活習慣的問題,就算他不從事