日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一天1个机器学习知识点(二)

發布時間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一天1个机器学习知识点(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

陸陸續續整理的機器學習的知識點,資料大多數來自網上,不做盈利目的,如果侵權請告知即刪!如果文章中有錯誤的地方還請各位同學指正,,一起學習,一起進步!
每天都在更新中,記得收藏,每天進步一點點!!

一天1個機器學習知識點(一)(決策樹,有無監督學習,SVM,梯度下降法,邏輯回歸,NB)
一天1個機器學習知識點(二)(KNN,Kmeans,偏差方差,參數非參數模型,生成模型判別模型,正則化,概率,牛頓法,熵)
一天1個機器學習知識點(三)(損失函數,生成模型和判別模型,DBSCAN,OPTICS)
一天1個機器學習知識點(四)這部分主要更新集成學習的內容(RF,adaboost,GBDT,XGBoost等)
一天1個機器學習知識點(五)(特征工程相關,PCA,LDA等)

穿越---->深度學習知識點!!

目錄

  • 1.K-近鄰算法(k-Nearest Neighbors,KNN)
    • 1.1.KNN原理
    • 1.2.K-Means或KNN中,通常使用歐式距離來表示最近的數據點之間的距離,有時候也使用曼哈度距離,對比兩者的區別。
    • 1.3.一些大廠真題
  • 2.K均值聚類算法(K-means)
    • 2.1.算法流程
    • 2.2.超參數k的選擇
    • 2.3隨機的質心不好對性能影響很大
    • 2.4一些大廠真題
  • 3.凸優化問題
    • 3.1.凸集
    • 3.2.凸函數
    • 3.3.凸優化
    • 3.4.局部最優和全局最優
  • 4.偏差和方差
  • 5.生成模型和判別模型
  • 6.參數模型和非參數模型
  • 7.概率、似然函數、后樣概率
    • 7.1概率和似然函數
    • 7.2 最大似然函數和最大后驗概率估計
  • 8.牛頓法的原理
    • 8.1介紹
    • 8.2 牛頓法與梯度下降法
  • 9.擬牛頓法的原理
  • 10.分層抽樣
  • 11.各種[熵](https://www.cnblogs.com/kyrieng/p/8694705.html)
    • 11.1.信息熵
    • 11.2.條件熵(Conditional entropy)
    • 11.3相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)
    • 11.4交叉熵(Cross entropy)
    • 11.5.總結
  • 12.正則化
    • **12.1.L2正則化為什么能降低過擬合程度?**
    • 12.2.L1正則化和L2正則化區別
    • 12.3.為什么 L1 正則可以產生稀疏模型(很多參數=0),而 L2 正則不會出現很多參數為0的情況?

1.K-近鄰算法(k-Nearest Neighbors,KNN)

1.1.KNN原理

K-近鄰是一種分類算法,其思路是:如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別。K通常是不大于20的整數。KNN算法中,所選擇的鄰居都是已經正確分類的對象。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。

算法的步驟為(計算歐式距離,選擇最近k個點,選擇頻率最高類別):

  • 計算測試數據與各個訓練數據之間的距離;
  • 按照距離的遞增關系進行排序;
  • 選取距離最小的K個點;
  • 確定前K個點所在類別的出現頻率;
  • 返回前K個點中出現頻率最高的類別作為測試數據的預測分類。
  • 1.2.K-Means或KNN中,通常使用歐式距離來表示最近的數據點之間的距離,有時候也使用曼哈度距離,對比兩者的區別。

    歐式距離最常見的是兩個或多個點之間的距離表示法,又稱為歐幾里得距離。也就是通常所說的L2范數,歐式距離的缺點是它將樣本的不同特征之間的差別等同看待,這一點有時候不能滿足實際要求。
    曼哈頓距離,也就是歐式空間中的在直角坐標系上兩個點所形成的線段對軸產生的投影的距離總和。也就是我們所說的L1距離。例如,坐標(x1,y1)的點P1與坐標(x2, y2)的點P2的曼哈頓距離計算公式為:

    1.3.一些大廠真題



    近似誤差:可以理解為對現有訓練集的訓練誤差。
    估計誤差:可以理解為對測試集的測試誤差。
    在這個knn中其實設定的k值越小,得出的模型是越復雜的,因為k值越小會導致特征空間被劃分成更多的子空間(可以理解為模型的項越多)。而k值越大得到的模型其實是越簡單的 - - 所以當k值越小,對于訓練集的預測更加精確,近似誤差會越小(因為你選擇了更加復雜的模型去預測訓練集)。當k值越大,對于訓練集的預測則不會那么準確,所以近似誤差會越大(因為你選擇了更加簡單的模型去預測)。 而另一方面,由于設定了比較小的k值,模型比較復雜就會產生過度擬合(overfitting)的問題。

    2.K均值聚類算法(K-means)

    k-means算法是一種簡單的迭代型聚類算法,采用距離作為相似性指標,從而發現給定數據集中的K個類,且每個類的中心是根據類中所有值的均值得到,每個類用聚類中心來描述。對于給定的一個包含n個d維數據點的數據集X以及要分得的類別K,選取歐式距離作為相似度指標,聚類目標是使得各類的聚類平方和最小,即最小化:

    結合最小二乘法和拉格朗日原理,聚類中心為對應類別中各數據點的平均值,同時為了使得算法收斂,在迭代過程中,應使最終的聚類中心盡可能的不變。

    2.1.算法流程

    K-means是一個反復迭代的過程,算法分為四個步驟(選擇中心,計算距離,更新中心,計算目標函數):

  • 選取數據空間中的K個對象作為初始中心,每個對象代表一個聚類中心;
  • 對于樣本中的數據對象,根據它們與這些聚類中心的歐氏距離,按距離最近的準則將它們分到距離它們最近的聚類中心(最相似)所對應的類;
  • 更新聚類中心:將每個類別中所有對象所對應的均值作為該類別的聚類中心,計算目標函數的值;
  • 判斷聚類中心和目標函數的值是否發生改變,若不變,則輸出結果,若改變,則返回2)。
  • 2.2.超參數k的選擇

    K作為該算法唯一的超參數,是一把雙刃劍
    優點:選定K,模型的訓練就不需要干預了,很簡單
    缺點:K的影響很大,K選不好,模型就很差,導致性能不穩定
    選取方法:
    1.經驗。。。
    2.手肘法

    選若干個k,比如2,3,4,5,6
    分別跑一遍K-Means,穩定后,得到5個損失(上面的那個公式)
    一般損失先下降快,后下降慢,存在一個拐點,如下圖
    K=4可能是一個不錯的選擇
    因為曲線像手肘,所以叫手肘法。。。

    3.ISODATA
    該方法的K是動態變化的
    如何變化?
    該算法有分裂和合并操作
    分裂:一類變兩類
    合并:兩類變一類

    1.選定初始K0,一般最后的K的范圍大概是0.5K0~2K0。所以,即使K可以動態變化,K0的選擇也得多少靠點譜
    2.設定每類最少的樣本數,如果少于最少樣本數,這個類不能分裂
    3.計算方差評定一個類中所有樣本的分散程度,分散程度大于閾值,并且滿足2中的條件,進行分裂
    4.計算兩個質心的距離,小于閾值,兩個類合并
    其余步驟和普通K-Means一樣,只是每次聚類結束,要進行分裂和合并操作

    2.3隨機的質心不好對性能影響很大

    解決方法:K-Means++
    該方法和K-Means僅在初始選擇質心的時候不同:
    隨機選取第1個質心
    選第n+1個質心時,計算剩余樣本點與前n個質心的距離
    離前n個質心距離越遠,該樣本點被選為第n+1個質心的概率越大

    2.4一些大廠真題


    遇到非凸數據集的時候,比較難收斂,而且對噪聲敏感,同時數據局部最優

    3.凸優化問題

    對于目標函數,我們限定是凸函數;對于優化變量的可行域(注意,還要包括目標函數定義域的約束),我們限定它是凸集。同時滿足這兩個限制條件的最優化問題稱為凸優化問題,這類問題有一個非常好性質,那就是局部最優解一定是全局最優解。接下來我們先介紹凸集和凸函數的概念。

    3.1.凸集


    則稱該集合稱為凸集。如果把這個集合畫出來,其邊界是凸的,沒有凹進去的地方。直觀來看,把該集合中的任意兩點用直線連起來,直線上的點都屬于該集合。

    3.2.凸函數



    如果去掉上面的等號,則函數是嚴格凸的。對于多元函數,如果它是凸函數,則其Hessian矩陣為半正定矩陣。如果Hessian矩陣是正定的,則函數是嚴格凸函數。Hessian矩陣是由多元函數的二階偏導數組成的矩陣。
    根據多元函數極值判別法,假設多元函數在點M的梯度為0,即M是函數的駐點,則有:
    1.如果Hessian矩陣正定,函數在該點有極小值
    2.如果Hessian矩陣負定,函數在該點有極大值
    3.如果Hessian矩陣不定,還需要看更高階的導數
    這可以看做是一元函數極值判別法對多元函數對推廣

    是凸函數。

    3.3.凸優化

    凸優化問題可以形式化的寫成:

    其中x為優化變量;f為凸目標函數;C是優化變量的可行域,是一個凸集。這個定義給了我們證明一個問題是凸優化問題的思路,即證明目標函數是凸函數(一般是證明它的Hessian矩陣半正定),可行域是凸集。

    3.4.局部最優和全局最優

    凸優化問題有一個重要的特性:所有局部最優解都是全局最優解。這個特性可以保證我們在求解時不會陷入局部最優解,即如果找到了問題的一個局部最優解,則它一定也是全局最優解,這極大的簡化了問題的求解。之所以凸優化問題的定義要求目標函數是凸函數而且優化變量的可行域是凸集,是因為缺其中任何一個條件都不能保證局部最優解是全局最優解。

    4.偏差和方差




    樸素貝葉斯算法簡單的假設了各個特征之間是無關的,是一個被嚴重簡化了的模型。所以,對于這樣一個簡單模型,大部分場合都會bias部分大于variance部分,也就是高偏差,低方差

    5.生成模型和判別模型

    前一篇文章7.3也有提到。
    下一篇介紹比較詳細
    這篇文章總結的不錯

    6.參數模型和非參數模型

    (我至今不太理解,希望有大佬能夠指點一下)
    在統計學中,參數模型通常假設總體服從某個分布,這個分布可以由一些參數確定,如正態分布由均值和標準差確定,在此基礎上構建的模型稱為參數模型;非參數模型對于總體的分布不做任何假設或者說是數據分布假設自由,只知道其分布是存在的,所以就無法得到其分布的相關參數,只能通過非參數統計的方法進行推斷。
    所以說,參數模型和非參數模型中的“參數”并不是模型中的參數,而是數據分布的參數

    參數模型:根據預先設計的規則,例如方差損失最小,進行學習,參數模型例子:回歸(線性回歸、邏輯回歸,邏輯回歸假設數據滿足伯努利分布)模型;最好可以看一下或者直接進行一下相關的推導;根據規則,擁有少部分數據就可以;
    非參數模型:不需要事先假設規則,直接挖掘潛在數據中的規則;非參數模型例子:KNN,決策樹,挖掘數據潛在的特征,所以比較靈活;當你擁有許多數據而先驗知識很少時,非參數學習通常很有用,此時你不需要關注于參數的選取。
    總結
    1、通過對比參數模型和非參數模型的特點,可以得知參數模型對訓練數據的大小要求不如非參數模型高,因為參數模型通過對擬合函數進行假設,所以只需要對參數進行擬合即可;而非參數模型由于需要從數據中發掘數據之間關系,所以對數據量要求較高。
    2、通常說到的機器學習的黑盒特性,一般指的就是非參數機器學習模型。因為它不需要做出假設,并且需要擬合很多參數,所以它的解釋性就降低了。所以相比而言,參數機器學習模型由于對數據做出了理想的假設,所以得到的模型更加魯棒,所以解釋性也就更高。

    參考:

    7.概率、似然函數、后樣概率

    7.1概率和似然函數

    最大似然函數和最大后驗概率估計
    概率是指在給定參數的情況下,樣本的隨機向量X=x的可能性。而似然表示的是在給定樣本X=x的情況下,參數為真實值的可能性。一般情況,對隨機變量的取值用概率表示。而在非貝葉斯統計的情況下,參數為一個實數而不是隨機變量,一般用似然來表示。

    形式上,二者都類似于P(x|θ)。 如果把P(x|θ)看做一個函數,那么:

    • 如果固定住θ,把x當做自變量,這時候一般稱作概率,概率要滿足歸一性——也就是對于所有x,概率值累加起來等于1;
    • (邏輯回歸用的就是極大似然函數)如果固定住x,把θ當做自變量,這時候一般稱作似然函數,它描述的是當θ取某個值時,一個事件x理論上發生的可能性有多大——其側重點在于對比不同的θ,所以不需要滿足歸一性,只要不同θ得到不同的可能性就行了,重在相對大小。之所以只看重相對大小,是因為我們一般用“對似然函數求極大值”的方法來獲得極值點θ,作為概率模型的參數的估計值。

    7.2 最大似然函數和最大后驗概率估計

    這篇文章介紹很詳細

    8.牛頓法的原理

    8.1介紹

    ?頓法是梯度下降法的進一步發展,梯度下降法利用目標函數的一階偏導數信息、以負梯度方向作為搜索方向,只考慮目標函數在迭代點的局部性質;而牛頓法不僅使用目標函數的一階偏導數,還進一步利?了目標函數的二階偏導數這樣就考慮了梯度變化的趨勢,因而能更全面地確定合適的搜索方向加快收斂,它具二階收斂速度。但牛頓法主要存在以下兩個缺點

  • 對目標函數有較嚴格的要求。函數必須具有連續的一、二階偏導數,?森矩陣必須正定
  • 極端相當復雜,除需要計算梯度以外,還需要計算二階偏導數矩陣和它的逆矩陣。計算量、存儲量均很大,且均以維數N的平方比增加,當N很大時這個問題更更加突出。
  • 8.2 牛頓法與梯度下降法


    梯度下降法和牛頓法相比,兩者都是迭代求解,不過梯度下降法是梯度求解,而牛頓法是用二階的海森矩陣的逆矩陣求解。相對而言,使用牛頓法收斂更快(迭代更少次數)。但是每次迭代的時間比梯度下降法長。至于為什么牛頓法收斂更快,通俗來說梯度下降法每次只從你當前所處位置選一個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之后,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,能更快地走到最底部。

    9.擬牛頓法的原理

    ?頓法雖然收斂速度快,但是計算過程中需要計算目標函數的二階偏導數,計算復雜度較?。而且有時目標函數的海森矩陣無法保持正定,從而使?頓法失效。為了克服這兩個問題,?們提出了擬牛頓法。這個方法的基本思想是:不??階偏導數而構造出可以近似海?森矩陣或者?森矩陣的逆的正定對稱陣,在擬?頓的條件下優化目標函數。不同的構造?法就產生了不同的擬牛頓法。
    也有人把“擬牛頓法”翻譯成“準牛頓法”,其實都是表示“類似于牛頓法”的意思,因此只是對算法中?用來計算搜索方向的?森矩陣(或?森矩陣的逆)作了近似計算罷了。

    10.分層抽樣

    在機器學習多分類任務中有時候需要針對類別進行分層采樣,比如說類別不均衡的數據,這時候隨機采樣會造成訓練集、驗證集、測試集中不同類別的數據比例不一樣,這是會在一定程度上影響分類器的性能的,這時候就需要進行分層采樣保證訓練集、驗證集、測試集中每一個類別的數據比例差不多持平。
    分層抽樣利用事先掌握的信息,充分考慮了保持樣本結構和總體結構的一致性,當總體由差異明顯的幾部分組成的時候,適合用分層抽樣

    11.各種熵

    11.1.信息熵

    類別的信息:信息量的度量就等于不確定性的多少。

    為了計算熵,我們需要計算所有類別所有可能包含的信息期望值(由離散型隨機變量的期望計算公式可知)

    遍歷相乘再相加,可以使用內積計算熵。
    它是表示隨機變量不確定的度量,是對所有可能發生的事件產生的信息量的期望。隨機變量的取值個數越多,狀態數也就越多,信息熵就越大,混亂程度就越大。當隨機分布為均勻分布時,熵最大。
    信息熵,被用來度量信息的無序程度(信息熵越大,越無序,等于 0 時,意味著全部類別都相同,完全有序)
    注:決策樹計算信息增益和信息增益比就是用到信息熵

    11.2.條件熵(Conditional entropy)

    條件熵 H(Y∣X)H(Y|X)H(YX) 表示在已知隨機變量XXX的條件下隨機變量 YYY的不確定性。條件熵 H(Y∣X)H(Y|X)H(YX) 定義為 X 給定條件下 Y 的條件概率分布的熵對 X 的數學期望:

    條件熵 H(Y∣X)H(Y|X)H(YX) 相當于聯合熵H(X,Y)H(X,Y)H(X,Y)減去單獨的熵 H(X)H(X)H(X),即
    H(Y∣X)=H(X,Y)?H(X)H(Y|X)=H(X,Y)?H(X)H(YX)=H(X,Y)?H(X),可以這樣理解,描述 X 和 Y所需的信息是描述 X 自己所需的信息,加上給定 X 的條件下具體化 Y 所需的額外信息。證明如下:

    11.3相對熵 (Relative entropy),也稱KL散度 (Kullback–Leibler divergence)

    相對熵可以用來衡量兩個概率分布之間的差異,上面公式的意義就是求 p 與 q 之間的對數差在 p 上的期望值。

    11.4交叉熵(Cross entropy)

    現在有關于樣本集的兩個概率分布 p(x)p(x)p(x)q(x)q(x)q(x),其中 p(x)p(x)p(x)為真實分布, q(x)q(x)q(x) 非真實分布。如果用真實分布 p(x)p(x)p(x) 來衡量識別別一個樣本所需要編碼長度的期望(平均編碼長度)為:

    如果使用非真實分布 q(x)q(x)q(x) 來表示來自真實分布p(x)p(x)p(x)的平均編碼長度,則是
    (因為用q(x)q(x)q(x)來編碼的樣本來自于分布 q(x)q(x)q(x),所以 H(p,q)H(p,q)H(p,q) 中的概率是 p(x)p(x)p(x))。此時就將 H(p,q)H(p,q)H(p,q) 稱之為交叉熵。

    11.5.總結

    1)信息熵是衡量隨機變量分布的混亂程度,是隨機分布各事件發生的信息量的期望值,隨機變量的取值個數越多,狀態數也就越多,信息熵就越大,混亂程度就越大。當隨機分布為均勻分布時,熵最大;信息熵推廣到多維領域,則可得到聯合信息熵;
    2)條件熵表示的是在 X給定條件下,Y 的條件概率分布的熵對 X的期望。
    3)相對熵可以用來衡量兩個概率分布之間的差異
    4)交叉熵可以來衡量在給定的真實分布下,使用非真實分布所指定的策略消除系統的不確定性所需要付出的努力的大小

    或者:
    1)信息熵是傳輸一個隨機變量狀態值所需的比特位下界(最短平均編碼長度)。
    2)相對熵是指用 q 來表示分布 p 額外需要的編碼長度。
    3)交叉熵是指用分布 q 來表示本來表示分布 p 的平均編碼長度。

    12.正則化

    這篇文章對正則化講得很好。
    L1正則化和L2正則化可以看做是損失函數的懲罰項。所謂“懲罰”是指對損失函數中的某些參數做一些限制。

    12.1.L2正則化為什么能降低過擬合程度?

    正則化之所以能夠降低過擬合的原因在于,正則化是結構風險最小化的一種策略實現。給loss function加上正則化項,能使得新得到的優化目標函數h = f+normal,需要在f和normal中做一個權衡(trade-off),如果還像原來只優化f的情況下,那可能得到一組解比較復雜,使得正則項normal比較大,那么h就不是最優的,因此可以看出加正則項能讓解更加簡單,通過降低模型復雜度,得到更小的泛化誤差,降低過擬合程度
    擬合過程中通常都傾向于讓權值盡可能小,最后構造一個所有參數都比較小的模型。因為一般認為參數值小的模型比較簡單,能適應不同的數據集,也在一定程度上避免了過擬合現象。可以設想一下對于一個線性回歸方程,若參數很大,那么只要數據偏移一點點,就會對結果造成很大的影響;但如果參數足夠小,數據偏移得多一點也不會對結果造成什么影響,專業一點的說法是『抗擾動能力強』。

    12.2.L1正則化和L2正則化區別

    對于線性回歸模型,使用L1正則化的模型建叫做Lasso回歸,使用L2正則化的模型叫做Ridge回歸(嶺回歸)

    • L1正則化就是在loss
      function后加正則項為L1范數,加上L1范數容易得到稀疏解(0比較多)。L1正則化是指權值向量w中各個元素的絕對值之和。L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用于特征選擇
    • L2正則化就是loss function后加正則項為L2范數的平方,加上L2正則得到的解比較平滑(不是稀疏)。但是同樣能夠保證解中接近于0(但不是等于0,所以相對平滑)的維度比較多,降低模型的復雜度。L2正則化是指權值向量w中各個元素的平方和然后再求平方根。L2正則化可以防止模型過擬合;一定程度上,L1也可以防止過擬合

    12.3.為什么 L1 正則可以產生稀疏模型(很多參數=0),而 L2 正則不會出現很多參數為0的情況?

    答:

    上面提到L1正則化有助于生成一個稀疏權值矩陣,進而可以用于特征選擇

    總結

    以上是生活随笔為你收集整理的一天1个机器学习知识点(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。