美文网首页
笔记3——经典机器学习,波斯顿房价问题

笔记3——经典机器学习,波斯顿房价问题

作者: Sara_d94e | 来源:发表于2020-07-20 11:36 被阅读0次

假设波斯顿房价问题是线性问题

loss函数和求导后函数

# define partial derivative

def partial_derivative_k(x, y, y_hat):

        n = len(y)

        gradient = 0

        for x_i, y_i, y_hat_i in zip(list(x),list(y),list(y_hat)):

        gradient += (y_i-y_hat_i) * x_i

        return -2/n * gradient

def partial_derivative_b(y, y_hat):

        n = len(y)

        gradient = 0

        for y_i, y_hat_i in zip(list(y),list(y_hat)):

                gradient += (y_i-y_hat_i)

return -2 / n * gradient

#initialized parameters

k = random.random() * 200 - 100  # -100 100 初始化k

b = random.random() * 200 - 100  # -100 100 初始化b

learning_rate = 1e-3 #初始化学习率

iteration_num = 200 # 循环学习200次

losses = []

for i in range(iteration_num):

    price_use_current_parameters = [price(r, k, b) for r in X_rm]  # \hat{y}

    current_loss = loss(y, price_use_current_parameters)

    losses.append(current_loss)

    print("Iteration {}, the loss is {}, parameters k is {} and b is {}".format(i,current_loss,k,b))

    k_gradient = partial_derivative_k(X_rm, y, price_use_current_parameters)

    b_gradient = partial_derivative_b(y, price_use_current_parameters)

    k = k + (-1 * k_gradient) * learning_rate

    b = b + (-1 * b_gradient) * learning_rate

best_k = k

best_b = b

将loss画图

plt.plot(list(range(iteration_num)),losses)

price_use_best_parameters = [price(r, best_k, best_b) for r in X_rm]

plt.scatter(X_rm,y)

plt.scatter(X_rm,price_use_current_parameters)

相关文章

网友评论

      本文标题:笔记3——经典机器学习,波斯顿房价问题

      本文链接:https://www.haomeiwen.com/subject/indekktx.html