1. 程式人生 > >什麼是資料科學?資料科學的基本內容

什麼是資料科學?資料科學的基本內容

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

來源:36大資料

概要:現代社會的各行各業都充滿了資料,這些資料的型別多種多樣,不僅包括傳統的結構化資料,也包括網頁、文字、影象、視訊、語音等非結構化資料。

什麼是資料科學?它和已有的資訊科學、統計學、機器學習等學科有什麼不同?作為一門新興的學科,資料科學依賴兩個因素:一是資料的廣泛性和多樣性;二是資料研究的共性。現代社會的各行各業都充滿了資料,這些資料的型別多種多樣,不僅包括傳統的結構化資料,也包括網頁、文字、影象、視訊、語音等非結構化資料。資料分析本質上都是在解反問題,而且通常是隨機模型的反問題,因此對它們的研究有很多共性。例如,自然語言處理和生物大分子模型都用到隱馬爾科夫過程和動態規劃方法,其最根本的原因是它們處理的都是一維隨機訊號;再如,影象處理和統計學習中都用到的正則化方法,也是處理反問題的數學模型中最常用的一種。

資料科學主要包括兩個方面:用資料的方法研究科學和用科學的方法研究資料。前者包括生物資訊學、天體資訊學、數字地球等領域;後者包括統計學、機器學習、資料探勘、資料庫等領域。這些學科都是資料科學的重要組成部分,只有把它們有機地整合在一起,才能形成整個資料科學的全貌。

如何用資料的方法研究科學

用資料的方法研究科學,最典型的例子是開普勒關於行星運動的三大定律。開普勒的三大定律是根據他的前任,一位叫第谷的天文學家留給他的觀察資料總結出來的。表1列出的觀測資料是行星繞太陽一週所需要的時間(以年為單位)和行星離太陽的平均距離(以地球與太陽的平均距離為單位)。從這組資料可以看出,行星繞太陽執行的週期的平方和行星離太陽的平均距離的立方成正比,這就是開普勒第三定律。

640?wx_fmt=png

開普勒雖然總結出他的三大定律,但他並不理解其內涵。牛頓則不然,他用牛頓第二定律和萬有引力定律把行星運動歸結成一個純粹的數學問題,即一個常微分方程組。如果忽略行星之間的相互作用,那麼各行星和太陽之間就構成了一個兩體問題,我們很容易求出相應的解,並由此推匯出開普勒的三大定律。

牛頓運用的是尋求基本原理的方法,它遠比開普勒的方法深刻。牛頓不僅知其然,而且知其所以然。所以牛頓開創的尋求基本原理的方法成為科學研究的首選模式,這種方法的發展在20世紀初期達到了頂峰,在它的指導下,物理學家們提出了量子力學。原則上講,我們在日常生活中看到的自然現象都可以從量子力學出發得到解釋。量子力學提供了研究化學、材料科學、工程科學、生命科學等幾乎所有自然和工程學科的基本原理,這應該說是很成功的,但事情遠非這麼簡單。狄拉克指出,如果以量子力學的基本原理為出發點去解決這些問題,那麼其中的數學問題就太困難了。因此必須妥協,對基本原理作近似。

儘管牛頓模式很深刻,但對複雜的問題,開普勒模式往往更有效。例如,表2中形象地描述了一組人類基因組的單核苷酸多型性(Single Nucleotide Polymorphism, SNP)資料。研究人員在全世界挑選出1064個志願者,並把他們的SNP資料數字化,即把每個位置上可能出現的10種鹼基對用數字表示,對這組資料做主成分分析(PCA)——一種簡單的資料分析方法,其原理是對資料的協方差矩陣做特徵值分解,可以得到圖1所示的結果。其中橫軸和縱軸分別代表第一和第二奇異值所對應的特徵向量,這些向量一共有1064個分量,對應1064個志願者。值得注意的是,這組點的顏色所代表的意義。由此可見,通過最常見的統計分析方法——主成分分析,可以從這組資料中展示出人類進化的過程。

640?wx_fmt=png

640?wx_fmt=png

圖1 對SNP資料做主成分分析的結果[1]

如果採用從基本原理出發的牛頓模式,上述問題基本是無法解決的,而基於資料的開普勒模式則行之有效。開普勒模式最成功的例子是生物資訊學和人類基因組工程,正因為它們的成功,材料基因組工程等類似的專案也被提上了議程。同樣,天體資訊學、計算社會學等也成為熱門學科,這些都是用資料的方法研究科學問題的例子。而影象處理是另一個典型的例子。影象處理是否成功是由人的視覺系統決定的,要從根本上解決影象處理的問題,就需要從理解人的視覺系統著手,理解不同質量的影象對人的視覺系統會產生什麼樣的影響。當然,這樣的理解很深刻,而且也許是我們最終需要的,但目前看來,它過於困難也過於複雜,解決很多實際問題時並不會真正使用它,而是使用一些更為簡單的數學模型。

用資料的方法研究科學問題,並不意味著就不需要模型,只是模型的出發點不一樣,不是從基本原理的角度去尋找模型。以影象處理為例,基於基本原理的模型需要描述人的視覺系統以及它與影象之間的關係,而通常的方法可以是基於更為簡單的數學模型,如函式逼近的模型。

如何用科學的方法研究資料

用科學的方法研究資料主要包括資料採集、資料儲存和資料分析。本文將主要討論資料分析。

資料分析的中心問題

比較常見的資料有以下幾種型別。

  1. 表格:最為經典的資料型別。在表格資料中,通常行代表樣本,列代表特徵;

  2. 點集(point cloud)很多資料都可以看成是某空間中的點的集合;

  3. 時間序列:文字、通話和DNA序列等都可以看成是時間序列。它們也是一個變數(通常是時間)的函式;

  4. 影象:可以看成是兩個變數的函式;

  5. 視訊:時間和空間座標的函式;

  6. 網頁和報紙:雖然網頁或報紙上的每篇文章都可以看成是時間序列,但整個網頁或報紙又具有空間結構;

  7. 網路資料:網路本質上是圖,由節點和聯絡節點的邊構成。

除了上述基本資料型別外,還可以考慮更高層次的資料,如影象集、時間序列集、表格序列等。

資料分析的基本假設是觀察到的資料都是由某個模型產生的,而資料分析的基本問題就是找出這個模型。由於資料採集過程中不可避免會引入噪聲,因此這些模型都是隨機模型。例如,點集對應的資料模型是概率分佈,時間序列對應的資料模型是隨機過程,影象對應的資料模型是隨機場,網路對應的資料模型是圖模型和貝葉斯模型。

通常我們對整個模型並不感興趣,而只是希望找到模型的一部分內容。例如我們利用相關性來判斷兩組資料是否相關,利用排序來對資料的重要性進行排名,利用分類和聚類將資料進行分組等。

很多情況下,我們還需要對隨機模型作近似。最常見的方法是將隨機模型近似為確定型模型,所有的迴歸模型和基於變分原理的影象處理模型都採用了這種近似;另一類方法是對其分佈作近似,例如假設概率分佈是正態分佈或假設時間序列是馬爾科夫鏈等。

資料的數學結構

要對資料作分析,就必須先在資料集上引入數學結構。基本的數學結構包括度量結構、網路結構和代數結構。

  1. 度量結構。在資料集上引進度量(距離),使之成為一個度量空間。文字處理中的餘弦距離函式就是一個典型的例子。

  2. 網路結構。有些資料本身就具有網路結構,如社交網路;有些資料本身沒有網路結構,但可以附加上一個網路結構,例如度量空間的點集,我們可以根據點與點之間的距離來決定是否把兩個點連線起來,這樣就得到一個網路結構。網頁排名(PageRank)演算法是利用網路結構的一個典型例子。

  3. 代數結構。把資料看成向量、矩陣或更高階的張量。有些資料集具有隱含的對稱性,也可以用代數的方法表達出來。

在上述數學結構的基礎上,可以討論更進一步的問題,例如拓撲結構和函式結構。

  1. 拓撲結構。從不同的尺度看資料集,得到的拓撲結構可能是不一樣的。最著名的例子是3×3的自然影象資料集裡面隱含著一個二維的克萊因瓶(Klein bottle)。

  2. 函式結構。對點集而言,尋找其中的函式結構是統計學的基本問題。這裡的函式結構包括線性函式(用於線性迴歸)、分片常數(用於聚類或分類)、分片多項式(如樣條函式)、其他函式(如小波展開)等。

資料分析的主要困難

我們研究的資料通常有幾個特點:(1)資料量大。資料量大給計算帶來挑戰,需要一些隨機方法或分散式計算來解決問題;(2)資料維數高。例如,前面提到的SNP資料是64萬維的;(3)資料型別複雜。網頁、報紙、影象、視訊等多種型別的資料給資料融合帶來困難;(4)噪音大。資料在生成、採集、傳輸和處理等流程中,均可能引入噪音,這些噪音的存在給資料清洗和分析帶來挑戰,需要有一定修正功能的模型(如影象中的正則化和機器學習中的去噪自編碼器)來進行降噪處理。

其中,最核心的困難是資料維數高。它會導致維數災難(curse of dimensionality),即模型的複雜度和計算量隨著維數的增加而指數增長。那麼,如何克服資料維數高帶來的困難?通常有兩類方法。一類是將數學模型限制在一個極小的特殊類裡,如線性模型;另一類是利用資料可能有的特殊結構,如稀疏性、低維、低秩和光滑性等。這些特性可以通過對模型作適當的正則化實現,也可以通過降維方法實現。

總之,資料分析本質上是一個反問題。處理反問題的許多方法(如正則化)在資料分析中扮演了重要角色,這正是統計學與統計力學的不同之處。統計力學處理的是正問題,統計學處理的是反問題。

演算法的重要性

與模型相輔相成的是演算法以及這些演算法在計算機上的實現。在資料量很大的情況下,演算法的重要性尤為突出。從演算法的角度來看,處理大資料主要有兩條思路:

  1. 降低演算法的複雜度,即計算量。通常要求演算法的計算量是線性標度的,即計算量與資料量成線性關係。但很多關鍵的演算法,尤其是優化方法,還達不到這個要求。對於特別大的資料集,如全球資訊網上的資料或社交網路資料,我們希望能有次線性標度的演算法,也就是說計算量遠小於資料量。這就要求我們採用抽樣的方法。其中最典型的例子是隨機梯度下降法(Stochastic Gradient Descent, SGD)。

  2. 分散式計算。其基本思想是把一個大問題分解成很多小問題,然後分而治之。著名的MapReduce框架就是一個典型的例子。

現階段,演算法的研究分散在兩個基本不相往來的領域——計算數學和電腦科學。計算數學研究的演算法主要針對像函式這樣的連續結構,其主要應用物件是微分方程等;電腦科學主要處理離散結構,如網路。而現實資料的特點介於兩者之間,即資料本身是離散的,而資料背後有一個連續的模型。因此,要發展針對資料的演算法,就必須把計算數學和電腦科學研究的演算法有效地結合起來。

相關推薦

什麼是資料科學資料科學基本內容

來源:36大資料 概要:現代社會的各行各業都充滿了資料,這些資料的型別多種多樣,不僅包括傳統的結構化資料,也包括網頁、文字、影象、視訊、語音等非結構化資料。 什麼是資料科學?它和已有的資訊科學、統計學、機器學習等學科有什麼不同?作為一門新興的學科,資料科學依賴兩個因素:一是資料的廣泛性和多樣性;二是資料

SQL server匯入資料格式為科學

問題描述:Excel匯入資料庫的時候,有一列資料是九位數字 如72020693 匯入以後預設為float型別 我要把它改成nvarchar型別,直接修改了以後,他就會變成7202+e07的形式 (因為已經改好了沒有具體的例子) 後來我就把這列(欄位名為CostC

[譯]針對科學資料處理的統計學習教程(scikit-learn教程2)

翻譯:Tacey Wong 統計學習: 隨著科學實驗資料的迅速增長,機器學習成了一種越來越重要的技術。問題從構建一個預測函式將不同的觀察資料聯絡起來,到將觀測資料分類,或者從未標記資料中學習到一些結構。 本教程將探索機器學習中統計推理的統計學習的使用:將手中的資料做出結論 Scikit-learn 是一

javaweb之Session簡單例子(兩個頁面一個存資料,一個取資料)和session的一些基本內容

package test.session; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax

圖靈程式叢書 —《資料科學入門》— Ch9-Ch10 獲取資料資料工作

Ch9-Ch10  獲取資料、資料工作此係列記錄《資料科學入門》學習筆記(停止)Chap 9 獲取資料(只有9.2)9.2 讀取檔案9.2.1 文字檔案基礎# 'r'意味只讀 file_for_reading = open('reading_file.txt', 'r')

什麼是資料分析/資料科學

因果關係一定比相關關係好嗎?不一定,要看問題的關注點。當我們關注“可能是什麼”,我們需要做更多預測,這個時候我們應該關注相關關係;當我們關注“為什麼是這樣”,我們需要做更多解釋,這個時候我們應該關注因果關係。比如說我的畢業論文研究電商平臺的搜尋演算法如何影響消費者和生產者決策,我建立了基於considerat

資料科學學習手札74)基於geopandas的空間資料分析——資料結構篇

本文對應程式碼已上傳至我的Github倉庫https://github.com/CNFeffery/DataScienceStudyNotes 1 簡介   geopandas是建立在GEOS、GDAL、PROJ等開源地理空間計算相關框架之上的,類似pandas語法風格的空間資料分析Python庫,其目標

03 React快速入門(三)——實現從一個輸入框中新增完資料後此輸入框內容清除的功能

功能描述:       我們在一個輸入框輸入內容,然後點選新增按鈕,此輸入框的內容就會新增到頁面上,但是此輸入框中還存在上次輸入的內容,我們想在每次輸入新增完成之後,此輸入框中的內容就會清除,如圖:      

hive的資料組織格式和基本操作

hive的資料組織格式:     庫:         管理資料         不同模組的資料最好放在不同的資料庫中    &n

基本資料結構――堆的基本概念及其操作

     轉載自:https://www.cnblogs.com/JVxie/p/4859889.html,同時感謝大佬的分析       在我剛聽到堆這個名詞的時候,我認為它是一堆東西的集合       但其實吧它是利用

2.5星|《極簡企業史》:資料彙編,一大半內容是相關圖書簡介

確實是非常簡單的改革開放40年以來的企業史,大部分知名企業只是提個名字,極少數做了簡單的介紹。然後就是相關企業的書的簡單介紹。目測介紹書的篇幅超過了一半。 資訊來源像是以吳曉波的幾本商業史為主,書中內容看著都眼熟。跟吳曉波的商業史的缺陷也一樣:內容都是公開資料報道過的,沒有自己主動採訪研究的內容。 書

杜躍進:資料安全治理的基本思路

▲作者:杜躍進  中國網路空間安全協會副理事長,阿里巴巴集團技術副總裁 我們的世界正在進入一個奇怪的分裂狀態:一方面人們為大資料時代即將在各個領域發生的革命性進步而激動難眠,一方面人們也在為資料安全和隱私保護問題擔心得睡不著覺。圍繞大資料的創新和安全,各種政策、法律、標準、產品和學術研究

Java基礎學習 一 (字符集、識別符號、關鍵字、註釋、變數、基本資料型別、非基本資料型別、高精度數字)

一 字符集:        java採用Unicode字符集 包含65535個字元 二 識別符號:         由字母、數字、下劃線及美元符號等組成的一個字元序列,用來標識變數、方法名、類名、介面名等

易學筆記-Go語言-第4章:基本結構和基本資料型別/4.5 基本型別/4.5.2 整形

 整形 固定位元組數整形:與作業系統無關 int 和 uint 在 32 位作業系統上,它們均使用 32 位(4 個位元組),在 64 位作業系統上,它們均使用 64 位(8 個位元組)。 uintptr 存放指標 指定位元組

易學筆記-Go語言-第4章:基本結構和基本資料型別/4.5 基本型別/4.5.1 bool型別

 bool型別 關鍵字:bool,兩個結果:true 或者 false 何時回產生bool型別 ==:相等性筆記 !=:不相等性筆記 >、>=、<、<=:比較 可以進行的邏輯運算

資料結構一(資料結構與演算法基本含義)

1.1 基礎概念 ● 資料元素       ● 是組成資料的,有一定意義的單位       ● 在計算機中通常作為整體處理       ● 也叫做結點或記

資料結構與演算法——基本概念與術語

概述  資料、資料元素、資料物件 資料(data)是對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並被計算機程式處理的程式的總稱。 資料元素(data element)是資料的基本單位,在計算機程式中通常作為一個整體進行考慮和處理。一個數據元素可由若干個資料項(data ite

Python資料處理庫pandas基本使用

---恢復內容開始---   pandas提供過便於操作資料的資料型別,也提供了許多分析函式和分析工具,使得資料分析易於操作。   一、pandas庫中Series型別   Series可以生成資料的索引(自動索引和自定義索引),見下例:      Se

資料結構——樹的基本運算

1.二叉樹的建立和基本操作 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef char ElementType; //二叉樹的鏈式儲存結

【大資料技術】HBase基本知識介紹及典型案例分析

  (1)分散式、多版本、面向列的開源資料庫      (2)支援上億行、百萬列;   (3)強一致性、高擴充套件、高可用 Hbase是一個強一致性資料庫,不是“最終一致性”資料庫。 HBase資料讀寫,更新的資料是放在Mems