色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

機器學習:線性回歸與邏輯回歸的理論與實戰

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 作者:奮斗喵 ? 2020-12-26 09:58 ? 次閱讀

1、基本概念

要進行機器學習,首先要有數據。從數據中學得模型的過程稱為“學習”或“訓練”。其對應的過程中有幾個基本術語需要知道。

(1)訓練集:模型訓練過程中使用的數據稱為訓練集,其中每個樣本稱為訓練樣本。如:D={X1,X2,X3,…,Xm}。

(2)特征向量:對于每個樣本如Xi = (xi1, xi2,…xin)是一個n維列向量,表示樣本Xi有n個屬性。

2、理論

給定由n個屬性描述而成的m個數據集為:D={X1,X2,X3,…,Xm},其中Xi = (xi1, xi2,…xin)。

線性模型是試圖學得一個通過屬性的線性組合來進行預測的函數,即:

4a9a63e8-4691-11eb-8b86-12bb97331649.png

其中4c0ac61e-4691-11eb-8b86-12bb97331649.png,其中4c480c40-4691-11eb-8b86-12bb97331649.png。當Θ和b確定之后,模型就得以確認。

2.1 線性回歸

2.1.1 什么是回歸

若我們欲預測的是連續值,如:房價,則此類學習任務稱為“回歸”。同理機器學習中還有“分類”任務,即我們欲預測的是離散值,如:“合格”、“不合格”。其中對于二分類任務,稱為“正類”、“負類”;涉及多個類別時,則稱為“多分類”任務。

在線性模型中,我們分為線性回歸與邏輯回歸兩種模型,下面我們對兩種模型分別進行講解分析。

4c6ef86e-4691-11eb-8b86-12bb97331649.png

圖1 線性回歸

4cc1fc30-4691-11eb-8b86-12bb97331649.png

圖2 邏輯回歸

2.1.2 線性回歸推導

1、線性回歸試圖學得:

4cfffa8a-4691-11eb-8b86-12bb97331649.png

2、參數估計

(1)首先衡量f(X)與Y之間的差別,我們使用均方誤差來衡量。

均方誤差的推導過程如下:

擬合函數為:

4d33a68c-4691-11eb-8b86-12bb97331649.png

矩陣形式為:

4d8bf86e-4691-11eb-8b86-12bb97331649.png

真實值和預測值之間通常情況下是會存在誤差的,我們用ε來表示誤差,對于每個樣本都有:

4dbd2556-4691-11eb-8b86-12bb97331649.png

通常我們假設樣本空間中全體樣本中服從一個未知“分布”,我們獲得的每個樣本都是獨立地從這個分布上采樣獲得的,即“獨立同分布”(iid)。

在這里誤差ε是獨立并且具有相同的分布,并且服從均值為0,方差為4de875da-4691-11eb-8b86-12bb97331649.png的正態分布。

由于誤差服從正態分布,那么有:

512ffa1a-4691-11eb-8b86-12bb97331649.png


將(5)代入到(6)可得:

54690b9a-4691-11eb-8b86-12bb97331649.png

用似然函數進行估計,即求出什么樣的參數跟我們給出的數據組合后能更好的預測真實值,有:

54955c5e-4691-11eb-8b86-12bb97331649.png

對式8取對數,將連乘轉化為加法為:

54d0ac00-4691-11eb-8b86-12bb97331649.png

對式9展開化簡為:

550ded0e-4691-11eb-8b86-12bb97331649.png

由上式可以看出,右邊第一項為一個常量,似然函數要取最大值,因而第二項越小越好,有:

5558358a-4691-11eb-8b86-12bb97331649.png

上述公式相當于最小二乘法的式子,即為均方誤差的式子。

(2)求解Θ:閉式解。

我們試圖讓均方誤差最小化,即

557411ec-4691-11eb-8b86-12bb97331649.png

基于均方誤差最小化來進行模型求解的方法稱為“最小二乘法”。在線性回歸中,最小二乘法就是試圖找到一條直線,使所有樣本到直線上的歐式距離之和最小。求解方法為對Θ求偏導。

55c20758-4691-11eb-8b86-12bb97331649.png

接下來需要對矩陣求偏導,過程如下:

55f8f498-4691-11eb-8b86-12bb97331649.png

最后令5648ba3c-4691-11eb-8b86-12bb97331649.png可得:

567488c4-4691-11eb-8b86-12bb97331649.png

s.t.56b13cc4-4691-11eb-8b86-12bb97331649.png為滿秩矩陣時。


在現實中56b13cc4-4691-11eb-8b86-12bb97331649.png往往不是滿秩矩陣,在許多變量中會遇到大量的變量,其數目超過樣本數目,會導致解出多個Θ,常見的做法是引入正則化或者進行降維。

(3)求解Θ:梯度下降法。

沿著函數梯度方向下降最快的就能找到極小值:

590d357c-4691-11eb-8b86-12bb97331649.png

沿著梯度方向更新參數Θ的值:

59545650-4691-11eb-8b86-12bb97331649.png

批量梯度下降是用了訓練集中的所有樣本。因此在數據量很大的時候,每次迭代都要遍歷訓練集一遍,開銷會很大,所以在數據量大的時候,可以采用隨機梯度下降法或者批量梯度下降法。

2.2 邏輯回歸

對于分類任務,用線性回歸無法直接進行回歸學習。對于二分類任務,其輸出標記597a4d24-4691-11eb-8b86-12bb97331649.png,而線性回歸模型產生的預測值59a21908-4691-11eb-8b86-12bb97331649.png是實值。

2.2.1 對數幾率

一個事件的幾率是指該事件發生的概率與該事件不發生的概率的比值。p(Y=1|X)是指事件發生的條件概率,p(Y=0|X)是指事件不發生的條件概率,則該事件的對數幾率或logit函數是:

59cfef40-4691-11eb-8b86-12bb97331649.png

對數幾率范圍為[0,+∞),當p=1時候,logit(p)=+∞,當p=0時候,logit(p)=0。

對于邏輯回歸而言,有:

59fe90d4-4691-11eb-8b86-12bb97331649.png

將其Θ*X轉換為概率有:

5a4cfef4-4691-11eb-8b86-12bb97331649.png

其中

5a8a0100-4691-11eb-8b86-12bb97331649.png

也稱為sigmoid函數,函數圖如下所示:

5add3780-4691-11eb-8b86-12bb97331649.png

圖3 Sigmoid函數圖

2.2.2 參數估計

在邏輯回歸進行模型學習時,應用極大似然估計來估計模型參數:

5b224398-4691-11eb-8b86-12bb97331649.png

對式22取對數,將連乘轉化為加法為:

5b7e2b18-4691-11eb-8b86-12bb97331649.png

上述公式為求解邏輯回歸的損失函數:交叉熵損失函數。

然后對J(Θ)進行求偏導,求最小值,得到Θ的估計值。沿著函數梯度方向下降就能最快的找到極小值:

5ba9c85e-4691-11eb-8b86-12bb97331649.png

沿著梯度方向更新參數Θ的值:

5c9031c2-4691-11eb-8b86-12bb97331649.png

3、實戰

3.1 線性回歸實戰

3.1.1 從零開始實現

1、首先生成數據集

num_inputs = 2 # 數據集的屬性 n : 2num_examples = 1000 # 數據集的樹木 m : 1000true_w = [2, -3.4]true_b = 4.2 features = torch.randn(num_examples, num_inputs, dtype=torch.float32) # 輸入labels = true_w[0]*features[:, 0] + true_w[1]*features[:, 1] + true_b # 標簽labels+=torch.tensor(np.random.normal(0,0.01,size=labels.size()),dtype=torch.float32)#加上一些隨機噪聲

進行可視化后,如下圖所示:

5cb5d800-4691-11eb-8b86-12bb97331649.png

圖4 數據集

2、數據讀取

def data_iter(batch_size, features, labels): num_examples = len(features) indices = list(range(num_examples)) random.shuffle(indices) for i in range(0, num_examples, batch_size): j = torch.LongTensor(indices[i : min(i + batch_size, num_examples)])yieldfeatures.index_select(0,j),labels.index_select(0,j)

如:當batch_size=10時,我們的輸出結果如下所示:

5cda8fce-4691-11eb-8b86-12bb97331649.png


第一個為輸入x(size=[10, 2]),第二個為標簽y(size=[10])。

3、定義線性回歸模型

def LinReg(X, w, b):returntorch.mm(X,w)+b#torch.mm表示兩個矩陣相乘,[batch_size,num_inputs]*[num_inputs,1]=[batch_size,1]

4、定義損失函數

# 線性回歸模型的損失函數為均方差損失函數def squared_loss(y_hat, y):return(y_hat-y.view(y_hat.size()))**2/2

5、定義優化算法

# 這里我們使用梯度下降算法:sdgdef sgd(params, lr, batch_size): for param in params:param.data-=lr*param.grad/batch_size

6、進行訓練

訓練步驟如下:

(1)首先讀取一個batch_size的數據和標簽
(2)然后進行模型計算;
(3)然后計算損失函數;
(4)然后反向求導優化參數;

lr = 0.03num_epochs = 3net = LinRegloss = squared_loss for epoch in range(num_epochs): # 訓練模型一共需要num_epochs個迭代周期 # 在每一個迭代周期中,會使用訓練數據集中所有樣本一次(假設樣本數能夠被批量大小整除)。X # 和y分別是小批量樣本的特征和標簽 for X, y in data_iter(batch_size, features, labels): l = loss(net(X, w, b), y).sum() # l是有關小批量X和y的損失 l.backward() # 小批量的損失對模型參數求梯度 sgd([w, b], lr, batch_size) # 使用小批量隨機梯度下降迭代模型參數 # 不要忘了梯度清零 w.grad.data.zero_() b.grad.data.zero_() train_l = loss(net(features, w, b), labels)print('epoch%d,loss%f'%(epoch+1,train_l.mean().item()))

最后輸出結果如下所示:

epoch 1, loss 0.044750epoch 2, loss 0.000172epoch3,loss0.000049

3.2 邏輯回歸實戰

邏輯回歸相比線性回歸中,改變的地方為第3步:模型函數 和 第4步:損失函數。

3.2.1 從零實現邏輯回歸

3、定義邏輯回歸模型

def sigmoid(X, w, b): ''' 定義sigmoid函數 :param x: 參數x 返回計算后的值 ''' z = torch.mm(X, w) + breturn1.0/(1+np.exp(-z))

4、定義損失函數

# 在邏輯回歸中,我們使用的是對數損失函數(交叉熵損失函數)def BCE_loss(y_hat, y): ''' 損失函數 :param y_hat: 預測值 :param y: 實際值 loss ''' m = np.shape(y_hat)[0] loss = 0.0 for i in range(m): if y_hat[i, 0] > 0 and (1 - y_hat[i, 0]) > 0: loss-= (y[i, 0] * np.log(y_hat[i, 0]) + (1 - y[i, 0]) * np.log(1 - y_hat[i, 0])) else: loss-= 0.0returnloss/m

責任編輯:xj

原文標題:【機器學習】線性回歸與邏輯回歸的理論與實戰

文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8428

    瀏覽量

    132832
  • 線性回歸
    +關注

    關注

    0

    文章

    41

    瀏覽量

    4312

原文標題:【機器學習】線性回歸與邏輯回歸的理論與實戰

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于移動自回歸的時序擴散預測模型

    在人工智能領域,目前有很多工作采用自回歸方法來模擬或是替代擴散模型,其中視覺自回歸建模(Visual AutoRegressive modeling,簡稱 VAR)就是其中的典型代表,該工作利用自
    的頭像 發表于 01-03 14:05 ?147次閱讀
    基于移動自<b class='flag-5'>回歸</b>的時序擴散預測模型

    垂直型回歸反射光電開關的原理有哪些E3S-AR61

    垂直型回歸反射光電開關的原理是基于光線的反射和光電傳感器的檢測機制。通過利用這一原理,它可以實現對物體的非接觸式檢測和控制,為工業自動化和機器人技術等領域提供了重要的技術支持。
    的頭像 發表于 12-16 10:23 ?183次閱讀

    基于RK3568國產處理器教學實驗箱操作案例分享:一元線性回歸實驗

    根據患者的病歷數據(如體檢指標、藥物服用情況、平時的飲食習慣等)預測某種疾病發生的概率。站在數據挖掘的角度看待線性回歸模型,它屬于一種有監督的學習算法,即在建模過程中必須同時具備自變量x和因變量y
    發表于 12-05 14:14

    Minitab常用功能介紹 如何在 Minitab 中進行回歸分析

    : Minitab常用功能介紹 數據分析功能 :從基本的描述性統計到復雜的多元回歸分析,Minitab都能輕松應對。具體包括: 基本統計 :提供均值、標準差、方差等基本統計量的計算。 回歸分析 :支持線性
    的頭像 發表于 12-02 15:38 ?892次閱讀

    什么是回歸測試_回歸測試的測試策略

    ? 1、什么是回歸測試 回歸測試(Regression testing) 指在發生修改之后重新測試先前的測試以保證修改的正確性。理論上,軟件產生新版本,都需要進行回歸測試,驗證以前發現
    的頭像 發表于 11-14 16:44 ?321次閱讀

    【「時間序列與機器學習」閱讀體驗】時間序列的信息提取

    個重要環節,目標是從給定的時間序列數據中提取出有用的信息和特征,以支持后續的分析和預測任務。 特征工程(Feature Engineering)是將數據轉換為更好地表示潛在問題的特征,從而提高機器學習
    發表于 08-17 21:12

    【「時間序列與機器學習」閱讀體驗】+ 鳥瞰這本書

    清晰,從時間序列分析的基礎理論出發,逐步深入到機器學習算法在時間序列預測中的應用,內容全面,循序漸進。每一章都經過精心設計,對理論知識進行了詳細的闡述,對實際案例進行了生動的展示,使讀
    發表于 08-12 11:28

    【「時間序列與機器學習」閱讀體驗】全書概覽與時間序列概述

    時間序列中的自相關性。 時間序列有基于線性場景,也有一些非線性性質周期性和不對稱性、波動的聚集性、波動中出現的跳躍現象,以及時間的不可逆性。機器學習已經是目前非
    發表于 08-07 23:03

    MATLAB預測模型哪個好

    在MATLAB中,預測模型的選擇取決于數據類型、問題復雜度和預測目標。以下是一些常見的預測模型及其適用場景的介紹: 線性回歸(Linear Regression): 線性回歸是最基本的
    的頭像 發表于 07-11 14:31 ?448次閱讀

    matlab預測模型有哪些

    環境,使其成為預測模型開發和實現的理想平臺。本文將詳細介紹MATLAB中常用的預測模型及其應用。 線性回歸模型 線性回歸是一種簡單的預測模型,用于分析兩個或多個變量之間的
    的頭像 發表于 07-11 14:27 ?801次閱讀

    不同類型神經網絡在回歸任務中的應用

    神經網絡是一種強大的機器學習模型,可以用于各種任務,包括回歸。在本文中,我們將討論不同類型的神經網絡,以及它們在回歸任務中的應用。 基本的神經網絡 基本的神經網絡,也稱為多層感知器(M
    的頭像 發表于 07-11 10:27 ?1392次閱讀

    機器學習算法原理詳解

    機器學習作為人工智能的一個重要分支,其目標是通過讓計算機自動從數據中學習并改進其性能,而無需進行明確的編程。本文將深入解讀幾種常見的機器學習
    的頭像 發表于 07-02 11:25 ?1204次閱讀

    機器學習六大核心算法深度解析

    算法歷程:線性回歸是一種古老的統計方法,它試圖找到最佳擬合數據的直線或超平面,最早可以追溯到19世紀初的高斯最小二乘法理論
    發表于 04-23 16:25 ?1895次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學習</b>六大核心算法深度解析

    發展新質生產力,打造橡塑新高地 聚焦“國際橡塑展回歸上海啟航盛典”

    闊別六年,行業年度盛事 - “CHINAPLAS國際橡塑展”將重磅回歸上海,于2024年4月23 - 26日在上海國家會展中心(虹橋)盛裝綻放。開幕在即,“國際橡塑展回歸上海啟航盛典”3月28日在上
    的頭像 發表于 03-29 15:30 ?1008次閱讀
    發展新質生產力,打造橡塑新高地 聚焦“國際橡塑展<b class='flag-5'>回歸</b>上海啟航盛典”

    深入探討線性回歸與柏松回歸

    或許我們所有人都會學習的第一個機器學習算法就是線性回歸算法,它無疑是最基本且被廣泛使用的技術之一——尤其是在預測分析方面。
    的頭像 發表于 03-18 14:06 ?716次閱讀
    深入探討<b class='flag-5'>線性</b><b class='flag-5'>回歸</b>與柏松<b class='flag-5'>回歸</b>
    主站蜘蛛池模板: 三级在线网址| 一区三区不卡高清影视| 野花社区视频WWW高清| 国产白丝JK被疯狂输出视频| 欧美精品色视频| 99久久免费看少妇高潮A片| 毛片一区二区三区| 99爱在线精品视频网站| 男女全黄h全肉细节文| 97在线观看免费| 牛牛在线精品视频(正)| black大战chinese周晓琳| 欧美Av无码高清在线| jj插入bb| 动漫美女禁区| 丝袜足控免费网站xx91| 国产精品自拍| 亚洲综合色五月久久婷婷| 久久久乱码精品亚洲日韩| 在线播放无码字幕亚洲| 麻豆狠色伊人亚洲综合网站| 99久久久精品免费观看国产| 青柠在线观看免费完整版| 调教椅上的调教SM总裁被调教 | 全黄H全肉细节文短篇| 成人国产亚洲精品A区天堂蜜臀| 视频一区二区中文字幕| 国产亚洲精品久久久久久久| 一个人的视频在线观看免费观看| 久久亚洲人成国产精品| 99热在线精品视频| 我的年轻漂亮继坶三级| 九九久久久| 99久久免热在线观看| 三级全黄的视频| 黄色jjzz| MATURETUBE乱妇| 亚洲精品久久久久久蜜臀| 蜜柚免费视频高清观看在线| 成人欧美尽粗二区三区AV| 亚洲视频免费观看|