python構建似然函數(shù)的簡單介紹

python中eval的用法

python中eval函數(shù)用法如下:

創(chuàng)新互聯(lián)建站長期為上千客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為儋州企業(yè)提供專業(yè)的成都網(wǎng)站設計、成都網(wǎng)站建設,儋州網(wǎng)站改版等技術服務。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

1、計算字符串中有效的表達式,并返回結果。

2、將字符串轉成相應的對象(如list、tuple、dict和string之間的轉換)。

3、將利用反引號轉換的字符串再反轉回對象。

函數(shù)作用域:eval()函數(shù)并不會創(chuàng)建一個新的作用域,并且它的作用域就是它所在的作用域,有時候需要將eval()函數(shù)的作用域設置為全局,當然可以將eval()在全局作用域中使用,這個時候可以用window.eval()的方式實現(xiàn)。

參數(shù)情況:

(1)如果參數(shù)是一個表達式,eval() 函數(shù)將執(zhí)行表達式。

(2)如果參數(shù)是Javascript語句,eval()將執(zhí)行 Javascript 語句。

注意:如果執(zhí)行結果是一個值就返回,不是就返回undefined,如果參數(shù)不是一個字符串,則直接返回該參數(shù)。

python實現(xiàn)資產(chǎn)配置(2)--Blacklitterman 模型

在 python實現(xiàn)資產(chǎn)配置(1)----Markowitz 投資組合模型 中, 我們已經(jīng)見過如何使用Markowitz求得最優(yōu)資產(chǎn)配比. 這是一種在已知未來各資產(chǎn)的概率分布,然后再求解的方法.

Markowitz模型輸入?yún)?shù)包括歷史數(shù)據(jù)法和情景分析法兩種方法,情景分析法的缺點是主觀因素,隨意性太強,因此使用歷史數(shù)據(jù)法, 將資產(chǎn)的均值和協(xié)方差輸入模型是比較常見的作法. 不過, 不足之處很明顯: 未來的資產(chǎn)收益率分布不一定與過去相同. 此外, Markowitz 模型結果對輸入?yún)?shù)過于敏感.

Black-Litterman模型就是基于此的改進. 其核心思想是將投資者對大類資產(chǎn)的觀點 (主觀觀點) 與市場均衡收益率 (先驗預期收益率)相結合,從而形成新的預期收益率(后驗預期收益率). 這里的先驗預期收益率的分布可以是貝葉斯推斷中的先驗概率密度函數(shù)的多元正態(tài)分布形式,投資者的主觀觀點就是貝葉斯推斷中的似然函數(shù)(可以看作新的信息, 因為做出主觀判斷必然是從外界獲取得到了這些資產(chǎn)的收益率變化信息), 而相應的, 后驗預期收益率也可以從后驗概率密度函數(shù)中得到. 具體的推導可以看我的這篇文章: 從貝葉斯定理到貝葉斯推斷 .

BL模型的求解步驟包括下面幾步:

(1) 使用歷史數(shù)據(jù)估計預期收益率的協(xié)方差矩陣作為先驗概率密度函數(shù)的協(xié)方差.

(2) 確定市場預期之收益率向量, 也就是先驗預期收益之期望值. 作為先驗概率密度函數(shù)的均值. 或者使用現(xiàn)有的期望值和方差來反推市場隱含的均衡收益率(Implied Equilibrium Return Vector), 不過在使用這種方法時, 需要知道無風險收益率 的大小.

(3) 融合投資人的個人觀點,即根據(jù)歷史數(shù)據(jù)(看法變量的方差)和個人看法(看法向量的均值)

(4) 修正后驗收益.

是均衡收益率協(xié)方差的調(diào)整系數(shù),可以根據(jù)信心水平來判斷. 是歷史資產(chǎn)收益率的協(xié)方差矩陣, P是投資者的觀點矩陣, 是似然函數(shù)(即投資者觀點函數(shù))中的協(xié)方差矩陣,其值為 的對角陣, 是先驗收益率的期望值.

(5) 投資組合優(yōu)化: 將修正后的期望值與協(xié)方差矩陣即 重新代入Markowitz投資組合模型求解.

(1)定義求解函數(shù),輸入為投資者觀點P,Q以及目前資產(chǎn)的市場收益率矩陣,輸出為后驗的市場收益率和協(xié)方差矩陣.

(2) 實列分析

我們繼續(xù)研究 python實現(xiàn)資產(chǎn)配置(1)----Markowitz 投資組合模型 中的五支股票: 白云機場, 福建高速, 華夏銀行, 生益科技和浙能電力. 假設現(xiàn)在分析師的觀點為:

獲取股票數(shù)據(jù), 并且獲得后驗的均值和方差:

這時候,已經(jīng)可以使用Markowitz模型進行資產(chǎn)的配置. 定義新的函數(shù)blminVar以求解資產(chǎn)配置權重. 該函數(shù)的輸入變量為blacklitterman函數(shù)的輸出結果, 以及投資人的目標收益率goalRet.假設目標收益率為年化70%,則goalRet = 0.7:

輸出結果為:

0-5分別對應上面的五只股票.

二分回歸解釋了什么

In logistic regression, a line L1 defines a probability distribution over the input space. A line L1 is said to be better than line L2, if the the distribution defined by L1 is low at class ‘-1’ points and high at class ‘+1’ points, on average, compared to the distribution defined by line L2.我們采用一個簡單的數(shù)據(jù)集:

![1559268940560](assets/1559268940560.png)

??我們對標志變量進行回歸分析,以虛線表示最小二乘回歸,以實線代表logistic回歸。

![1559269066887](assets/1559269066887.png)

??當然,對于這樣的非線性問題,線性回歸的效果顯然很差,這里采用邏輯回歸去逼近。

## 2.邏輯回歸理解

??logistic回歸曲線是如何產(chǎn)生的呢?考慮在給定 $X=x$情況下 $Y$ 的條件均值,表示為$E(Y|x)$。該式表示在給定預測變量值的情況下,期望的響應變量值。回憶前述內(nèi)容,在線性回歸中,響應變量被認為是一個定義為$Y=B_0 + B_1 +\varepsilon$的隨機變量?,F(xiàn)在,當誤差項 $\varepsilon$均值為0時,利用線性回歸,得到$E(Y|x)=B_0 +B_1x$,其可能的取值包含整個實數(shù)域。簡單來說,將條件均值$E(Y|x)$定義為$\pi (x)$。則,logistic回歸的條件均值具有與線性回歸不同的形式。

π(x)=eβ0+β1x1+eβ0+β1x

π(x)=eβ0+β1x1+eβ0+β1x

??等式中的曲線被稱為sigmoidal,因為其形狀是S型,而且是非線性的。

??觀察這個式子,當$\lim _{a \rightarrow-\infty}\left[\frac{e^{a}}{1+e^{a}}\right]=0$時,$\pi (x)$取得最小值;而當$\lim _{a \rightarrow-\infty}\left[\frac{e^{a}}{1+e^{a}}\right]=1$時,$\pi (x)$取得最大值。因此,$\pi (x)$成為$0\pi(x) \leqslant 1$時能夠用概率來解釋的一種表示形式。也就是說,$\pi (x)$可以被解釋為$X=x$的記錄取值(例如,某種疾?。┑母怕剩蚪忉尀?1-\pi (x)$,表示該記錄與取值間的概率差。

??綜上所述,當我們的響應是二元分類變量的時候,誤差就只可能是兩種可能形式的另一種,比如:Y=1(患有某種疾病),則對于這個記錄$X=x$來說,其概率就是$\pi (x)$,因此,這個判斷的誤差就是$\varepsilon=1-\pi(x)$,這是數(shù)據(jù)點Y=1與其曲線$\pi(x)=\frac{e^{\beta_{0}+\beta_{1} x}}{1+e^{\beta_{0}+\beta_{1} x}}$之間的垂直距離。然而,如果真實標簽$Y=0$(未患有某種疾病),其出現(xiàn)的概率為$1-\pi (x)$(響應概率為負值)對于這個記錄$X=x$而言,誤差$\varepsilon=0-\pi(x)=-\pi(x)$,為數(shù)據(jù)點$Y=0$與在其下的曲線$\pi (x)$的垂直距離。

??logistic回歸可以用對數(shù)轉換:

g(x)=ln[π(x)1?π(x)]=β0+β1x

g(x)=ln?[π(x)1?π(x)]=β0+β1x

## 3.最大似然估計

??我們需要利用最大似然估計方法來獲得參數(shù)估計,以使得觀察到的觀察數(shù)據(jù)似然性最大化。

??$l(\boldsymbol{\beta} | x)$是歸于參數(shù)$\boldsymbol{\beta}=\beta_{0}, \beta_{1}, \ldots, \beta_{m}$的函數(shù),表示觀察數(shù)據(jù) $x$ 的概率。通過獲得$\boldsymbol{\beta}=\beta_{0}, \beta_{1}, \ldots, \beta_{m}$的值,使$l(\boldsymbol{\beta} | x)$最大化,從而發(fā)現(xiàn)最大似然估計,獲得最能反應觀察數(shù)據(jù)的參數(shù)值。

??其給定數(shù)據(jù)的肯定響應的概率為$\pi(x)=P(Y=1 | x)$,否定響應的概率為$1-\pi(x)=P(Y=0 | x)$,當相應為肯定值的時候,$\left(X_{i}=x_{i}, Y_{i}=1\right)$,將使 $\pi (x)$ 概率到達似然值,而當觀察的響應為否定值時:$\left(X_{i}=x_{i}, Y_{i}=0\right)$,將使 $1-\pi (x)$概率達到似然。這樣,當$Y_i=0$或 1 時,第 $i$ 個觀察記錄對似然的貢獻可以表示為$\left[\pi\left(x_{i}\right)\right]^{y_{i}}\left[1-\pi\left(x_{i}\right)\right]^{1-y_{i}}$。觀察的假設是獨立的,使得我們可以將似然函數(shù)$l(\boldsymbol{\beta} | x)$表示為獨立項的乘積:

l(β|x)=∏i=1n[π(xi)]yi[1?π(xi)]1?yi

l(β|x)=∏i=1n[π(xi)]yi[1?π(xi)]1?yi

??上式采用對數(shù)似然$L(\boldsymbol{\beta} | x)=\operatorname{In}[l(\boldsymbol{\beta} | x)]$的話,計算就能更加方便:

L(β|x)=In[l(β|x)]=∑i=1n{yiIn[π(xi)]+(1?yi)In[1?π(xi)]}

L(β|x)=In?[l(β|x)]=∑i=1n{yiIn?[π(xi)]+(1?yi)In?[1?π(xi)]}

??若對極大似然函數(shù)不熟悉的話,可以參考:

??最大似然估計可以通過獲得每個參數(shù)的 $L(β|x)$獲得,并將所得到的結果形式設置為0。遺憾的是,與線性回歸不同,無法獲得這些結果形式的封閉形式解。因此,需要采用其他方法,例如,迭代加權最小二乘法(可參考McCullagh和Nelder撰寫的文獻)。

## 4.回歸結果解釋

??如果我們采用本博客開頭使用的數(shù)據(jù)集,對未知參數(shù) $\beta_0$ 和$\beta_1$進行最大似然估計,有結果:$\beta_{0}=-4.7372, \quad \beta_{1}=0.06696$。因此,對$\pi_{(x)}=\frac{e^{\beta_{0}+\beta_{1} x}}{1+e^{\beta_{0}+\beta_{1} x}}$的估計如下:

π^(x)=eg^(x)1+eg^(x)=e?4.372+0.06696(age)1+e?4.372+0.06696(age)

π^(x)=eg^(x)1+eg^(x)=e?4.372+0.06696(age)1+e?4.372+0.06696(age)

??采用了對數(shù)估計的結果:$\hat{g}(x)=-4.372+0.06696(a g e)$。

??這樣,我們就能使用此式來估計病人的患病概率。比如,病人年齡為50歲時,有:

g^(x)=?4.372+0.06696(50)=?1.024

g^(x)=?4.372+0.06696(50)=?1.024

π^(x)=eg^(x)1+eg˙(x)=e?1.0241+e?1.024=0.26

π^(x)=eg^(x)1+eg˙(x)=e?1.0241+e?1.024=0.26

??對于72歲的病人來說:

g^(x)=?4.372+0.06696(72)=0.449

g^(x)=?4.372+0.06696(72)=0.449

π(x)=eg˙(x)1+eg^(x)=e0.4491+e0.449=0.61

π(x)=eg˙(x)1+eg^(x)=e0.4491+e0.449=0.61

## 5.回歸預測的顯著性

??當均方回歸(mean square regression,MSR)比均方誤差(mean squared error,MSE)大時,回歸模型被認為是有意義的。(有關這部分的內(nèi)容可以查看本系列博客的《18 多元回歸與模型回歸》那一節(jié)對此的講解)

??回想線性回歸,如果MSR較大,測試統(tǒng)計$F=\frac{M S R}{M S E}$也將會較大,采用線性回歸模型是有意義的。

??logistic回歸的系數(shù)是否有意義的判斷與此類似。本質上說,我們是通過比較包括特定預測因子的模型與不包括該預測因子的模型,檢驗前者是否對響應變量的擬合程度比后者更好,從而判斷其是否有意義的。

??為模型定義全模型(飽和模型)意味著參數(shù)與數(shù)據(jù)點數(shù)量一樣多,例如,簡單的線性回歸模型僅包含兩個點。顯然,全模型能夠更完美地預測響應變量,不會產(chǎn)生預測誤差。我們將考察全模型中響應變量的觀察值和預測值。為比較擬合模型(不含的參數(shù)比數(shù)據(jù)點少)的預測值和全模型的預測值,采用偏差比較方法,偏差定義如下:

Deviance=D=?2ln[likelihood of the fitted model likelihood of the saturated model ]

Deviance=D=?2ln?[likelihood of the fitted model likelihood of the saturated model ]

??公式中包含兩個似然的比值,因此結果假設檢驗被稱為似然比率檢驗。為建立分布是已知的度量,我們必須采用 -2ln[似然比率] ,將來自你和模型的估計 $\pi(x)$定位為$\hat{\pi_i}$。然后,按照logistic回歸,利用上個式子,偏差定義為:

Deviance=D=?2ln∑i=1n{yiln[π^iyi]+(1?yi)ln[1?π^i1?yi]}

Deviance=D=?2ln?∑i=1n{yiln?[π^iyi]+(1?yi)ln?[1?π^i1?yi]}

??偏差表示預測因子計算完成后,模型剩余的誤差。類似于線性回歸中的誤差平方和。

該過程確定某一特定預測因子是否有意義,由沒有預測因子的模型的偏差減去包含預測因子的模型的偏差得到,即:

G=deviance(model without predictor)?deviance(model with predictor)=?2ln[likelihood without predictor likelihood with predictor ]

G=deviance(model without predictor)?deviance(model with predictor)=?2ln?[likelihood without predictor likelihood with predictor ]

??令$n_{1}=\sum y_{i}$且$n_{0}=\sum\left(1-y_{i}\right)$,則在近包含單一預測因子的情況下,有:

G=2{∑i=1n[yiln[π^i]+(1?yi)ln[1?π^i]]?[n1ln(n1)+n0ln(n0)?nln(n)]}

G=2{∑i=1n[yiln?[π^i]+(1?yi)ln?[1?π^i]]?[n1ln?(n1)+n0ln?(n0)?nln?(n)]}

??如果使用本節(jié)的數(shù)據(jù)集,其對數(shù)似然為-10.101,則:

G=2{?10.101?[7ln(7)+13ln(13)?20ln(20)]}=5.696

G=2{?10.101?[7ln?(7)+13ln?(13)?20ln?(20)]}=5.696

## 6.概率比比率 和 相對風險

??在線性回歸之中梯度系數(shù) $\beta_1$ 被解釋為作為響應邊來那個的對預測單位增加而發(fā)生的變化。同樣,在邏輯回歸中是一樣的,只是這是采用的對數(shù)的形式。也就是說,梯度系數(shù)$\beta_1$可以被解釋為預測變量值 每增加一個單位對數(shù)變化值。以公式表示如下:

β1=g(x+1)?g(x)

β1=g(x+1)?g(x)

??在上例分析之中,我們已然明白二分變量使用邏輯回歸之后的意義。比如,我們知道72歲的人患病概率有61%,未患病概率比有39%,則其患病概率比為$odds =\frac{0.61}{0.39}=1.56$;而50歲的人患病概率為26%,未患病74%,則概率比為$odds =\frac{0.26}{0.74}=0.35$。

??我們可以發(fā)現(xiàn),當一件事的發(fā)生概率大于不發(fā)生概率的時候,$odds1$;而發(fā)生概率小于不發(fā)生概率時,$odds1$。于此,我們可以多注意一下**概率**與**概率比**的不同,概率的取值范圍在0~1之間,而概率比的范圍在$\text{0~}\infty $之間。

??對于記錄 $x=1$ 的情況,響應的概率比為:

π(1)1?π(1)=eβ0+β11+eβ0+β111+eβ0+β1=eβ0+β1

π(1)1?π(1)=eβ0+β11+eβ0+β111+eβ0+β1=eβ0+β1

??同理,對于記錄 $x=0$的情況,響應的概率比為:

π(0)1?π(0)=eβ01+eβ011+eβ0=eβ0

π(0)1?π(0)=eβ01+eβ011+eβ0=eβ0

??清楚了上面的含義,我們引入概念:**概率比比例(odds ratio)**:定義為當記錄 $x=1$ 時,響應變量發(fā)生(y=1)的概率比與當記錄在 $x=0$ 時響應變量發(fā)射功能的概率比的比值。用公式表達:

Odds ratio =OR=π(1)/(1?π(1)]π(0)/(1?π(0)]=eβ0+β1eβ0=eβ1

Odds ratio =OR=π(1)/(1?π(1)]π(0)/(1?π(0)]=eβ0+β1eβ0=eβ1

??通常,我們?yōu)榱耸垢怕时缺壤齇R能夠準確地估計相對風險,我們必須使$\frac{[1-\pi(0)]}{[1-\pi(1)]} \approx 1$, $x=1$ 和$x=0$,響應發(fā)生可能性小的時候可能性小的時候可得到OR值。

Relativerisk=π(1)π(0)

Relativerisk=π(1)π(0)

概率比比率在研究領域被廣泛應用,因為它簡略地表達了概率比比率與梯度系數(shù)之間的關系。例如,假如某個臨床試驗報告表明在患子宮內(nèi)膜癌的患者中使用過雌激素替代療法的與未使用雌激素替代療法的概率比比率為5.0,則可以解釋為,平均來說,采用雌激素替代療法的病人患子宮內(nèi)膜癌的可能性是未使用雌激素替代療法的病人的5倍。然而,這一解釋僅在 $\frac{[1-\pi(0)]}{[1-\pi(1)]} \approx 1$ 時有效。

font color=#66ccff(記得查看書P360 13.6節(jié),是例子。)/font

??剩下的章節(jié)沒有寫嗯。。

文章知識點與官方知識檔案匹配

算法技能樹首頁概覽

30688 人正在系統(tǒng)學習中

點擊閱讀全文

打開CSDN,閱讀體驗更佳

最新發(fā)布 邏輯回歸實現(xiàn)二分類問題

文章目錄邏輯回歸前言線性回歸sigmoid梯度上升算法邏輯回歸分類演示實戰(zhàn)演示數(shù)據(jù)集預測結語 邏輯回歸 前言 logistic回歸是被用于解決分類問題的機器學習方法,以下我們將對邏輯回歸在二分類的應用上展開介紹,涉及的內(nèi)容有激活函數(shù)sigmoid,梯度上升算法,以及在數(shù)據(jù)集上的實際應用。 本次實踐的代碼已上傳到 線性回歸 在此之前,我們了解一下線性回歸,線性回歸是利用數(shù)理統(tǒng)計中回歸分析,來確定兩種或兩種以上變量間相互依賴的定量關系的一種統(tǒng)計

繼續(xù)訪問

吳恩達機器學習之邏輯回歸(二分類)

機器學習之邏輯回歸邏輯回歸二分類邏輯回歸python代碼實現(xiàn)(含詳細代碼注釋): 邏輯回歸 二分類邏輯回歸 在訓練的初始階段,我們將要構建一個邏輯回歸模型來預測,某個學生是否被大學錄取。 設想你是大學相關部分的管理者,想通過申請學生兩次測試的評分,來決定他們是否被錄取。 現(xiàn)在你擁有之前申請學生的可以用于訓練邏輯回歸的訓練樣本集。對于每一個訓練樣本,你有他們兩次測試的評分和最后是被錄取的結果。 python代碼實現(xiàn)(含詳細代碼注釋): import numpy as np import pandas as p

繼續(xù)訪問

新聞名稱:python構建似然函數(shù)的簡單介紹
分享網(wǎng)址:http://muchs.cn/article8/doedeip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、ChatGPT、標簽優(yōu)化軟件開發(fā)、靜態(tài)網(wǎng)站企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司