• 大小: 2KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Python
  • 标签:

资源简介

#多元线性回归预测房子的价格,构建一个房子价格的python模型。 ##ex1data2.txt中包含了房子价格的训练组。第一列是房子的尺寸(平方英尺),第二列是卧室的数量,第三列是房子的价格。

资源截图

代码片段和文件信息

##多元线性回归预测房子的价格,构建一个房子价格的模型。
##ex1data2.txt中包含了房子价格的训练组。第一列是房子的尺寸(平方英尺),第二列是卧室的数量,第三列是房子的价格。
#-*- coding: UTF-8 -*-

import random
import numpy as np
import matplotlib.pyplot as plt

#加载数据
def load_exdata(filename):
    data = []
    with open(filename ‘r‘) as f:
        for line in f.readlines():
            line = line.split(‘‘)
            current = [int(item) for item in line] #根据数据输入的不同确定是int 还是其他类型
            #5.52779.1302
            data.append(current)
    return data

data = load_exdata(‘ex1data2.txt‘);
data = np.array(datanp.int64)      #根据数据输入的不同确定是int 还是其他类型


#特征缩放
def featureNormalize(X):
    X_norm = X;
    mu = np.zeros((1X.shape[1]))
    sigma = np.zeros((1X.shape[1]))
    for i in range(X.shape[1]):
        mu[0i] = np.mean(X[:i]) # 均值
        sigma[0i] = np.std(X[:i])     # 标准差
#     print(mu)
#     print(sigma)
    X_norm  = (X - mu) / sigma
    return X_normmusigma
 
#计算损失
def computeCost(X y theta):
    m = y.shape[0]
#     J = (np.sum((X.dot(theta) - y)**2)) / (2*m)
    C = X.dot(theta) - y
    J2 = (C.T.dot(C))/ (2*m)
    return J2
 
#梯度下降
def gradientDescent(X y theta alpha num_iters):
    m = y.shape[0]
    #print(m)
    # 存储历史误差
    J_history = np.zeros((num_iters 1))
    for iter in range(num_iters):
        # 对J求导,得到 alpha/m * (WX - Y)*x(i), (3m)*(m1)  X (m3)*(31) = (m1)
        theta = theta - (alpha/m) * (X.T.dot(X.dot(theta) - y))
        J_history[iter] = computeCost(X y theta)
    return J_historytheta
     
 
iterations = 10000  #迭代次数
alpha = 0.01    #学习率
x = data[:(01)].reshape((-12))
y = data[:2].reshape((-11))
m = y.shape[0]
xmusigma = featureNormalize(x)
X = np.hstack([xnp.ones((x.shape[0] 1))])
# X = X[range(2):]
# y = y[range(2):]
 
theta = np.zeros((3 1))
 
j = computeCost(Xytheta)
J_historytheta = gradientDescent(X y theta alpha iterations)
 
 
print(‘Theta found by gradient descent‘theta)

def predict(data):
    testx = np.array(data)
    testx = ((testx - mu) / sigma)
    testx = np.hstack([testxnp.ones((testx.shape[0] 1))])
    price = testx.dot(theta)
    print(‘price is %d ‘ % (price))
 
predict([16503])

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2527  2018-09-26 10:01  多元线性回归预测房价算法实现.py
     文件         657  2017-03-14 09:40  ex1data2.txt

评论

共有 条评论

相关资源