您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“python中邏輯回歸限制的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“python中邏輯回歸限制的示例分析”這篇文章吧。
邏輯回歸分類的時候,是把線性的函數輸入進sigmoid函數進行轉換,后進行分類,會在圖上畫出一條分類的直線,但像下圖這種情況,無論怎么畫,一條直線都不可能將其完全分開。
但假如我們可以對輸入的特征進行一個轉換,便有可能完美分類。比如:
創造一個新的特征x1:到(0,0)的距離,另一個x2:到(1,1)的距離。這樣可以計算出四個點所對應的新特征,畫到坐標系上如以下右圖所示。這樣轉換之后,就可以將轉換后的數據,輸入給一個邏輯回歸,將其完全分開。
雖然我們不容易直接找到這樣的一個轉換標準,但我們可以通過邏輯回歸去尋找標準,使用第一個邏輯回歸,尋找第一個轉換后的參數x1, 再使用第二個邏輯回歸,尋找第二個轉換后的參數x2,將這兩個作為新的輸入,給到第三個邏輯回歸,即可完成分類。
因此,我們可以通過參數的調整,使得輸入的x1,x2歸屬于兩類的概率(其實就是一個0-1中間的數字,我們暫且稱為概率)如下圖所示。那么左上角的點屬于兩類的概率就是(0.73,0.05),同理,其他的點也有屬于兩類的概率,將其放到坐標軸上,就完成了對特征的轉換。將轉換之后的結果作為輸入,給到一個新的邏輯回歸,就可以完成分類。
可以看出來,每一個邏輯回歸單元,既可以作為接受者,接收輸入數據,也可以作為發送者,將自己的輸出結果作為其他的邏輯回歸單元的輸入數據。
多個邏輯回歸單元交織在一起,就稱為神經網絡,每一個邏輯回歸單元,就是一個神經元。這種學習方式,就叫做深度學習。
以下是一個例子:
假設初始輸入數據是1和-1,并且所有的權重我們都知道,比如兩個數據到第一層兩個神經元的權重分別是1,-1,-2, 1,然后通過sigmoid函數轉換后,那么我們就可以計算出結果分別是0.98,0.12,同樣的,假如我們知道后面所有的權重(參數),我們最終可以得到兩個輸出,0.62,0.83
當最開頭的數據輸入是0和0,通過同樣的轉換,可以得到輸出0.51,0.85。可以看出,無論輸入是什么樣的,我們總能夠通過一系列參數,進行一系列轉換,將其輸出成特征完全不一樣的數據。
因此,整個網絡可以看作是一個函數。更一般地,如下圖所示,每一個圓圈都是一個神經元,最前面的輸入叫做輸入層,最后面沒有接任何神經元的,叫做輸出層,中間所有的叫做隱藏層。像下圖這樣每一個神經元都連接到下一層所有的神經元,叫做全連接神經網絡。
對于深度學習,通常使用矩陣運算的方式進行計算。
更一般地:
即上一層的參數*上一層給的輸入值 + 偏置項,再對整體進行一個sigmoid函數轉化,就可以輸出一個本層的數據,供下層使用。對于所有的神經元均是一樣的操作,一直到輸出層。
對于一個樣本來說,損失函數如下圖所示:
比如輸入的是樣本“1”,有256個像素點,也就是256個特征,將其輸入神經網絡,最終得到的輸出是一個10維向量,每一個維度,都會有一個概率值,比如是“1”的概率為0.8, “2”的概率為0.1等等,而實際的標簽是“1”,也就是只有y1hat是1,其他是0。將這兩個向量求出交叉熵并求和,如上圖的式子,得出的C就是這個樣本的損失。
對于整體而言,把所有的樣本損失算出來并求和即可。
以上是“python中邏輯回歸限制的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。