1. 程式人生 > >Python機器學習(一)

Python機器學習(一)

這是對《Python機器學習(Sebastian Raschka)》的學習知識點的總結。

本人學習沒啥好辦法,就是喜歡做筆記,做了好多筆記,後續有時間分欄分享一下。

# -*- coding: utf-8 -*-
"""
Created on Wed Sep 19 23:04:53 2018

@author: Lxiao217
"""
'''Python機器學習'''
'''
第一章和第二章 機器學習分類演算法

Numpy:多維陣列的儲存和資料處理
pandas:方便處理表格類的資料的附加資料包
matplotlib:畫圖

感知器演算法實現:
1、將權重初始化為0或者一個極小的隨機數
2、迭代所有的樣本:(1)計算輸出值y(i);(2)更新權重
感知器收斂的前提是兩個類別必須是線性可分的,且學習速率足夠小。
感知器面臨的最大問題是演算法的收斂。如果兩個類別可以通過線性超平面進行劃分,則感知器演算法一定會收斂。
如果無法線性可分,則權重會不斷的更新,所以需要設定最大的迭代次數。

批梯度下降演算法:權重的更新是基於訓練集中的所有的樣本完成的。
缺點:資料集巨大的時候演算法的計算量巨大。
隨機梯度下降演算法:每次使用一個樣本漸進的更新權重
優點:(1)權重更新頻繁,能更快的收斂,但是誤差曲面不及梯度下降平滑,但是也就是這樣使得
隨機梯度下降能夠更快的跳出小範圍的區域性最優解,需要選擇隨機樣本;
(2)可以用於線上學習,有新的資料輸入模型的時候可以被用於實時的訓練
小批次學習:介於梯度下降和隨機梯度下降之間的一種技術,可以選擇小批次的樣本更新權重。
小批次學習可以使用向量化操作替代for迴圈,進一步提高學習演算法的計算效率。

資料降維是無監督學習的一個子領域。無監督降維是資料特徵預處理時常用的技術,用於清除資料中的噪聲,
它能夠在最大程度上保留相關資訊的情況下將資料壓縮到一個維度較小的子空間,但是可能會降低某些演算法
在準確性方面的效能。

強化學習的目標是構建一個系統Agent,在與環境的互動的過程中提高系統的效能。

聚類是一種探索性資料分析技術。在沒有任何相關先驗資訊的情況下,他可以幫助我們將資料劃分為有意義的小的組別
(即簇cluster)。聚類是獲取資料的結構資訊,以及匯出資料間有價值的關係的一種有很好的技術。
'''

'''第三章 使用scikit-learn(sklearn)實現機器學習分類演算法'''
'''
訓練機器學習的主要步驟:
1、特徵的選擇;
2、確定性能評價標準;
3、選擇分類器機器優化演算法;
4、對模型效能的評估;
5、演算法的調優

使用scikit-learn訓練感知器的思路:
1、匯入樣本集X和結果y
2、將資料劃分為訓練資料集和測試資料集:
from sklearn.cross_validation import train_test_split
這個函式在0.20版本會移走
3、對特徵進行標準化處理:
from sklearn.preprocessing import StandardScaler
需要使用相同的縮放參數分別處理訓練集和測試集以保證他們的值是彼此相當的。
4、訓練感知器模型:
from sklearn.linear_model import Perceptron
呼叫fit方法進行訓練
5、訓練完成後,在測試資料集上對結果進行預測


'''