线性回归模型可以通过多种编程语言和库来实现,以下是几种常见的方法:
使用Python的Statsmodels库
Statsmodels是一个用于拟合多种统计模型,包括线性回归的Python库。以下是使用Statsmodels进行简单线性回归的示例代码:
```python
import statsmodels.api as sm
import numpy as np
import pandas as pd
模拟数据
np.random.seed(0)
x = np.random.normal(100, 10, 100) 房屋面积
y = 5 * x + np.random.normal(0, 50, 100) 房价
创建DataFrame
data = pd.DataFrame({'area': x, 'price': y})
添加常数项
X = sm.add_constant(data['area'])
拟合模型
model = sm.OLS(y, X).fit()
输出回归结果
print(model.summary())
```
使用Python的scikit-learn库
scikit-learn是另一个常用的Python机器学习库,支持线性回归模型的训练和预测。以下是使用scikit-learn进行线性回归的示例代码:
```python
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
模拟数据
np.random.seed(0)
x = np.random.normal(100, 10, 100) 房屋面积
y = 5 * x + np.random.normal(0, 50, 100) 房价
创建DataFrame
data = pd.DataFrame({'area': x, 'price': y})
提取自变量和因变量的数据
X = data[['area']]
Y = data['price']
划分训练集和测试集
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)
评估模型
mse = mean_squared_error(Y_test, Y_pred)
print(f'Mean Squared Error: {mse}')
```
使用JavaScript的TensorFlow库
TensorFlow是一个强大的深度学习框架,也可以用于实现线性回归模型。以下是使用TensorFlow进行线性回归的示例代码:
```javascript
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
设置随机种子
np.random.seed(0)
生成数据
train_X = np.random.rand(100).astype(np.float32)
train_Y = 2 * train_X + 3 * train_X2 + np.random.randn(*train_X.shape) * 0.1
创建模型
model = tf.keras.Sequential([
tf.keras.layers.Dense(units=1, input_shape=)
])
编译模型
model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=0.1), loss='mean_squared_error')
训练模型
model.fit(train_X, train_Y, epochs=1000, verbose=0)
预测
test_X = np.array([0.5, 1.0, 1.5], dtype=np.float32)
predictions = model.predict(test_X)
绘制结果
plt.scatter(train_X, train_Y, color='blue', label='Training data')
plt.plot(test_X, predictions, color='red', label='Predictions')
plt.legend()
plt.show()
```
使用R语言
R语言是统计计算和图形的专用编程语言,内置了丰富的统计包,适合进行线性回归分析。以下是使用R进行线性回归的示例代码: