机器学习(11)线性回归(2)实战 -- 正规方程优化、梯度下降优化(波士顿房价预测)

 

目录

 一、波士顿房价预测(正规方程优化)

 API

1、获取数据集

2、划分数据集

3、标准化

4、 创建预估器,得到模型

5、模型评估(均方差评估)

 代码

二、波士顿房价预测(正规方程优化)

 API

 代码

 总代码


 一、波士顿房价预测(正规方程优化)

 API

sklearn.linear_model.LinearRegression

1、获取数据集

# 1、获取数据集
    boston = load_boston()

 

2、划分数据集

# 2、划分数据集
    train_data, test_data, train_target, test_target = train_test_split(boston.data, boston.target, random_state=22)

3、标准化

# 3、标准化
    transfer = StandardScaler()
    train_data = transfer.fit_transform(train_data)
    test_data = transfer.transform(test_data)

4、 创建预估器,得到模型

# 4、创建预估器,得到模型
    estimator = LinearRegression()              #正规方程优化
    estimator.fit(train_data, train_target)     #训练
# show
    print('正规方程 权重系数:', estimator.coef_)
    print('正规方程 偏置:', estimator.intercept_)

 

5、模型评估(均方差评估)

通过求均方差的方式对得到的模型进行评估,均方差较小的模型效果更好

# 5、模型评估
    predict = estimator.predict(test_data)
    error = mean_squared_error(test_target, predict)
    print('正规方程 均方差:', error)

 

 

 代码

# 1、正规方程优化
def Linear1():
    # 1、获取数据集
    boston = load_boston()
    # print(boston)

    # 2、划分数据集
    train_data, test_data, train_target, test_target = train_test_split(boston.data, boston.target, random_state=22)
    # print(train_data)

    # 3、标准化
    transfer = StandardScaler()
    train_data = transfer.fit_transform(train_data)
    test_data = transfer.transform(test_data)
    # print(train_data)

    # 4、创建预估器,得到模型
    estimator = LinearRegression()              #正规方程优化
    estimator.fit(train_data, train_target)     #训练

    # show
    print('正规方程 权重系数:', estimator.coef_)
    print('正规方程 偏置:', estimator.intercept_)

    # 5、模型评估
    predict = estimator.predict(test_data)
    error = mean_squared_error(test_target, predict)
    print('正规方程 均方差:', error)

二、波士顿房价预测(正规方程优化)

 API

sklearn.linear_model.SGDRegressor

过程和上面类似。 

 

 代码

# 2、梯度下降优化
def Linear2():
    # 1、获取数据集
    boston = load_boston()
    # print(boston)

    # 2、划分数据集
    train_data, test_data, train_target, test_target = train_test_split(boston.data, boston.target, random_state=22)
    # print(train_data)

    # 3、标准化
    transfer = StandardScaler()
    train_data = transfer.fit_transform(train_data)
    test_data = transfer.transform(test_data)
    # print(train_data)

    # 4、创建预估器
    estimator = SGDRegressor()                  #梯度下降优化
    estimator.fit(train_data, train_target)     #训练

    # 得到模型
    print('梯度下降 权重系数:', estimator.coef_)
    print('梯度下降 偏置:', estimator.intercept_)

    # 5、模型评估
    predict = estimator.predict(test_data)
    error = mean_squared_error(test_target, predict)
    print('梯度下降 均方差:', error)

 总代码

# 线性回归:波士顿房价预测(正规方程,梯度下降)
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression,SGDRegressor
from sklearn.metrics import mean_squared_error

# 1、正规方程优化
def Linear1():
    # 1、获取数据集
    boston = load_boston()
    # print(boston)

    # 2、划分数据集
    train_data, test_data, train_target, test_target = train_test_split(boston.data, boston.target, random_state=22)
    # print(train_data)

    # 3、标准化
    transfer = StandardScaler()
    train_data = transfer.fit_transform(train_data)
    test_data = transfer.transform(test_data)
    # print(train_data)

    # 4、创建预估器,得到模型
    estimator = LinearRegression()              #正规方程优化
    estimator.fit(train_data, train_target)     #训练

    # show
    print('正规方程 权重系数:', estimator.coef_)
    print('正规方程 偏置:', estimator.intercept_)

    # 5、模型评估
    predict = estimator.predict(test_data)
    error = mean_squared_error(test_target, predict)
    print('正规方程 均方差:', error)


# 2、梯度下降优化
def Linear2():
    # 1、获取数据集
    boston = load_boston()
    # print(boston)

    # 2、划分数据集
    train_data, test_data, train_target, test_target = train_test_split(boston.data, boston.target, random_state=22)
    # print(train_data)

    # 3、标准化
    transfer = StandardScaler()
    train_data = transfer.fit_transform(train_data)
    test_data = transfer.transform(test_data)
    # print(train_data)

    # 4、创建预估器
    estimator = SGDRegressor()                  #梯度下降优化
    estimator.fit(train_data, train_target)     #训练

    # 得到模型
    print('梯度下降 权重系数:', estimator.coef_)
    print('梯度下降 偏置:', estimator.intercept_)

    # 5、模型评估
    predict = estimator.predict(test_data)
    error = mean_squared_error(test_target, predict)
    print('梯度下降 均方差:', error)


if __name__ == '__main__':
    Linear1()           # 正规方程
    Linear2()           # 梯度下降

房价预测是一个非常重要的问题,人工智能可以帮助我们更准确地预测房价。下面是一个基于Python的房价预测优化代码示例: ``` # 导入必要的库 import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # 读取数据集 data = pd.read_csv('house_prices.csv') # 数据清洗和处理 data = data.drop(['Id', 'Alley', 'PoolQC', 'Fence', 'MiscFeature'], axis=1) data = data.fillna(data.mean()) # 特征选择 X = data.iloc[:, :-1] y = data.iloc[:, -1] # 数据集划分 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 线性回归模型训练 regressor = LinearRegression() regressor.fit(X_train, y_train) # 模型评估 y_pred = regressor.predict(X_test) mse = mean_squared_error(y_test, y_pred) rmse = np.sqrt(mse) print("RMSE:", rmse) # 模型优化 # TODO:根据需要进行模型优化,比如特征工程、模型参数调整等 ``` 这段代码中,我们首先使用Pandas库读取了一个名为“house_prices.csv”的数据集,并进行了数据清洗和处理。然后,我们选择了所有的特征作为模型的输入,并使用train_test_split函数将数据集划分为训练集和测试集。接下来,我们使用Sklearn库中的LinearRegression类训练了一个线性回归模型,并进行了模型评估。最后,我们留下了一个TODO,这里可以进行模型优化,比如特征工程、模型参数调整等,以提高预测的准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_(*^▽^*)_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值