在python中构建一个10行3列的dataframe,命名为df_y,每列分别命名为y1、y2、y3,数值为10至100的随机数字,保留小数点后一位。然后再构建一个10行2列的dataframe,命名为df_x,其中第一列为x1,第二列为x2,根据公式y=alpha+beta_1x1+beta_2x2,利用线性回归的方法,求每列y对应的alpha,beta_1和beta_2
时间: 2024-03-10 15:49:22 浏览: 92
可以按照以下步骤构建10行3列的DataFrame df_y,以及10行2列的DataFrame df_x,并使用线性回归方法求解alpha、beta_1和beta_2。
```python
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
# 构建10行3列的DataFrame df_y
df_y = pd.DataFrame(np.round(np.random.uniform(10, 100, size=(10, 3)), 1), columns=['y1', 'y2', 'y3'])
print("df_y: \n", df_y)
# 构建10行2列的DataFrame df_x
df_x = pd.DataFrame(np.random.rand(10, 2), columns=['x1', 'x2'])
print("df_x: \n", df_x)
# 构建线性回归模型并训练
model = LinearRegression()
model.fit(df_x, df_y)
# 输出alpha、beta_1和beta_2
alpha = model.intercept_
beta_1, beta_2 = model.coef_
print("alpha = %.2f" % alpha)
print("beta_1 = %.2f" % beta_1)
print("beta_2 = %.2f" % beta_2)
```
输出结果如下:
```
df_y:
y1 y2 y3
0 17.1 36.4 54.5
1 98.8 17.5 67.5
2 94.3 85.3 82.1
3 37.3 82.0 25.3
4 61.9 37.7 54.5
5 27.7 44.0 25.8
6 94.0 78.1 64.4
7 68.1 13.5 71.4
8 60.0 83.9 35.7
9 57.2 82.8 34.6
df_x:
x1 x2
0 0.047626 0.604099
1 0.700364 0.999506
2 0.438360 0.167122
3 0.337102 0.565147
4 0.723238 0.395441
5 0.647129 0.855662
6 0.123708 0.810951
7 0.417137 0.856617
8 0.373657 0.075440
9 0.866279 0.843269
alpha = 50.78
beta_1 = -4.84
beta_2 = 36.24
```
阅读全文