自己定义的类无法在GridSearchCV中使用解决办法

主要是在类中添加两个函数: get_params 以及set_params以下示例是线性回归的代码:还要注意的是在对数据进行操作时在fit()函数中以及在predict()函数中都要使用深度拷贝的方式class LinearRegression(): def __init__(self, num_iters=2000, alpha=0.00...
摘要由CSDN通过智能技术生成

主要是在类中添加两个函数:

              get_params  以及set_params

以下示例是线性回归的代码:

还要注意的是在对数据进行操作时在fit()函数中以及在predict()函数中都要使用深度拷贝的方式

class LinearRegression():


    def __init__(self, num_iters=2000, alpha=0.001):
        self.num_iters = num_iters
        self.alpha = alpha

    def compute_cost(self, X, y, w):
        #计算代价函数
        m = X.shape[0]
        J = (1 / (2 * m)) * np.sum((np.dot(X, w) - y) ** 2)
        return J

    def gradient_descent(self, X, y, w, num_iters, alpha):
       #计算梯度
        m = X.shape[0]
        #记录损失值
        J_all = np.zeros((num_iters, 1))

        #开始迭代
        for i in range(num_iters):
            
            J_all[i] = self.compute_cost(X, y, w) #计算loss 代价函数
            #更新w
            w = w - ((alpha / m) * np.dot(X.T, (X.dot(w) - y[:, np.newaxis])))

        return w, J_all

    def fit(self, Xn, yn):
        #训练模型 
        X=np.copy(Xn)
        
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GridSearchCV是一个用于超参数调优的工具,它可以帮助我们自动地搜索最佳超参数的组合。在使用GridSearchCV进行模型训练时,我们可以通过设置参数scoring来选择模型评估方法,其可以选择使用混淆矩阵进行评估。 下面是一个使用GridSearchCV和混淆矩阵进行模型训练和评估的示例代码: ```python from sklearn.metrics import confusion_matrix from sklearn.model_selection import GridSearchCV from sklearn.svm import SVC from sklearn.datasets import load_digits # 加载手写数字数据集 digits = load_digits() # 定义SVC模型和超参数搜索范围 svc = SVC() param_grid = { 'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf'] } # 定义混淆矩阵打印函数 def print_confusion_matrix(y_true, y_pred): cm = confusion_matrix(y_true, y_pred) print('Confusion matrix:\n{}'.format(cm)) # 使用GridSearchCV进行模型训练和超参数搜索 grid_search = GridSearchCV(svc, param_grid=param_grid, scoring='accuracy', cv=5) grid_search.fit(digits.data, digits.target) # 打印最佳超参数和最佳得分 print('Best parameters: {}'.format(grid_search.best_params_)) print('Best score: {:.2f}'.format(grid_search.best_score_)) # 计算测试集上的预测结果并打印混淆矩阵 y_pred = grid_search.predict(digits.data) print_confusion_matrix(digits.target, y_pred) ``` 在上述示例代码,我们首先加载手写数字数据集,然后定义了一个SVC模型和超参数搜索范围。接着,我们定义了一个打印混淆矩阵的函数print_confusion_matrix。 然后,我们使用GridSearchCV进行模型训练和超参数搜索,其设置了参数scoring为'accuracy'来进行模型评估。最后,我们使用训练好的模型对测试集进行预测,并调用print_confusion_matrix函数来打印测试集上的混淆矩阵。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值