一、機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。
簡而言之,機器學習就是通過一系列變種的數據公式,通過大量的數據推導,得出的接近於滿足數據點的一個公式(f(x) = w1x1 + w2x2^2 + w3x3^3 + ...),然後需要推測的新數據,通過該公式來得出預測的結果。
記住上面這個圖,他是後續選擇算法的規則,也是核心。
二、scikit-learn(簡記sklearn
),是用python
實現的機器學習算法庫。sklearn
可以實現數據預處理、分類、迴歸、降維、模型選擇等常用的機器學習算法。sklearn
是基於NumPy
, matplotlib,
而形成的。SciPy
scikit-learn的強大主要是它提供了很多算法庫,以及數據處理的方式,學習scikit-learn很大程度上可以瞭解機器學習的實現、訓練、預測過程。
三、在開始scikit-learn之前,我們先了解機器學習的流程:
1、原始數據:原始數據可以是很多種形式(比如:圖片,json,文本,table等),這些數據可以通過pandas來加載成一個二維數組的數據。也可以通過numpy的方式生成數據。
數據來源一般通過kaggle官方獲取,地址:https://www.kaggle.com/
2、數據處理:得到原始數據過後,我們需要對數據進行處理(比如:數據分割(訓練集、測試集),構造特徵(比如:時間(年份一樣,月份、天構造新的特徵)),刪除特徵(沒有用的,但是存在影響的特徵)等)
3、特徵工程:在數據進行處理過後,我們不能盲目的使用該數據(比如:文本數據,數值差異過大的數據),這個時候就要轉換數據(轉換器)。轉換器:字典特徵、文本特徵、tf_idf(數據出現頻次)、歸一化、標準化、降維等,然後得出提取特徵後的矩陣數據。
4、算法模型:(核心)主要分爲監督學習和無監督學習。機器學習的核心就是算法模型。
監督學習:有特徵值,目標值(有標準答案)。常有算法爲分類算法(離散型(具體的分類標準))、迴歸算法(連續型(預測值))
無監督學習:只有特徵值。常有算法爲聚類。
模型:數據在訓練集和測試集上面,反覆的訓練過後,會得出最接近滿足所有數據點的公式也稱爲模型,這個也是後續用於其他業務數據用於分類或者預測的基礎。
5、算法評估:分類模型:一般是通過準確率、精準率、召回率、混淆矩陣、AUC來確認模型的準確度,迴歸模型:一般是通過均方誤差的方式來確認準確度。
四、通過第三點的大致介紹,基本可以瞭解機器學習需要掌握的知識量還是不小的。特別是很多概念,需要自己去理解。下面主要是講具體的過程和部分原理。(注意:算法是核心會放到最後講)
(3)Python之特徵工程-3