前言python
這是按照我爲本身定的學習計劃與職業發展方向進行的總結學習,以期理清思路,最大效率地把所學知識用起來,同時隨着我經驗與技能的增長,這將是一份不斷更新的概念,這一課是《數據科學》,sql
什麼是數據科學家?數據庫
數據科學家:瞭解數學與統計學知識,具有編程技能,能夠經過代碼創建統計模型,收集數據,並將數據轉化爲全面的分析,編制信息圖,造成報告,並傳遞給其餘人。簡單說,數據科學家的價值流程是:收集——》存儲——》分析——》展現——》預測、改進。編程
數據科學家須要瞭解要提出的問題,可以解釋數據和了解數據結構。如今都是團隊工做,一我的不必定面面俱到,若是具備很強的黑客技能(擅長收集數據),或者精通統計學(擅長分析數據),也能夠成爲數據科學家團隊的一份子,固然,全棧最好。數組
現實應用:網絡
--推薦電影,根據用戶之前觀看的內容推薦影片數據結構
--社交網絡推薦,推薦相關聯的人,如,推薦有共同好友的人認識機器學習
--分析解決交通擁堵函數
--生物科學領域,標註基因組與序列工具
--天文領域,儲存、分析數據,預測行星運動
--醫療,分析電子病歷,調動醫療設備,早作準備
--運動,收集球員動做和打球風格數據,分析比賽動態,改善教練決策
數據科學家最經常使用的工具:
--Numpy:支持多維數組與矩陣
--Pandas:存儲數據,利於分析
Numpy:
--均值(Mean) numpy.mean()
--中位數(Median) numpy.median()
--標準差(Stardard deviation) numpy.std()
--矩陣乘法(Matrix Mutiplication) numpy.dot()
Pandas:
--DataFrame函數 二維的表格型數據結構
--Series 一維數組(處理相同數據結構)
--Index
--pandas.describe() 計算數值數據均值、中位數、標準差、最大、小值
矩陣乘法:當矩陣A列數等於矩陣B行數時,AB能夠相乘 C = AB,C = numpy.dot(A,B)
1.C的行數等於A的列數, C列=B列
2.C的第m行第n列元素=A第m行與B第n列元素乘積之和,不知足交換律
2、數據來源與處理
數據來源
--文件
--數據庫
--互聯網
通用的數據格式:
CSV
XML
JSON
XML與JSON均可以嵌套數據
讀取CSV數據,返回dataframe 數據
import Pandas
data = pandas.read_csv(path)
寫CSV數據
dataW = data.to_csv(path)
關係型數據庫
sql語句:
查詢:SELECT *FROM _table_;
查20條:SELECT district, subdistrict FROM_table_ [LMT] 20;
SELECT *FROM _table_ WHERE district = __;
聚焦函數:AVG,COUNT,MAX,MIN,SUM
SELECT district,SUM(__) FROM _table_ GROUP BY district;
SELECT district,subdistrict, SUM(__) FROM _table_ GROUP BY district,subdistrict;
數據丟失緣由:
1.偶然的系統錯誤
2.人爲示提供數據
怎麼處理?
1,部分刪除
1.1 成列刪除?
1.2 成隊刪除?
樣本量較小時,用刪除法,會危害數據的表明性
2. 插補
2.1 在缺失值插補其餘數據的均值
2.2 畫線性迴歸圖
數據分析
正態分佈
T檢驗
--單樣本T檢驗
--雙樣本T檢驗
--P值
統計學側重收集數據做出結論
機器學習側重於作出預測
機器學習類型:
--監督式學習
--非監督式學習
數據————》》模型————》》預測
數據可視化:
有效的可視化組成元素
--視覺線索
位置、長度、角度、方向、形狀、面積、體積、飽和度、顏色(精確度從大—》小排列)
--座標系
--數據類型
--上下文內容
用python 繪圖
*許多包
--Matplotlib 很是流行
--ggplot
*爲何選擇ggplot?
--好識別
--圖形化的語法
--ggplot(data, aes(xvar, yvar)) + geom_point(color = 'red') + geom_line(color = 'red') + ggtitle('title') + xlab('x-label') +ylab('y-label') data = pandas.dataFrame
--ggplot(hr_by_team_year,aes(x = 'yearID', y = 'HR',color = 'teamID')) + geom_point() + geom_line() + ggtitle('Title') + xlab('yearID') + ylab('HR')
數據類型:
--數值數據
--離散數據
--連續數據
--分類數據
--表明特性
--能夠用數值表示,但不具有數學意義
--有序數據,數值數據與分類數據的混合,通常都是從低到高排序
--時間序列數據
--經過長時間重複測量而得到的觀察數據的集合,
--與數值數據同樣,但多了連續的時間
圖形化時間序列數據
--散點繪製
--位置
--上下文
--線圖
--減少散點圖的缺陷
--強調趨勢
--聚焦時間變化,不會覆蓋所有趨勢
--黃土曲線
--強調長期趨勢
--黃土(Loess):是加權迴歸
--多變量圖形
--怎麼組合多變量?
--大小
--顏色/飽和度
Mapreduce
--適用於大數據,數據量要大於1T以上
--把總體數據,分爲不一樣的小部分進行操做