使用sklearn实现线性回归:

import numpy as np
from sklearn.linear_model import LinearRegression

np.random.seed(42)

# 读取数据
data = np.loadtxt('data1.txt', delimiter=',')
X_train, y_train = data[:350, :5], data[:350, 5]
X_test, y_test = data[351:, :5], data[351:, 5]

# 使用sklearn实现线性回归
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

# 输出评价指标R方和残差平方和
from sklearn.metrics import r2_score, mean_squared_error
print('R方:', r2_score(y_test, y_pred))
print('残差平方和:', mean_squared_error(y_test, y_pred) * len(y_test))

使用最小二乘法实现线性回归:

import numpy as np
np.random.seed(42)

# 读取数据
data = np.loadtxt('data1.txt', delimiter=',')
X_train, y_train = data[:350, :5], data[:350, 5]
X_test, y_test = data[351:, :5], data[351:, 5]

# 使用最小二乘法实现线性回归
def linear_regression(X, y):
    X = np.insert(X, 0, 1, axis=1)
    w = np.linalg.inv(X.T @ X) @ X.T @ y
    return w

w = linear_regression(X_train, y_train)
y_pred = np.insert(X_test, 0, 1, axis=1) @ w

# 输出评价指标R方和残差平方和
from sklearn.metrics import r2_score, mean_squared_error
print('R方:', r2_score(y_test, y_pred))
print('残差平方和:', mean_squared_error(y_test, y_pred) * len(y_test))
``
使用线性回归对房屋价格数据集data1txt进行预测需要使用前350行作为训练351-414行作为测试数据并对测试数据输出评价指标R方和残差平方和。 先用sklearn实现线性回归再用最小二乘法实现。 选用随机种子42:nprandomseed42 。在用nploadtxt函数进行读取。注意data1txt中数据的第6列是y值1到5列是属性。

原文地址: http://www.cveoy.top/t/topic/dXgO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录