心脏病数据集中是否患病与静息血压
时间: 2024-02-25 20:53:42 浏览: 24
心脏病数据集中的静息血压(resting blood pressure)是一个连续的数值型特征,表示以毫米汞柱(mm Hg)为单位的血压水平。和是否患有心脏病(target)一样,静息血压也是一个特征,而不是目标变量。因此,我们无法使用KNN算法来预测是否患有心脏病,只能使用静息血压来预测是否患有心脏病。
使用KNN算法预测时,需要将静息血压作为输入特征,将是否患有心脏病作为目标变量。首先,我们需要将数据集划分为训练集和测试集,并对特征数据进行标准化处理。
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
# 读取数据集
data = pd.read_csv('heart.csv')
# 划分数据集
X = data['trestbps'].values.reshape(-1, 1)
y = data['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 数据标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
```
接下来,我们创建一个KNN分类器,并使用训练集对其进行训练。然后,使用测试集来评估分类器的准确性。
```python
# 创建KNN分类器
knn = KNeighborsClassifier(n_neighbors=5)
# 训练分类器
knn.fit(X_train_scaled, y_train)
# 预测测试集
y_pred = knn.predict(X_test_scaled)
# 计算准确率
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
最后,我们可以使用训练好的模型对新数据进行预测。例如,对于一个静息血压为140的患者,预测其是否患有心脏病的代码如下:
```python
# 预测新数据
new_data = scaler.transform([[140]])
prediction = knn.predict(new_data)
print('Prediction:', prediction)
```
以上代码演示了如何使用KNN算法预测心脏病数据集中是否患病与静息血压之间的关系。