第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

多次擬合同一個(gè) SVM 模型后得到略有不同的 SVM 模型

多次擬合同一個(gè) SVM 模型后得到略有不同的 SVM 模型

阿晨1998 2021-12-08 10:23:20
我正在做數(shù)據(jù)挖掘作業(yè),我想通過投票應(yīng)用一些集成學(xué)習(xí)。因此,我希望我可以通過一個(gè)一個(gè)地創(chuàng)建它們來獲得多個(gè)略有不同的 SVM 模型的副本,因?yàn)槲铱梢栽?RNN 模型上做同樣的事情。 但是,我發(fā)現(xiàn),例如,在擬合 SVM 30 次后,我得到了 30 個(gè)相同的模型,而在擬合 RNN 模型后,我可以得到 30 個(gè)略有不同的 RNN 模型。你能建議任何方法在 SVM 中做同樣的事情嗎?非常感謝!
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

SVM:最大邊距分類器

每次得到相同的 SVM 模型的原因是因?yàn)?SVM 是最大邊距分類器,或者換句話說,它們最大化分離 +ve 和 -ve 類的邊距。因此,無論您運(yùn)行它的任何隨機(jī)狀態(tài)如何,它最終都會(huì)找到與 +ve 類和 -ve 類的邊距最大的超平面。


其他非最大邊際分類器(例如簡(jiǎn)單的感知器)試圖最小化損失,您可以將簡(jiǎn)單損失視為錯(cuò)誤分類的數(shù)據(jù)點(diǎn)數(shù)量。我們通常使用其他類型的(可微分的)損失函數(shù),它們對(duì)應(yīng)于模型預(yù)測(cè)的可信度。


例子

感知器

X = np.r_[np.random.randn(10, 2) - [2, 2], np.random.randn(10, 2) + [2, 2]]

y = [0] * 10 + [1] * 10


def plot_it(clf, X):     

    x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5

    y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5

    xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.1),

                         np.arange(y_min, y_max, 0.1))


    Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])


    Z = Z.reshape(xx.shape)

    plt.contourf(xx, yy, Z, cmap=plt.cm.RdBu, alpha=.8)    

    plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)

    plt.xticks([])

    plt.yticks([])



plt.close('all')

plt.figure()

seeds = [0,10,20,30,40,50]

for i in range(1,7):

    plt.subplot(2,3,i)    

    clf = Perceptron(random_state=seeds[i-1])

    clf.fit(X,y)    

    plot_it(clf, X)    

plt.tight_layout()

plt.show()

http://img1.sycdn.imooc.com//61b017480001c68005900388.jpg

上圖顯示了具有不同種子(初始化)的感知器識(shí)別的決策邊界。正如您所看到的,所有模型都正確地對(duì)數(shù)據(jù)點(diǎn)進(jìn)行了分類,但哪個(gè)模型最好?當(dāng)然,這對(duì)看不見的數(shù)據(jù)進(jìn)行了概括,這將是在決策邊界周圍具有足夠余量以覆蓋看不見的數(shù)據(jù)的數(shù)據(jù)。這就是 SVM 過度救援的地方。


支持向量機(jī)

plt.close('all')

plt.figure()

seeds = [0,10,20,30,40,50]

for i in range(1,7):

    plt.subplot(2,3,i)    

    clf = LinearSVC(random_state=seeds[i-1])

    clf.fit(X,y)    

    plot_it(clf, X)    

plt.tight_layout()  

plt.show()

http://img1.sycdn.imooc.com//61b01754000108bd05880385.jpg

正如您所看到的,無論隨機(jī)種子如何,SVM 始終返回相同的決策邊界,即最大化邊際的決策邊界。


使用 RNN,您每次都會(huì)得到不同的模型,因?yàn)?RNN 不是最大邊距分類器。此外,RNN 收斂標(biāo)準(zhǔn)是手動(dòng)的,即我們決定何時(shí)停止訓(xùn)練過程,如果我們決定在固定數(shù)量的時(shí)期運(yùn)行它,那么根據(jù)權(quán)重初始化,模型的最終權(quán)重會(huì)有所不同。


LSTM

import torch

from torch import nn

from torch import optim


def plot_rnn(lstm, X):     

    x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5

    y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5

    xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.1),

                         np.arange(y_min, y_max, 0.1))


    p = np.c_[xx.ravel(), yy.ravel()]

    xt = torch.FloatTensor(p.reshape(-1,1,2).transpose(1, 0, 2))


    s = nn.Sigmoid()

    Z,_ = lstm(xt)

    Z = s(Z.view(len(p)))


    Z = Z.detach().numpy().reshape(xx.shape)

    plt.contourf(xx, yy, Z, cmap=plt.cm.RdBu, alpha=.8)    

    plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)

    plt.xticks([])

    plt.yticks([])


def train(X, y):

    batch_size = 20

    input_size = 2

    time_steps = 1

    output_size = 1


    xt = torch.FloatTensor(X.reshape(batch_size,time_steps,input_size).transpose(1, 0, 2))

    yt = torch.FloatTensor(y)


    lstm = nn.LSTM(input_size, output_size, 1)

    s = nn.Sigmoid()

    loss_function = nn.BCELoss()

    optimizer = optim.SGD(lstm.parameters(), lr=0.05)


    for i in range(1000):

        lstm.zero_grad()

        y_hat,_ = lstm(xt)

        y_hat = y_hat.view(20)

        y_hat = s(y_hat)

        loss = loss_function(y_hat, yt)

        loss.backward()

        optimizer.step()

        #print (loss.data)

    return lstm


plt.close('all')

plt.figure()

for i in range(1,7):

    plt.subplot(2,3,i)    

    clf = train(X,y)    

    plot_rnn(clf, X)    


plt.tight_layout()

plt.show()

http://img1.sycdn.imooc.com//61b017620001784c05880388.jpg

查看完整回答
反對(duì) 回復(fù) 2021-12-08
  • 1 回答
  • 0 關(guān)注
  • 342 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)