【机器学习】function regularized_cost at 0x000001E9244B5A60>报错

项目场景:

在进行机器学习代码练习时,出现了<function regularized_cost at 0x000001E9244B5A60>报错


问题描述

print 输出 regularized_cost 函数内存地址,而不是函数返回值


原因分析:

import numpy as np

import matplotlib.pyplot as plt

from scipy.io import loadmat

from scipy.optimize import minimize

data = loadmat('ex5data1.mat')

# 训练集

X_train, y_train = data['X'], data['y']  # (12,1) (12,1)

# 测试集

X_test, y_test = data['Xtest'], data['ytest']  # (21,1) (21,1)

# 验证集

X_val, y_val = data['Xval'], data['yval']  # (21,1) (21,1)

X_train = np.insert(X_train, 0, 1, axis=1)  # (12,2) (12,1)

X_test = np.insert(X_test, 0, 1, axis=1)  # (21,2) (21,1)

X_val = np.insert(X_val, 0, 1, axis=1)  # (21,2) (21,1)


 

def regularized_cost(theta, X, y, lamda):

    '''

    # X:m*n (12,1)  

    Y:n*1--n  y需要是一维数组 (12,)

    theta:n  维度是训练集x的维度(n,)

    '''

    first = np.sum(np.power((X @ theta - y.flatten()), 2))

    # thrta第一项不参与正则化

    reg = theta[1:] @ theta[1:] * lamda

    reg_cost = (first + reg) / (2 * len(X))

    return reg_cost

theta = np.ones(X_train.shape[1])

lamda = 1

# 输出 regularized_cost 函数内存地址

regularized_cost(theta, X_train, y_train, lamda)

print('regularized_cost', regularized_cost)

我使用的是vscode 环境,而参考代码是pycharm平台,vacode 与pycharm语法规则不同


解决方案:

reg_cost = regularized_cost(theta, X_train, y_train, lamda)

print('reg_cost', reg_cost)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值