這就是微積分的強大之處——數據可視化中的運用

2020-12-12 老胡說科學

微積分是一種以純粹形式發展起來的抽象理論。

微積分,更確切地說是分析學,是研究數量變化率(可以解釋為曲線的斜率)和物體的長度、面積和體積的數學分支。微積分分為微分學和積分學。

微分
積分

微積分這個詞來自拉丁語,意思是「小石頭」,因為這就像通過觀察小塊來理解一些東西。

微積分是數學的一個固有領域,尤其是在許多機器學習算法中,你不能想要跳過這門課來學習數據科學的本質。

微分學把一個東西切成小塊來研究它是如何變化的。

積分學把這些小塊連接起來,計算出有多少。

我希望你們已經理解了微分和積分的基礎知識。數據科學家幾乎對每一個模型都使用微積分,梯度下降是機器學習中微積分的一個基本但很好的例子。

梯度下降法

梯度測量的是如果你稍微改變一下輸入,函數的輸出會改變多少。

假設你有一個球和一個碗。無論你把球放在碗裡的什麼地方,它最終都會落在碗的底部。

正如你所看到的,這個球沿著一條直到碗底的路徑運動。我們也可以說,球是下降在碗的底部。從圖中可以看出,紅色的線是球的梯度,藍色的線是球的路徑,隨著球的斜率的下降,這被稱為梯度下降。

在我們的機器學習模型中,我們的目標是降低輸入數據的成本。成本函數用於監視ML模型預測中的錯誤。所以最小化這個,基本上意味著得到可能的最小誤差值或者增加模型的準確性。簡而言之,我們在調整模型的參數(權重和偏差)的同時,通過迭代訓練數據集來提高準確性。

讓我們假設我們有一個用戶數據集,其中包含用戶在某些主題中的標記和他們的職業。我們的目標是通過考慮一個人的標記來預測他的職業。

在這個數據集中,我們有張三和李四的數據。根據張三和李四的參考數據,我們必須預測王二麻的職業。

現在把學科中的分數看作是一個梯度,把職業看作是底部的目標。你必須優化你的模型,使它在底部預測的結果應該是準確的。使用張三和李四的數據,我們將創建梯度下降,並調整我們的模型,如果我們輸入張三的標記,那麼它應該在梯度的底部預測醫生的結果,對於李四也是如此。這是我們訓練過的模型。現在,如果我們給我們的模型打分數,那麼我們可以很容易地預測這個職業。

理論上這就是梯度下降法,但是要計算和建模,梯度下降法需要微積分,現在我們可以看到微積分在機器學習中的重要性。

首先讓我們從你現在知道的話題開始。線性代數。讓我們先用線性代數和它的公式來建立我們的模型。

我們可以在這個模型中使用的基本公式是y = m*x +b,其中y =預測變量,m =斜率,x =輸入,b= y截距。

解決這類問題的標準方法是定義一個誤差函數(也稱為成本函數)來度量給定行的「良好」程度。此函數將成(m,b)對出現,並根據該行與數據的匹配程度返回一個錯誤值。為了計算給定線的誤差,我們將遍歷(x,y)數據集中的每個點,並對每個點的y值與候選線的y值之間的平方距離求和(在處計算mx + b)。通常將此距離平方以確保它為正,並使我們的誤差函數可微。

更適合我們的數據的行(其中更好是由我們的錯誤函數定義的)將導致更小的誤差。如果我們最小化這個函數,我們將得到數據的最佳行數。由於誤差函數包含兩個參數(m和b),我們可以把它想像成一個二維曲面。這是我們的數據集的樣子:

這個二維空間中的每個點代表一條直線。函數在每個點處的高度是該行的誤差。您可以看到,有些行產生的誤差比其他行小(例如,以配合我們的數據)。當我們運行梯度下降搜索時,我們將從這個表面的某個位置開始,然後向下移動,找到誤差最小的直線。

在微積分的精髓視頻中你們已經看到,計算斜率,我們使用微分。

函數z=f(x,y)的圖像,z=f(x,y)是一個曲面,固定y=by=b得到一條曲線(綠色表示)。偏導數fx(a,b)fx(a,b)是在x = ax = a處該曲線的切線斜率。要對這個誤差函數運行梯度下降,我們首先需要計算它的梯度。梯度就像指南針一樣,總是指向下坡。為了計算它,我們需要微分誤差函數。因為我們的函數是由兩個參數(m和b)定義的,所以我們需要分別計算它們的偏導數。這些導數是:

現在,我們擁有運行梯度下降所需的所有工具。我們可以將搜索初始化為從任意對m和b值(即任意線)開始,然後讓梯度下降算法沿誤差函數向最佳線行進。每次迭代都會更新,m並b會產生一條比上一次迭代產生的錯誤略低的錯誤行。使用上面的兩個偏導數來計算每次迭代的進入方向。

學習率變量控制我們在每次迭代中向下走的步的大小。如果我們邁出太大的一步,我們可能會超過最小的一步。然而,如果我們採取小的一步,它將需要許多迭代達到最小。

雖然我們對學習梯度下降法有了初步的了解,但還有一些我們無法討論的概念值得注意。其中包括:

凸性-在我們的線性回歸問題中,只有一個最小值。我們的誤差曲面是凸的。不管我們從哪裡開始,最終都會得到絕對最小值。一般來說,情況不一定如此。梯度搜索可能會陷入局部極小值的問題。有幾種方法可以緩解這種情況(例如,隨機梯度搜索)。

收斂-我們沒有討論如何確定何時搜索找到一個解決方案。這通常是通過在錯誤迭代到迭代中尋找小的變化來完成的(例如,梯度接近於零)。

多元微積分

後面我們將深入研究多元變量演算,它將教我們如何在實際生活中最終獲得的多元數據演算。

相關焦點

  • 數據可視化設計系列(1): 數據可視化的定義
    有趣的是,託了中文強大構詞能力的福,「數據可視化」(Data Visualization)作為一個譯詞,隱隱顯得莫名地高端難解了。這種精煉Nathan Yau多次在《Data Points》做出過一個比喻:好似攝影,數據根本就是在特定的時間和地點對現實世界信息的不完全捕捉(8)。照片中每個像素對真實世界色彩的記錄,只是最接近我們對自然世界觀察視角。陽光照之於萬物,萬物顯現各異,光憑一張照片,總歸有缺失有誤差。數據也是一樣。
  • 這16個數據可視化案例,驚豔了全球數據行業
    數據可視化可以幫你更容易的解釋趨勢和統計數據。  數據是非常強大的。當然,如果你能真正理解它想告訴你的內容,那它的強大之處就更能體現出來了。  通過觀察數字和統計數據的轉換以獲得清晰的結論並不是一件容易的事。必須用一個合乎邏輯的、易於理解的方式來呈現數據。  談談數據可視化。
  • 39個大數據可視化工具
    無論是在行政演示中為數據點創建一個可視化進程,還是用可視化概念來細分客戶,數據可視化都顯得尤為重要。以前的工具的基本不能處理大數據。本文將推薦39個可用於處理大數據的可視化工具(排名不分先後)。其中許多工具是開源的,能夠共同使用或嵌入已經設計好的應用程式中使用,例如JavaScript,JSON,SVG,Python,HTML5,甚至有些工具不需要任何程式語言基礎。
  • 想要搞懂數據可視化,看這一篇就夠了
    最近很多朋友跟我抱怨:為了公司數據好看,老闆一個勁地想要數據可視化,以為可視化就是畫畫圖表這麼簡單,可苦了自己天天加班做數據,但其實老闆根本不懂可視化!確實,數據可視化無疑是當今最火熱的詞,不管是做什麼數據,似乎都要拿來做一下可視化才行,但很多人都對數據可視化沒有一個具體的概念,也不知道該如何實現可視化。
  • 數據可視化基本套路總結
    (略有修改和補充,藍色的字可點擊跳轉查看對應圖形怎麼在R中繪製)原文如下 :首先從維基百科上搬出數據可視化的概念:數據可視化是關於數據之視覺表現形式的研究;其中,這種數據的視覺表現形式被定義為一種以某種概要形式抽提出來的信息,包括相應信息單位的各種屬性和變量。
  • 遊戲中的數據可視化設計分析
    數據可視化的出現就是為了增強人的認知能力,同時提供給人們認識世界一些全新的視角。遊戲也是一個基於視聽體驗的認知過程,遊戲通過教程或自由探索讓玩家認識遊戲世界。遊戲分為很多種類型,如射擊遊戲(STG)、動作遊戲(ACT)、角色扮演遊戲(RPG)等等。
  • 冠軍之選 | 一份全面的國內外數據可視化書籍閱讀指南!
    量化信息的視覺呈現(暫譯)The Visual Display of Quantitative InformationBy Edward R.Tufte雖然是在 1983 年出版的,但它仍然是亞馬遜電商上的經典和暢銷書。它為核心數據可視化理論提供了很好的介紹,是每個數據可視化專家必備的書籍。
  • 數據可視化,請回答2018之可視化乾貨推薦
    不同顏色表示從美國的不同方位遷來的移民,如,圖中綠色的年輪代表歐洲移民。不同州的移民構成不同,作者就用50個年輪拼湊了一張美國地圖,和你想的一樣,加州的亞裔和南美裔移民較多,美國東北部的歐洲移民較多。此項目也獲得了2018年凱度信息之美的金獎。
  • 數據可視化|matplotlib 的主要組成元素
    ,具有可定製性強、圖表資源豐富等特點,既能創建靜態圖形,也能創建動態交互的數據可視化效果;既能創建 2D 圖形,也能創建 3D 圖形;既能創建常見的簡單圖形,也能創建統計學專業的複雜圖形。matplotlib 繪製出來的圖形質量很高,可以達到出版級別,而且功能非常強大,幾乎能創建任何你能想像的可視化圖形。在 Python 中,還有很多其他非常優秀的繪圖庫,比如 Seaborn、Pyecharts、Bokeh、Plotly、ggplot 等等,它們各有各的優勢,但是我個人認為,應該先把 matplotlib 學精學透,達到深入理解和熟練運用的程度。
  • 數據可視化與信息可視化怎麼搞?
    我們常常迷失在數據中,紛繁複雜的數據讓我們無所適從。可視化作為解決這問題的有效手段,通過視覺的方式讓數字易於理解。本文梳理了可視化相關內容,並且根據數據平臺組同仁們在可視化項目過程中使用經驗,總結一些可視化使用注意事項,與大家分享。
  • 一文讀懂數據可視化(文末有彩蛋)
    這裡引入一個概念——可視編碼,它數據信息映射為可視化元素的技術,其通常具有表達直觀、易於理解和記憶的特性。數據包含屬性和值,相應可視編碼也由兩部分組成:標記和視覺通道,標記代表數據屬性的分類,視覺通道表示人眼所能看到的各種元素的屬性,包括大小、形狀、顏色等,往往用來展示屬性的定量信息。例如,對於柱狀圖而言,標記就是矩形,視覺通道就是矩形的顏色、高度或寬度等。
  • 數據人必備!史上最全的數據分析可視化工具!
    十分強大的圖表製作工具,本身帶有十分豐富多樣的模板,如果個人不滿意還可以手動設計,優點也是不需要代碼編程,缺點就是只能用來製作圖表,更加炫酷的可視化效果實現起來比較困難幾年前開始流行的信息圖製作軟體,界面簡潔、操作簡便、圖片精美,而且用戶只需要登錄官方網站即可開始進行信息圖製作,在網站上你可以盡情分享和查找素材,當然有些是不免費的強大的配色工具,你在這裡面幾乎可以找到任何你想要的顏色,它本身也是一個繪圖系統
  • 國外常用的十個數據可視化工具
    有時,數據集如此之大,以至於無法從中辨別出任何有用的東西。這就是數據可視化的用武之地。創建數據可視化很少會很簡單。設計人員似乎並不能簡單地獲取具有數千個條目的數據集並從頭開始創建可視化效果。當然可以,但是誰願意花費數十或數百小時在散點圖上繪製點?這就是數據可視化工具的用武之地。
  • 快到年底了,聊聊數據可視化
    有人把可視化簡單理解,不就是Excel上畫畫圖表嗎?可以說這屬於可視化,但僅僅是可視化在Office軟體裡的一種表現形式,可視化的歷史及發展遠不止於此,比如這個1812-1813年拿破崙進軍莫斯科的歷史事件的流圖可視化(作於1869年)被譽為史上最好的統計可視化。
  • ​數據可視化 | 6個基本可視化Python庫
    數據可視化是使用可視元素(例如圖表,圖形等)表示數據的過程,有助於從數據中獲取有意義的見解。它旨在揭示數據背後的信息,並進一步幫助查看者查看數據中的結構。數據可視化將使任何人只要對數據科學的了解最少,即可獲得科學發現,並幫助人們輕鬆地交流信息。畢竟,一張圖片勝過千言萬語。在本文中我們將介紹一些Python支持的最出色的可視化庫。
  • 必備數據可視化神器,這功能太強大了!
    未來十年,數據細分崗位將擴張5倍,各行業數據人才缺口明顯。很多人想抓住機遇進入數據分析行業,卻經常遇到以下問題:  在這裡,不得不為大家推薦這個開課吧的《大數據分析實戰課》,4大實戰項目,帶你操作真實業務場景下的數據分析,以案例為導向
  • Python數據可視化—Seaborn
    好啦,話不多說,一起來看看這個強大的數據可視化庫有哪些常用且美觀的可視化操作吧(可視化操作和圖表較多喲,慢慢吸收)~01載入數據我們選擇了一個「預測投票數」的數據集命名為train.csv(小俠客們也可以根據自己的數據集來進行可視化),首先通過pandas讀取csv格式文件,然後查看數據的大致情況。
  • 教育科研中的數據可視化分析
    在科研實踐中,數據分析可幫助人們做出現狀、趨勢或相互關係的判斷,以便採取適當決策、制訂相關政策和開始行動。因此,它也是從事此類研究的科研人員的基本功。宏觀的數據分析可以是一個國家一個地區的,微觀的數據分析可以是一個班級甚至一個學生的學習成績;大到所有的數據,小到只是小樣本的抽樣。社會的發展,人口的增加、技術的進步,人們積累的數據越來越多,而且隨著網際網路的出現和發展,展現在人們面前的是浩瀚無垠的信息海洋。海量的數據只是單純地記載了枯燥的數字,出現了「數據爆炸但認識貧乏」的現象。
  • 6個技巧輕鬆玩轉數據可視化,讓你的數據「會說話」
    除了選擇將要引入儀錶板的數據之外,我們還必須牢記受眾是誰以及如何快速有效地獲取數據以實現可視化。」 儀錶板設計是最基礎的,它應為用戶提供簡單而有用的分析。如果設計出色,那麼這將會帶來強大的分析。報告的生成會變得更加容易,並且可針對不同的用戶提供鳥瞰圖或其需要的某些細節。
  • 2014年20大數據可視化工具及資料
    巴西的新聞網站Visualoop,這是一家匯集來自網際網路的信息圖表和數據為中心的可視化網站,今年,他們繼續評選出這一年最優秀的大數據可視化相關工具。「我們很艱難的選出這20個新的平臺或工具—如果你是我們每周數據新聞報導的忠實讀者,你可能記得我們列表中的幾個。」在這個榜單中他們忽略了新的版本和現有工具的更新,例如:CartoDB, Mapbox, Tableau, D3.js, RAW, Infogr.am 等等。下面,就是2014年Visualoop從他們的報導中提取的20大可視化工具和資料。