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

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

如何根據(jù)構(gòu)造函數(shù)參數(shù)創(chuàng)建具有類屬性的子類,以便在 GridSearchCV 估計(jì)器中使用?

如何根據(jù)構(gòu)造函數(shù)參數(shù)創(chuàng)建具有類屬性的子類,以便在 GridSearchCV 估計(jì)器中使用?

白衣染霜花 2024-01-15 17:07:51
我想子類化sklearn.svm.LinearSVC并將其用作 的估計(jì)器sklearn.model_selection.GridSearchCV。我之前在子類化方面遇到了一些問題,我認(rèn)為我根據(jù)我之前的帖子和所選答案修復(fù)了它。然而,現(xiàn)在我的目標(biāo)是創(chuàng)建一個(gè)sklearn.kernel_approximation.RBFSampler對(duì)象作為我的新類的屬性?,F(xiàn)在這是一個(gè)例子,我有一個(gè)更廣泛的問題:?jiǎn)栴}: 最終期望將我的新估計(jì)器類與 一起使用GridSearchCV,如何根據(jù)傳遞到構(gòu)造函數(shù)的參數(shù)值(或缺少參數(shù)值)創(chuàng)建屬性?然而,正如我在這里了解到的,GridSearchCV 首先使用默認(rèn)值啟動(dòng)估計(jì)器對(duì)象,并且與feature_importances_中的屬性具有類似的實(shí)現(xiàn)sklearn.tree.DecisionTreeClassifier。另外,我從上面的代碼中得到的錯(cuò)誤是:---------------------------------------------------------------------------NameError                                 Traceback (most recent call last)<ipython-input-6-a11420cc931e> in <module>     66                       'sampler_n': [10, 200]}     67 ---> 68     gs_model = GridSearchCV(estimator=LinearSVCSub(), verbose=1, param_grid=param_grid,     69                             scoring='roc_auc', n_jobs=-1, cv=2)     70     gs_model.fit(X, y)<ipython-input-6-a11420cc931e> in __init__(self, penalty, loss, sampler_gamma, sampler_n, dual, tol, C, multi_class, fit_intercept, intercept_scaling, class_weight, verbose, random_state, max_iter)     21         self.sampler_n = sampler_n     22 ---> 23         self.sampler = create_sampler()     24      25 NameError: name 'create_sampler' is not defined
查看完整描述

1 回答

?
阿波羅的戰(zhàn)車

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

使用__init__構(gòu)造函數(shù)作為存儲(chǔ)屬性的容器。

在方法中執(zhí)行所有相應(yīng)的邏輯

from sklearn.datasets import make_classification

from sklearn.svm import LinearSVC

from sklearn.model_selection import GridSearchCV

from sklearn.kernel_approximation import RBFSampler

from sklearn.datasets import load_breast_cancer


RANDOM_STATE = 123



class LinearSVCSub(LinearSVC):

    

    def __init__(self, penalty='l2', loss='squared_hinge', sampler_gamma=None, sampler_n=None,

                 dual=True, tol=0.0001, C=1.0, multi_class='ovr', fit_intercept=True, intercept_scaling=1,

                 class_weight=None, verbose=0, random_state=None, max_iter=1000, sampler=None):


        super(LinearSVCSub, self).__init__(penalty=penalty, loss=loss, dual=dual, tol=tol,

                                           C=C, multi_class=multi_class, fit_intercept=fit_intercept,

                                           intercept_scaling=intercept_scaling, class_weight=class_weight,

                                           verbose=verbose, random_state=random_state, max_iter=max_iter)


        self.sampler_gamma = sampler_gamma

        self.sampler_n = sampler_n

        self.sampler = sampler

       

    def fit(self, X, y, sample_weight=None):

        X = self.transform_this(X)

        super(LinearSVCSub, self).fit(X, y, sample_weight)

        return self


    def predict(self, X):

        X = self.transform_this(X)

        return super(LinearSVCSub, self).predict(X)


    def score(self, X, y, sample_weight=None):

        X = self.transform_this(X)

        return super(LinearSVCSub, self).score(X, y, sample_weight)


    def decision_function(self, X):

        X = self.transform_this(X)

        return super(LinearSVCSub, self).decision_function(X)


    def transform_this(self, X):

        if self.sampler:

            X = RBFSampler(gamma=self.sampler_gamma, n_components=self.sampler_n).fit_transform(X)

        return X




data = load_breast_cancer()

X, y = data.data, data.target


# Parameter tuning with custom LinearSVC

param_grid = {'C': [0.00001, 0.0005],

                  'dual': (True, False), 'random_state': [RANDOM_STATE],

                  'sampler_gamma': [0.90, 0.60, 0.30],

                  'sampler_n': [10, 200],

                  'sampler':[0,1]

             }


gs_model = GridSearchCV(estimator=LinearSVCSub(sampler=1), verbose=1, param_grid=param_grid,

                        scoring='roc_auc', n_jobs=-1, cv=2)

gs_model.fit(X, y)

gs_model.cv_results_



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

添加回答

舉報(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)