數據分析學習筆記(1):工做環境以及建模理論基礎

零、Python語言基礎複習

 

1、環境部署

  1.python包管理:

    (1)安裝:pip install xxx,conda install xxxpython

    (2)卸載:pip uninstall xxx,  conda uninstall xxxweb

    (3)升級:pip install -upgrade xxx, conda update xxx算法

  2.IDE

    1)Jupyter notebook:編程

     (1)Anaconda自帶,無需單獨安裝數組

        (2)記錄思考過程,實時查看運行進程數據結構

     (3)基於web的在線編輯器(本地)編輯器

     (4).ipynb文件分享ide

     (5)可交互式函數式編程

     (6)記錄歷史運行結果函數

     (7)支持Markdown,Latex

    2)IPython

     (1)Anaconda自帶,無需單獨安裝

     (2)Python的交互式命令行Shell

2、NumPy數據結構以及向量化

  1.Numpy :Numerical Python

    (1)高性能科學計算和數據分析(pandas)的基礎包,提供多維數組對象

    (2)ndarray,多維數組(矩陣),具備矢量運算能力,快速、節省空間

    (3)矩陣運算,無需循環,可完成相似Matlab中的矢量運算

    (4)線性代數、隨機數生成

    (5)import numpy as np

  2.Scipy  

    (1)在NumPy庫的基礎上增長了衆多數學、科學以及工程經常使用的庫函數

    (2)現行代數、微分方程求解、信號處理、圖像處理、係數矩陣等

    (3)import scipy as sp

  3.NumPy數據結構

    (1)ndarray,N維數組對象(矩陣)

      全部元素類型必須相同

      ndim屬性  維度的個數

      shape屬性,各維度的大小

      dtype屬性,數據類型

    (2)建立ndarray

      np.array(collection),collection爲序列性對象(list),嵌套序列(list of list)

      np.zeros,np.ones,no.empty指定大小全爲0或者全爲1的數組

      注意:第一個參數是元組,用來指定大小,如(3,4)

         empty不是老是返回全0,有時候返回的是未初始的隨機值

  4.代碼學習

    (1)生成兩行三列的隨機數,並打印出數據的類型

    (2)分別打印出剛纔建立的維度的個數,維度大小以及數據類型

    (3)全0,全1以及全空

  5.索引與切片

    (1)一維數組的索引與Python的列表索引功能類似

    (2)多維數組的索引

      arr[r1:r2,c1:c2]

      arr[1,1]等價於arr[1][1]

      [:]表明某個維度的數據

      arr[1:,1:]表明訪問數組中第1行到第2行以及第1列到第2列的數據

    (3)條件索引

      布爾值多維數組arr[condition]condition能夠是多個條件的組合。

      注意,多個條件組合要使用&  |  而不是and or 

    (4)維數轉換transpose

      轉換數組轉置要指定維度編號(0,1,2,3.....)

    (5)np.where

      矢量版本的三元表達式  x if condition else y   若是條件知足就是x不然就是y

      np.where(conditoin,x,y)    知足條件就是x,不知足條件就是y

    (6)經常使用的統計方法

      np.mean,np,sum

      np.max,np.min

      np.std(標準差),np.argmin(方差)

      np.cumsum(),np.cumprod()

      注意要是多維的話,要指定統計的維度 

      np.all和np.any:all是知足所有條件;any至少有一個元素知足

      np.unique:找到惟一元素並返回排序結果

3、向量化

  1.向量化

    (1)得到執行速度更快、更加緊湊的代碼策略

    (2)基本思路:"一次"在一個複雜的對象上進行操做,或者向其應用某個函數,而不是經過在對象的單個元素上循環來進行

    (3)在python級別上,函數式編程工具map,filter和reduce提供了向量化的手段

    (4)在numpy級別上,在ndarray對象的循環由通過高度優化的代碼複雜,大部分代碼用C編寫,遠快於python

    (5)矢量間的運算,相同大小的數組間運算應用在元素上

    (6)矢量和標量運算,"廣播"-廣播到各個元素

  2.一般函數(ufunc)

    (1)元素級運算

    (2)經常使用的通用函數

      ceil,向上最接近的整數

      floor,向下最接近的整數

      rint,四捨五入

      isnan,判斷元素是否爲NaN(Not a Number)

      multiply,元素相乘

      divide,元素相除

3、數據分析建模理論基礎

  1.任務分類:(1)分類;(2)迴歸;(3)聚類;(4)時序分析

  2.分類與迴歸:

    (1)應用:信用卡申請人風險評估、預測公司業務增加量、預測房價等

    (2)原理:將數據映射到預先定義的羣組或者類。算法要求基於數據屬性值來定義類別,把具備某些特徵的數據項映射到給定的某個類別上。

    (3)迴歸:用屬性的歷史數據來預測將來的趨勢。算法首先假設一些已知類型的函數能夠擬合目標函數、而後利用某種偏差分析來肯定一個與目標函數擬合程度最好的函數

    (4)區別:分類模型採用離散預測值,迴歸模型採用連續的預測值

  3.聚類:(1)應用:

相關文章
相關標籤/搜索