ML04-局部加權線性回歸

本主題講述線性回歸的欠擬合問題:

  1. 怎么評估擬合效果

一. 回歸中的問題

??回歸一詞來自一種任務背景,測試孩子與父母身高的關系逻恐,如果父母身高比較高像吻,孩子身高也會比較高,但沒有父母的平均身高高复隆,更加趨向于人類平均身高拨匆,這就是身高回歸平均身高的一種現(xiàn)象,稱為回歸挽拂。

1. 擬合性問題

線性回歸中惭每,怎么判定訓練的模型的好壞呢?因為數(shù)據(jù)集本身的影響亏栈,一般會產(chǎn)生如下兩種情況:
??|-(1)欠擬合
??|-(2)過擬合
??
我們使用下面兩個數(shù)據(jù)集來建立直觀判定台腥,哪一種數(shù)據(jù)集會產(chǎn)生更好的擬合?
??|- 擬合好壞的判別標準绒北。

1.1. 數(shù)據(jù)集1
% matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

x_dat=np.loadtxt('ex2x.dat')
y_dat=np.loadtxt('ex2y.dat')

figure=plt.figure('數(shù)據(jù)集可視化',figsize=(6,4))
ax=figure.add_axes([0.1,0.1,0.8,0.8],xlabel='年齡',ylabel='身高')
ax.set_xlim(0,10)
ax.set_ylim(0,1.5)
ax.scatter(x_dat,y_dat,label='年齡身高數(shù)據(jù)集',marker='.',color=(0,0,1,1))
plt.show()
數(shù)據(jù)集1-年齡與身高

1.2. 數(shù)據(jù)集2

% matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

# 第一列用來做偏置項1的黎侈,真正的數(shù)據(jù)是第2列與第3列
data=np.loadtxt('ex0.txt')

figure=plt.figure('數(shù)據(jù)集可視化',figsize=(6,4))
ax=figure.add_axes([0.1,0.1,0.8,0.8],xlabel='年齡',ylabel='身高')
ax.set_xlim(-0.2,1.2)
ax.set_ylim(1,5.5)
ax.scatter(data[:,1],data[:,2],label='不知名數(shù)據(jù)集',marker='.',color=(1,0,0,1))
plt.show()
數(shù)據(jù)集2-采用正態(tài)分布手工構造的數(shù)據(jù)集
1.3. 相關系數(shù)

在數(shù)學上提供了一個專門的概念來描述這種數(shù)據(jù)集的擬合性:相關系數(shù)。
??|-相關系數(shù):用來度量兩個向量相關程度的量闷游。
??
相關系數(shù)的公式定義:
??|-r(X,Y) = \dfrac {Cov(X, Y)}{ \sqrt {Var(X) Var(Y) }}
??其中Cov(X,Y)表示X,Y的樣本協(xié)方差(無偏):Cov(X)=\dfrac {1} {N-1} \sum \limits _{i=1}^{N} ( X_i - \bar {X} )( Y_i - \bar { Y} )
??其中Var(X)表示向量X的樣本方差(無偏方差):Var(X)=\dfrac {1} {N-1} \sum \limits _{i=1}^{N} {( X_i - \bar {X} )}^2
????|-其中\bar{X}表示樣本均值:\bar{X}=\dfrac {1} {N} \sum \limits _{i=1}^{N} X_i

1.4. 練習作業(yè)
  1. 實現(xiàn)協(xié)方差峻汉,方差與均值贴汪;
  2. 調用numpy中協(xié)方差,方差與均值函數(shù)休吠;
  3. 對比自己實現(xiàn)的計算結果與numpy的計算結果扳埂;
  4. 理解總體方差(有偏)與樣本方差(無偏)的區(qū)別
1.5. 數(shù)據(jù)集相關性評估

下面對上面兩個數(shù)據(jù)集,計算他們的相關系數(shù)瘤礁。
??|- 計算預測輸出值與真實值之間的相關系數(shù)阳懂,從而可以判定數(shù)據(jù)集的擬合性好壞。

  1. 數(shù)據(jù)集1的相關系數(shù)計算(sklearn實現(xiàn))
% matplotlib inline
import matplotlib.pyplot as plt
from sklearn.linear_model import *
import numpy as np

X_DATA = np.loadtxt('ex2x.dat')
Y_DATA = np.loadtxt('ex2y.dat')
regression=LinearRegression()
X_DATA=X_DATA.reshape(-1, 1)
Y_DATA=Y_DATA.reshape(-1, 1)
regression.fit(X_DATA, Y_DATA)

#  預測輸出
Y=regression.predict(X_DATA)
#print(Y)
print(Y.shape)
print(Y_DATA.shape)
# 判定Y_DATA與Y的相關程度

# 必須確保是行向量
cor=np.corrcoef(Y.T,Y_DATA.T)
print(cor)

# 可視化
figure=plt.figure('數(shù)據(jù)集可視化',figsize=(6,4))
ax=figure.add_axes([0.1,0.1,0.8,0.8],xlabel='年齡',ylabel='身高')
ax.set_xlim(0,10)
ax.set_ylim(0,1.5)
ax.scatter(X_DATA,Y_DATA,label='年齡身高數(shù)據(jù)集',marker='.',color=(0,0,1,1))

ax.plot(X_DATA,Y,label='線性擬合',color='r',linewidth=3)
ax.legend()

plt.show()
(50, 1)
(50, 1)
[[1.         0.92631702]
 [0.92631702 1.        ]]
數(shù)據(jù)集1-的線性回歸效果蔚携,相關系數(shù):0.92631702

??上面的相關系數(shù)的說明:
????|-在對角線上是自己與自己的關聯(lián)系數(shù)希太;
??????|-對角線上第一個1是Y與自己的相關系數(shù);
??????|-對角線第二個1是Y\_DATA與自己的相關系數(shù)酝蜒;
????|-反對角線上的兩個數(shù)是YY\_DATAY\_DATAY的相關性系數(shù)矾湃。
??
??自己與自己的相關系數(shù)是最好的亡脑,就是1。完全不相關的的就是0邀跃,等于協(xié)方差完全無關霉咨。

  1. 數(shù)據(jù)集2的相關系數(shù)計算(sklearn實現(xiàn))
% matplotlib inline
import matplotlib.pyplot as plt
from sklearn.linear_model import *
import numpy as np

data=np.loadtxt('ex0.txt')
X_DATA=data[:,1]
Y_DATA=data[:,2]
regression=LinearRegression()
X_DATA=X_DATA.reshape(-1, 1)
Y_DATA=Y_DATA.reshape(-1, 1)
regression.fit(X_DATA, Y_DATA)

#  預測輸出
Y=regression.predict(X_DATA)
#print(Y)
print(Y.shape)
print(Y_DATA.shape)
# 判定Y_DATA與Y的相關程度

# 必須確保是行向量
cor=np.corrcoef(Y.T,Y_DATA.T)
print(cor)

# 可視化
figure=plt.figure('數(shù)據(jù)集可視化',figsize=(6,4))
ax=figure.add_axes([0.1,0.1,0.8,0.8],xlabel='年齡',ylabel='身高')
ax.set_xlim(-0.2,1.2)
ax.set_ylim(1,5.5)
ax.scatter(data[:,1],data[:,2],label='不知名數(shù)據(jù)集',marker='.',color=(1,0,0,1))
ax.plot(X_DATA,Y,label='線性擬合',color='b',linewidth=3)

ax.legend()
plt.show()
(200, 1)
(200, 1)
[[1.         0.98647356]
 [0.98647356 1.        ]]
數(shù)據(jù)集2的線性回歸效果,相關系數(shù):0.986473561

??從上面兩個數(shù)據(jù)集的直觀視覺與相關系數(shù)都看得出來,數(shù)據(jù)集2明顯具有較好的擬合效果拍屑。
??更好的擬合性表現(xiàn)在數(shù)據(jù)集樣本點盡可能在回歸(擬合)直線上途戒。

  1. 問題
    ??能否有好的方式提高數(shù)據(jù)的擬合性?這就可以解決樣本欠擬合的問題僵驰。

二喷斋、局部加權回歸算法

??局部加權回歸(Locally Weighted Linear Regression:LWLR)
??局部加權回歸是解決線性回歸欠擬合問題二提出的。
??解決問題的出發(fā)點是:線性回歸的最終核心是使均方差函數(shù)最兴廛睢(最小均方誤差)星爪,局部加權是引入加權的方式,降低均方誤差粉私,使得擬合性的度量結果更好顽腾。
??因為線性擬合中的均方差是無偏的,適當引入一些偏差诺核,可以有效降低均方差抄肖。

1. 局部加權模型

??W=(X^T\bar{W}X)^{-1}X^T\bar{W}y
??其中\bar{W}就是局部加權系數(shù)。
??
??其中加權系數(shù)的確定是一個麻煩的事情窖杀,該系數(shù)必須確保漓摩,預測樣本點離已知樣本越遠加權系數(shù)越小,預測樣本點離已知樣本越近加權系數(shù)越大陈瘦。如果大家還記得正態(tài)分布(高斯分布)函數(shù)的性質幌甘,如果在0點取值1潮售,在接近無窮遠點,取值0锅风。我們就利用正態(tài)分布這個特性酥诽,可以取\bar{W},其其他位置的元素都為0皱埠,對角線上的值為:
??\bar{W}(i,i)=exp(\dfrac{(x^{(i)}-x)^2}{-2{\sigma}^2})
??矩陣形式是:
??\bar{W}(i,i)=exp(\dfrac{(x^{(i)}-x)(x^{(i)}-x)^T}{-2{\sigma}^2})
??下面使用圖示的方式肮帐,來理解該系數(shù)在回歸訓練中控制訓練樣本參與訓練的作用與價值。

% matplotlib inline
import numpy as np
import matplotlib.pyplot as plt


# 圖形數(shù)據(jù)
sigma=1
x_0=0
x=np.linspace(-1,1,101,dtype=np.float32)
y_1=np.exp((x_0-x)**2/(-2.0*sigma*sigma))
sigma=0.5
y_05=np.exp((x_0-x)**2/(-2.0*sigma*sigma))
sigma=0.1
y_001=np.exp((x_0-x)**2/(-2.0*sigma*sigma))

# 坐標軸
figure=plt.figure('機器學習-回歸優(yōu)化',figsize=(6,4))
ax=figure.add_axes([0.1,0.1,0.8,0.8],label='高斯分布系數(shù)權重關系')
ax.set_xlim(-1,1)
ax.set_ylim(0,1)
# 圖形繪制
ax.plot(x,y_1,color=(1,0,0,1),label='$\sigma=1$')
ax.plot(x,y_05,color=(0,1,0,1),label='$\sigma=0.5$')
ax.plot(x,y_001,color=(0,0,1,1),label='$\sigma=0.01$')
ax.legend()
plt.show()

正態(tài)分布的值變化可以決定樣本參與線性回歸的權重大小

2. 局部加權實現(xiàn)

??因為是總體擬合性考慮边器,所以每個測試樣本對總體訓練樣本都有一個加權矩陣训枢,該測試樣本根據(jù)加權矩陣計算出對應的預測值。這樣預測值總體的擬合性就會更好點忘巧。

  1. 結構設計
import matplotlib.pyplot as plt
import numpy as np

# 求一個樣本的局部權重預測值(下面函數(shù)按照多維模式恒界,但只考慮1維情況)
class  LWLinearRegression:
    def __init__(self, sample_x, label_y, sigma=1.0):
        self.X=sample_x
        self.Y=label_y
    
    def train_one_sample(self, data):
        # data 測試樣本
        # 數(shù)據(jù)加權預測值
        # 數(shù)據(jù)格式化
        # 1. 計算局部加權矩陣
        # 2. 計算線性回歸系數(shù)矩陣
        # 3.計算預測值
        return [0.0]
        
    def train(self, datasets):
        Y=np.zeros(shape=(datasets.shape[0],1), dtype=np.float)
        # 循環(huán)計算預測值
        for idx in range(datasets.shape[0]):
            Y[idx]=self.train_one_sample(datasets[idx])
        return Y

# 數(shù)據(jù)初始化
data=np.loadtxt('ex0.txt')
X_DATA=data[:,1]
Y_DATA=data[:,2]
# 數(shù)據(jù)格式化
X=np.zeros(shape=(X_DATA.shape[0], 2), dtype=np.float) # 考慮偏置項,在測試特征加一維
Y=Y_DATA.reshape(Y_DATA.shape[0], 1)
X[:, 0]=X_DATA
X[:, 1]=1

lwlr=LWLinearRegression(X, Y)
predict=lwlr.train(X)
#print(predict)
  1. 實現(xiàn)
import matplotlib.pyplot as plt
import numpy as np

# 求一個樣本的局部權重預測值(下面函數(shù)按照多維模式砚嘴,但只考慮1維情況)
class  LWLinearRegression:
    def __init__(self, sample_x, label_y, sigma=1.0):
        self.X=sample_x
        self.Y=label_y
        self.sigma=sigma
    
    def train_one_sample(self, data):
        # data 測試樣本
        # 數(shù)據(jù)加權預測值
        # 數(shù)據(jù)格式化
        # 1. 計算局部加權矩陣
        local_weight=np.zeros(shape=(self.X.shape[0],self.X.shape[0]),dtype=np.float32)
        for idx in range(local_weight.shape[0]):
            # 求差
            diff=data-self.X[idx,:]
            # 求平方,然后除以sigma
            sqrt=np.matmul(diff,diff.T)/(-2.0*(self.sigma**2))
            # 計算局部加權矩陣的對角線
            local_weight[idx,idx]=np.exp(sqrt)
        # 2. 計算線性回歸系數(shù)矩陣
        # 這里應該先做一個奇異值判定(我們暫時不去判定十酣,等系統(tǒng)處理發(fā)生的異常)
        W=np.matmul(
                np.matmul(
                    np.matmul(
                        np.linalg.inv(
                            np.matmul(
                                np.matmul(
                                    self.X.T,
                                    local_weight
                                ),
                                self.X
                            )
                        ),
                        self.X.T
                    ),
                    local_weight
                ),
                self.Y
            )
        # 3.計算預測值
        out_value=np.matmul(data,W)
        return out_value
        
    def train(self, datasets):
        Y=np.zeros(shape=(datasets.shape[0],1), dtype=np.float)
        # 循環(huán)計算預測值
        for idx in range(datasets.shape[0]):
            Y[idx]=self.train_one_sample(datasets[idx])
        return Y

# 數(shù)據(jù)初始化
data=np.loadtxt('ex0.txt')
X_DATA=data[:,1]
Y_DATA=data[:,2]
# 數(shù)據(jù)格式化
X=np.zeros(shape=(X_DATA.shape[0], 2), dtype=np.float) # 考慮偏置項,在測試特征加一維
Y=Y_DATA.reshape(Y_DATA.shape[0], 1)
X[:, 0]=X_DATA
X[:, 1]=1

lwlr=LWLinearRegression(X, Y)
# 使用訓練集作為測試集
predict=lwlr.train(X)
#print(predict) 
  1. 擬合可視化
    ??通過可視化來觀察擬合效果际长;為了保證代碼的完整性耸采,我們把計算于可視化代碼放在一起。
import matplotlib.pyplot as plt
import numpy as np

# 求一個樣本的局部權重預測值(下面函數(shù)按照多維模式工育,但只考慮1維情況)
class  LWLinearRegression:
    def __init__(self, sample_x, label_y, sigma=1.0):
        self.X=sample_x
        self.Y=label_y
        self.sigma=sigma
    
    def train_one_sample(self, data):
        # data 測試樣本
        # 數(shù)據(jù)加權預測值
        # 數(shù)據(jù)格式化
        # 1. 計算局部加權矩陣
        local_weight=np.zeros(shape=(self.X.shape[0],self.X.shape[0]),dtype=np.float32)
        for idx in range(local_weight.shape[0]):
            # 求差
            diff=data-self.X[idx,:]
            # 求平方,然后除以sigma
            sqrt=np.matmul(diff,diff.T)/(-2.0*(self.sigma**2))
            # 計算局部加權矩陣的對角線
            local_weight[idx,idx]=np.exp(sqrt)
        # 2. 計算線性回歸系數(shù)矩陣
        # 這里應該先做一個奇異值判定(我們暫時不去判定虾宇,等系統(tǒng)處理發(fā)生的異常)
        W=np.matmul(
                np.matmul(
                    np.matmul(
                        np.linalg.inv(
                            np.matmul(
                                np.matmul(
                                    self.X.T,
                                    local_weight
                                ),
                                self.X
                            )
                        ),
                        self.X.T
                    ),
                    local_weight
                ),
                self.Y
            )
        # 3.計算預測值
        out_value=np.matmul(data,W)
        return out_value
        
    def train(self, datasets):
        Y=np.zeros(shape=(datasets.shape[0],1), dtype=np.float)
        # 循環(huán)計算預測值
        for idx in range(datasets.shape[0]):
            Y[idx]=self.train_one_sample(datasets[idx])
        return Y

# 數(shù)據(jù)初始化
data=np.loadtxt('ex0.txt')
X_DATA=data[:,1]
Y_DATA=data[:,2]
# 數(shù)據(jù)格式化
X=np.zeros(shape=(X_DATA.shape[0], 2), dtype=np.float) # 考慮偏置項,在測試特征加一維
Y=Y_DATA.reshape(Y_DATA.shape[0], 1)
X[:, 0]=X_DATA
X[:, 1]=1

sigma=0.003
lwlr=LWLinearRegression(X, Y,sigma)
# 使用訓練集作為測試集
predict=lwlr.train(X)
#print(predict) 


# 可視化
# 可視化
figure=plt.figure('數(shù)據(jù)集可視化',figsize=(6,4))
ax=figure.add_axes([0.1,0.1,0.8,0.8],xlabel='年齡',ylabel='身高')
ax.set_xlim(-0.2,1.2)
ax.set_ylim(1,5.5)
ax.scatter(X_DATA,Y_DATA,label='不知名數(shù)據(jù)集',marker='.',color=(1,0,0,1))

# 排序顯示
# 得到排序索引
sort_idx=X_DATA.argsort(0)
# 得到排序的結果
X_SORT=X_DATA[sort_idx]
Y_SORT=predict[sort_idx]
ax.plot(X_SORT,Y_SORT,label='線性擬合',color='b',linewidth=3)

ax.legend()
plt.show()
局部加權線性回歸的可視化效果如绸,相關系數(shù):0.99931945
  1. 擬合度量計算
    ??通過相關系數(shù)嘱朽,來判定擬合的效果;
import matplotlib.pyplot as plt
import numpy as np

# 求一個樣本的局部權重預測值(下面函數(shù)按照多維模式竭沫,但只考慮1維情況)
class  LWLinearRegression:
    def __init__(self, sample_x, label_y, sigma=1.0):
        self.X=sample_x
        self.Y=label_y
        self.sigma=sigma
    
    def train_one_sample(self, data):
        # data 測試樣本
        # 數(shù)據(jù)加權預測值
        # 數(shù)據(jù)格式化
        # 1. 計算局部加權矩陣
        local_weight=np.zeros(shape=(self.X.shape[0],self.X.shape[0]),dtype=np.float32)
        for idx in range(local_weight.shape[0]):
            # 求差
            diff=data-self.X[idx,:]
            # 求平方,然后除以sigma
            sqrt=np.matmul(diff,diff.T)/(-2.0*(self.sigma**2))
            # 計算局部加權矩陣的對角線
            local_weight[idx,idx]=np.exp(sqrt)
        # 2. 計算線性回歸系數(shù)矩陣
        # 這里應該先做一個奇異值判定(我們暫時不去判定燥翅,等系統(tǒng)處理發(fā)生的異常)
        W=np.matmul(
                np.matmul(
                    np.matmul(
                        np.linalg.inv(
                            np.matmul(
                                np.matmul(
                                    self.X.T,
                                    local_weight
                                ),
                                self.X
                            )
                        ),
                        self.X.T
                    ),
                    local_weight
                ),
                self.Y
            )
        # 3.計算預測值
        out_value=np.matmul(data,W)
        return out_value
        
    def train(self, datasets):
        Y=np.zeros(shape=(datasets.shape[0],1), dtype=np.float)
        # 循環(huán)計算預測值
        for idx in range(datasets.shape[0]):
            Y[idx]=self.train_one_sample(datasets[idx])
        return Y

# 數(shù)據(jù)初始化
data=np.loadtxt('ex0.txt')
X_DATA=data[:,1]
Y_DATA=data[:,2]
# 數(shù)據(jù)格式化
X=np.zeros(shape=(X_DATA.shape[0], 2), dtype=np.float) # 考慮偏置項,在測試特征加一維
Y=Y_DATA.reshape(Y_DATA.shape[0], 1)
X[:, 0]=X_DATA
X[:, 1]=1

sigma=0.003
lwlr=LWLinearRegression(X, Y,sigma)
# 使用訓練集作為測試集
predict=lwlr.train(X)
#print(predict) 

cor=np.corrcoef(predict.T,Y.T)
print(cor)
[[1.         0.99931945]
 [0.99931945 1.        ]]

??從相關系數(shù)來看蜕提,擬合的效果應該是非常的好了森书!
??但是該代碼中,還是可能存在矩陣奇異問題谎势。當取其中sigma參數(shù)為很小的時候凛膏,由于參與訓練的樣本減少,矩陣出現(xiàn)奇異的可能性非常大脏榆。


??奇異值問題的解決留待下一個主題講解猖毫。
??本主題中故意采用了ndarray的向量形式。如果使用標準的矩陣運算须喂,則在格式化上面會簡單很多吁断,因為矩陣(np.matrix)支持*這樣的內積運算符號趁蕊。就不用使用matmul這樣的函數(shù)運算。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末仔役,一起剝皮案震驚了整個濱河市掷伙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌又兵,老刑警劉巖任柜,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沛厨,居然都是意外死亡宙地,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門逆皮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宅粥,“玉大人,你說我怎么就攤上這事电谣〈饪瑁” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵辰企,是天一觀的道長。 經(jīng)常有香客問我况鸣,道長牢贸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任镐捧,我火速辦了婚禮潜索,結果婚禮上,老公的妹妹穿的比我還像新娘懂酱。我一直安慰自己竹习,他們只是感情好,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布列牺。 她就那樣靜靜地躺著整陌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞎领。 梳的紋絲不亂的頭發(fā)上泌辫,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音九默,去河邊找鬼震放。 笑死,一個胖子當著我的面吹牛驼修,可吹牛的內容都是我干的殿遂。 我是一名探鬼主播诈铛,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼墨礁!你這毒婦竟也來了幢竹?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤饵溅,失蹤者是張志新(化名)和其女友劉穎妨退,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜕企,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡咬荷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了轻掩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幸乒。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖唇牧,靈堂內的尸體忽然破棺而出罕扎,到底是詐尸還是另有隱情,我是刑警寧澤丐重,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布腔召,位于F島的核電站,受9級特大地震影響扮惦,放射性物質發(fā)生泄漏臀蛛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一崖蜜、第九天 我趴在偏房一處隱蔽的房頂上張望浊仆。 院中可真熱鬧,春花似錦豫领、人聲如沸抡柿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洲劣。三九已至,卻和暖如春鼠锈,著一層夾襖步出監(jiān)牢的瞬間闪檬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工购笆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留粗悯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓同欠,卻偏偏與公主長得像样傍,于是被迫代替她去往敵國和親横缔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容

  • 機器學習是做NLP和計算機視覺這類應用算法的基礎衫哥,雖然現(xiàn)在深度學習模型大行其道茎刚,但是懂一些傳統(tǒng)算法的原理和它們之間...
    在河之簡閱讀 20,507評論 4 65
  • 回歸是監(jiān)督方法的延續(xù),而回歸與分類不同撤逢,在于其目標變量是連續(xù)數(shù)值膛锭。 8.1 用線性回歸找到最佳擬合直線 回歸的目的...
    1597830b3381閱讀 1,944評論 0 4
  • 以西瓜書為主線,以其他書籍作為參考進行補充蚊荣,例如《統(tǒng)計學習方法》初狰,《PRML》等 第一章 緒論 1.2 基本術語 ...
    danielAck閱讀 4,519評論 0 6
  • 寫在前面: 電子商務經(jīng)過了幾年的發(fā)展已經(jīng)逐漸成熟,并且已經(jīng)發(fā)展出了自己的模式和風格互例。但是對于電商的設計風格大多數(shù)人...
    藍湖產(chǎn)品設計協(xié)作閱讀 2,807評論 2 83
  • 8月7日清晨被陽光明媚的布達佩斯喚醒奢入,安靜的街道、悅耳的鳥鳴令人愜意媳叨。一早免費車場停好白色座駕腥光,體會地鐵公交的一天...
    toutou3199閱讀 462評論 0 0