原创 機器學習“傻瓜式”理解(6)梯度下降法(第一部分)

基礎理解 看到梯度下降算法,首先我們應該去了解幾個問題,這是什麼?幹什麼用的?爲什麼會產生這個概念或者事物?實現的具體思路是什麼?爲什麼這麼實現,其背後的原理是什麼? 首先我們應該明確的一點是,所謂的梯度下降算法並不是一個機器學習

原创 機器學習“傻瓜式”理解(8)PCA(基礎理解+梯度上升)

PCA(Principal Components Analysis) 基礎理解以及公式推導 我們在機器學習的過程中需要實現數據的優化處理,降維處理是實現數據優化的手段,主成分分析則是實現數據降維的主要手段。主成分分析便是在我們所有

原创 機器學習“傻瓜式”理解(7)梯度下降法(第二部分)

小批量梯度下降算法 事實上,我們在實際的生產活動中,最經常使用的便是小批量梯度下降法,這種方法綜合了隨機梯度下降法和批量梯度下降法兩種算法,一定程度上避免了他們的缺點,這種算法實現的思路便是每次計算優化的方向既不是查看所有的樣本也

原创 機器學習“傻瓜式”理解(2)基礎概念理解

0.何爲機器學習? 舉一個生活中的栗子,在郵箱系統中一定存在着這樣一個功能:垃圾郵件過濾功能。問題便出現了:何爲垃圾郵件?我們需要去編寫一定的規則去幫助計算機去識別出垃圾郵件將其過濾掉。“去編寫規則幫助計算機識別”這一動作我們便可

原创 機器學習“傻瓜式”理解(3)KNN算法(初步理解)

KNN(K近鄰算法) 基礎理解 面對這個算法需要蹦出來幾個問題:KNN是什麼?可以解決什麼問題?怎麼實現?有什麼優缺點? 首先,KNN我們通常稱之爲K近鄰算法,通俗的理解便是如果我們認爲兩個特徵之間他們足夠相似,我們就有理由認爲他

原创 機器學習“傻瓜式”理解(15)SVM(2)

SVM中的非線性數據進行分類 實際的生產活動中我們遇到的數據大多數不能進行嚴格的區分的,爲了解決這種問題,目前爲止我們可以通過兩種方式來解決: ①直接利用多項式項進行解決。 ②利用內核函數(scikit已經封裝好的) 下面我們將通

原创 機器學習“傻瓜式”理解(1)寫在前面

介紹一波 本人機器學習小白,通過在波波老師的講解下以及加上自己的理解,來記錄本人在學習機器學習過程中的感悟,分享通過自己的對機器學習的理解以及波波老師的講解下,而自己封裝的一個算法庫。 詳細代碼在本人的GitHub倉庫中:CuiZ

原创 機器學習“傻瓜式”理解(12)邏輯迴歸

邏輯迴歸 算法基礎理解 前面我們講到過線性迴歸算法和多項式迴歸算法,算法的本質以及目的便是求出 ý = f(x),如果給函數輸入一個預測樣本 x ,經過 f(x) 運算後得到一個 ý;但是這種方法存在問題,那便是,我們得到的預測值

原创 C++複試常見題集結

1.delete,malloc,new,free四者之間的關係 我們在進行C++程序編寫的時候,不可避免的會使用面向對象的方式,但是對於我們自己編寫的類來說,我們通常稱之爲非內部的數據結構類型,此時對於free/malloc這種標

原创 機器學習“傻瓜式”理解(17)集成學習

集成學習 所謂的集成學習,舉個栗子來說,假如我們需要解決一個分類問題,我們不僅僅通過例如KNN這樣的算法來進行解決,我們可以讓多種算法參與分類預測的過程,例如下圖: 再舉個栗子來說,假如我們5個人準備去吃飯,在面臨選擇店鋪時,假

原创 機器學習“傻瓜式”理解(13)混淆矩陣(評價分類結果)

之前的章節我們介紹了多種機器學習算法: KNN->用於解決分類問題 線性迴歸->用於解決迴歸問題 邏輯迴歸->既可以解決分類問題,又可以解決迴歸問題 。。。 總體來說,我們機器學習的算法要解決的問題分爲兩大類,分別爲:分類問題和迴

原创 機器學習“傻瓜式”理解(14)SVM(2)

SVM中的非線性數據進行分類 實際的生產活動中我們遇到的數據大多數不能進行嚴格的區分的,爲了解決這種問題,目前爲止我們可以通過兩種方式來解決: ①直接利用多項式項進行解決。 ②利用內核函數(scikit已經封裝好的) 下面我們將通

原创 機器學習“傻瓜式”理解(14)SVM(1)

SVM(Support Vector Machine):支撐向量機(重點) 基本介紹 在我們進行機器學習的過程中,會不可避免的出現“不適定問題”,所謂的不適定問題便是值得我們在進行決策的時候,決策邊界不唯一,可能會偏向某一樣本類型

原创 機器學習“傻瓜式”理解(11)模型泛化

上一節我們瞭解到,我們在機器學習領域要解決的主要問題便是高方差的問題,主要的解決的辦法便是模型泛化,其功能的概括來說便是通過限制超參數的大小,來解決過擬合或者模型含有巨大的方差誤差這樣的問題。 嶺迴歸(Ridge Regressi