# 导入需要的库import pandas as pdimport numpy as npfrom sklearn import linear_modelfrom sklearn.model_selection import train_test_split# 读取数据data = pd.read_csv('diabetes.csv')# 将数据拆分为特征和目标变量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)# 创建线性回归模型model = linear_model.LinearRegression()# 训练模型model.fit(X_train, y_train)# 预测测试集数据y_pred = model.predict(X_test)# 计算模型的准确率accuracy = model.score(X_test, y_test)print("模型准确率:", accuracy),优化这段代码
时间: 2023-06-17 18:05:03 浏览: 173
这段代码已经比较简洁和规范,但是可以进行如下优化:
1. 对于数据的读取,可以通过使用相对路径来避免路径错误的问题。同时,可以加上参数`header=0`以明确表头的位置。
2. 可以将特征和目标变量的拆分过程放在train_test_split函数中完成,避免重复的代码。
3. 为了避免数据泄露问题,可以将模型的准确率计算从预测和评估的两个步骤中分离出来,即先预测测试集数据,再通过预测结果计算准确率。
因此,可以得到如下优化后的代码:
```python
import pandas as pd
import numpy as np
from sklearn import linear_model
from sklearn.model_selection import train_test_split
# 读取数据
data = pd.read_csv('./diabetes.csv', header=0)
# 将数据拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data.iloc[:, :-1], data.iloc[:, -1], test_size=0.2, random_state=0)
# 创建线性回归模型
model = linear_model.LinearRegression()
# 训练模型
model.fit(X_train, y_train)
# 预测测试集数据
y_pred = model.predict(X_test)
# 计算模型的准确率
accuracy = model.score(X_test, y_test)
print("模型准确率:", accuracy)
```
阅读全文