写一个多元回归的sklearn代码
时间: 2024-05-05 11:21:33 浏览: 57
好的,以下是一个多元回归的sklearn代码示例:
```python
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score
# 准备数据
X = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] # 自变量,有3个特征
y = [4, 7, 10, 13] # 因变量
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建模型并训练
model = LinearRegression()
model.fit(X_train, y_train)
# 预测并评估模型
y_pred = model.predict(X_test)
r2 = r2_score(y_test, y_pred)
print("R2 score: ", r2)
```
在这个例子中,我们使用了`LinearRegression`类来创建线性回归模型,并用`train_test_split`函数将数据集分为训练集和测试集。然后,我们使用`fit`方法训练模型,使用`predict`方法预测测试集上的因变量,并使用`r2_score`函数评估模型性能。
相关问题
写一个多元线性回归模型python代码
下面是一个简单的多元线性回归模型的Python代码示例,以使用sklearn库中的LinearRegression模型为例:
```python
import pandas as pd
from sklearn.linear_model import LinearRegression
# 读取数据
data = pd.read_csv('data.csv')
# 准备自变量和因变量数据
X = data[['食品价格涨幅', '衣着价格涨幅', '居住价格涨幅', '生活用品及服务价格涨幅', '交通和通信价格涨幅',
'教育文化和娱乐用品价格涨幅', '医疗保健价格涨幅']]
y = data['全年CPI涨幅']
# 划分训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
# 建立模型并拟合数据
model = LinearRegression()
model.fit(X_train, y_train)
# 输出模型参数
print('截距:', model.intercept_)
print('系数:', model.coef_)
# 在测试集上进行预测并计算误差指标
from sklearn.metrics import mean_squared_error, mean_absolute_error
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
print('均方误差:', mse)
print('平均绝对误差:', mae)
```
注意:此代码仅为示例,实际应用中可能需要进行数据清洗、变量选择、模型调参等操作。
写一个多元非线性回归的代码
以下是一个使用Python的多元非线性回归的例子,使用scikit-learn库中的PolynomialFeatures和LinearRegression函数:
```python
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
# 创建随机数据
X = np.arange(0, 10, 0.1)
y = 2 * X + X ** 2 - 3 * X ** 3 + np.random.randn(len(X))
# 将数据转换为二次多项式特征
poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X.reshape(-1, 1))
# 训练模型
model = LinearRegression()
model.fit(X_poly, y)
# 预测新数据
X_new = np.array([[10], [11], [12]])
X_new_poly = poly.transform(X_new)
y_new = model.predict(X_new_poly)
print("预测结果:", y_new)
```
这里使用二次多项式特征将X转换为X、X^2,然后使用LinearRegression函数来拟合数据并预测新数据。你可以通过更改degree参数来改变多项式的阶数。
阅读全文