写一份有关 基于机器学习与真实体检数据的糖尿病预测python代码,代码包括数据清洗、数据可视化,建立多种模型,训练模型以及得出的训练结果进行对比得出最优的训练模型。数据集特征有:性别、年龄、高密度脂蛋白胆固醇、低密度脂蛋白胆固醇、极低密度脂蛋白胆固醇、甘油三酯、总胆固醇、脉搏、舒张压、高血压史、尿素氮、尿酸、体重检查结果和是否糖尿病
时间: 2023-09-05 13:09:18 浏览: 152
下面是一个基于机器学习和真实体检数据的糖尿病预测的Python代码示例,包括数据清洗、数据可视化、建立多种模型、训练模型以及对比结果选择最优模型。我们将使用随机森林、支持向量机和逻辑回归三种模型进行比较。
```python
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import SVC
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# 读取数据集
data = pd.read_csv('your_dataset.csv')
# 数据清洗
data = data.dropna() # 删除缺失值
data = data.drop_duplicates() # 删除重复值
# 数据可视化
plt.figure(figsize=(10, 6))
data['是否糖尿病'].value_counts().plot(kind='bar')
plt.title('糖尿病分布')
plt.xlabel('是否糖尿病')
plt.ylabel('人数')
plt.show()
# 特征选择
features = ['性别', '年龄', '高密度脂蛋白胆固醇', '低密度脂蛋白胆固醇', '极低密度脂蛋白胆固醇', '甘油三酯', '总胆固醇', '脉搏',
'舒张压', '高血压史', '尿素氮', '尿酸', '体重检查结果']
target = '是否糖尿病'
X = data[features]
y = data[target]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 建立模型并训练
models = {
'Random Forest': RandomForestClassifier(),
'Support Vector Machine': SVC(),
'Logistic Regression': LogisticRegression()
}
results = {}
for model_name, model in models.items():
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
results[model_name] = accuracy
print(f'{model_name}准确率:{accuracy}')
# 对比结果并选择最优模型
best_model = max(results, key=results.get)
print(f'最优模型:{best_model}')
```
在这段代码中,我们首先读取数据集,并进行了简单的数据清洗,包括删除缺失值和重复值。然后我们使用柱状图可视化了糖尿病分布情况,以了解数据的整体情况。
接下来,我们选择了特征和目标变量,并进行了数据集的划分。然后我们建立了三种模型:随机森林(Random Forest)、支持向量机(Support Vector Machine)和逻辑回归(Logistic Regression),并在测试集上进行了训练和预测,计算了准确率。
最后,我们对比了三种模型的准确率,并选择准确率最高的模型作为最优模型。
请根据你的数据集和需求适当调整代码中的特征、目标变量、模型和参数等部分。
阅读全文