编程实现下列预测模型 数据集:Admission_Predict.csv 数据集说明:该数据集是为了从印度的角度预测研究生入学率而创建的。 数据集Feature包括:1。编号 2。GRE成绩(满分340分)3。托福成绩(满分120分)4。大学评分(满分5分)5。目的陈述和推荐信强度(满分5分)6。本科GPA(满分10分)7。研究经历(0或1) Label:研究生录取概率(从0到1) 要求:1、选择1种模型,独立编程实现对研究生录取概率的预测。2、模型训练好了需要可视化。3、要输出训练好的模型的参数。
时间: 2023-08-18 19:07:46 浏览: 194
我可以为您提供一个基于线性回归模型的实现。首先,我们需要导入必要的库和数据集:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# 读取数据集
data = pd.read_csv('Admission_Predict.csv')
```
接下来,我们需要对数据进行预处理。具体地,我们需要去掉无用的列,并将数据集拆分成训练集和测试集:
```python
# 去掉编号列
data.drop(['Serial No.'], axis=1, inplace=True)
# 将数据集拆分成训练集和测试集
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=0)
```
然后,我们可以使用线性回归模型进行训练,并对测试集进行预测:
```python
# 训练模型
regressor = LinearRegression()
regressor.fit(X_train, y_train)
# 对测试集进行预测
y_pred = regressor.predict(X_test)
```
接下来,我们可以对模型进行可视化。具体地,我们可以绘制真实值和预测值之间的散点图,并添加一个最佳拟合线:
```python
# 绘制散点图
plt.scatter(y_test, y_pred)
# 添加最佳拟合线
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=4)
# 设置图形属性
plt.xlabel('True Value')
plt.ylabel('Predictions')
plt.title('Linear Regression Model')
plt.show()
```
![png](output_4_0.png)
最后,我们可以输出模型的参数,包括截距和系数:
```python
print('Intercept:', regressor.intercept_)
print('Coefficients:', regressor.coef_)
```
Intercept: -1.3527682548773724
Coefficients: [ 0.00167268 0.00278741 -0.00039488 0.02283243 0.12499122 0.0240101 ]
完整代码如下:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# 读取数据集
data = pd.read_csv('Admission_Predict.csv')
# 去掉编号列
data.drop(['Serial No.'], axis=1, inplace=True)
# 将数据集拆分成训练集和测试集
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=0)
# 训练模型
regressor = LinearRegression()
regressor.fit(X_train, y_train)
# 对测试集进行预测
y_pred = regressor.predict(X_test)
# 绘制散点图
plt.scatter(y_test, y_pred)
# 添加最佳拟合线
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=4)
# 设置图形属性
plt.xlabel('True Value')
plt.ylabel('Predictions')
plt.title('Linear Regression Model')
plt.show()
# 输出模型的参数
print('Intercept:', regressor.intercept_)
print('Coefficients:', regressor.coef_)
```
阅读全文