写入typeerror时:“float”和“str”的操作数类型不受支持

2024-04-26 13:54:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的Python。什么时候我想建立一个线性回归模型关于一个excel文件,代码有一些问题,不能快跑。什么我应该解决它吗?你知道吗

def linear_regression_by_gd(X, Y, gamma=0.000001, eps=0.0001, max_iter=100): 
    pre_w = np.array(np.ones((X.shape[1], 1)))
    cur_w = np.array(np.zeros((X.shape[1], 1)))
    count = 1
    while (cur_w - pre_w).T.dot(cur_w - pre_w) > eps and count < max_iter:
        pre_w = cur_w
        cur_w = cur_w - np.array(gamma / np.sqrt(count) * X.T.dot(X.dot(cur_w) - Y))
        count += 1
    return cur_w

w = linear_regression_by_gd(x_train, y_train)

以下是完整的错误信息:

   Traceback (most recent call last):
      File "D:\JetBrains\untitled\a\venv\lib\site-packages\pandas\core\ops.py", line 2001, in na_op
        result = expressions.evaluate(op, str_rep, x, y, **eval_kwargs)
      File "D:\JetBrains\untitled\a\venv\lib\site-packages\pandas\core\computation\expressions.py", line 208, in evaluate
        return _evaluate(op, op_str, a, b, **eval_kwargs)
      File "D:\JetBrains\untitled\a\venv\lib\site-packages\pandas\core\computation\expressions.py", line 68, in _evaluate_standard
        return op(a, b)
    TypeError: unsupported operand type(s) for -: 'float' and 'str'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "D:/JetBrains/untitled/a/b.py", line 60, in <module>
        w = linear_regression_by_gd(x_train, y_train)
      File "D:/JetBrains/untitled/a/b.py", line 56, in linear_regression_by_gd
        cur_w = cur_w -np.array(gamma / np.sqrt(count) * X.T.dot(( X.dot(cur_w)) - (Y)))
      File "D:\JetBrains\untitled\a\venv\lib\site-packages\pandas\core\ops.py", line 2023, in f
        return self._combine_frame(other, pass_op, fill_value, level)
      File "D:\JetBrains\untitled\a\venv\lib\site-packages\pandas\core\frame.py", line 5090, in _combine_frame
        result = _arith_op(this.values, other.values)
      File "D:\JetBrains\untitled\a\venv\lib\site-packages\pandas\core\frame.py", line 5084, in _arith_op
        return func(left, right)
      File "D:\JetBrains\untitled\a\venv\lib\site-packages\pandas\core\ops.py", line 2003, in na_op
        result = masked_arith_op(x, y, op)
      File "D:\JetBrains\untitled\a\venv\lib\site-packages\pandas\core\ops.py", line 1009, in masked_arith_op
        com.values_from_object(yrav[mask]))
    TypeError: unsupported operand type(s) for -: 'float' and 'str'

Tags: inpycorepandasvenvlibpackagesnp