python机器学习疾病预测将数据集进行异常值处理的代码,并进行特征选择(热力图相关系数),利用相关系数划分数据集代码
时间: 2024-03-23 08:36:21 浏览: 70
以下是针对数据集进行异常值处理和特征选择的 Python 代码:
```python
# 导入所需库
import pandas as pd
import numpy as np
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
# 读取数据集
data = pd.read_csv('data.csv')
# 异常值处理
Q1 = data.quantile(0.25)
Q3 = data.quantile(0.75)
IQR = Q3 - Q1
data = data[~((data < (Q1 - 1.5 * IQR)) |(data > (Q3 + 1.5 * IQR))).any(axis=1)]
# 特征选择
X = data.iloc[:,0:8]
y = data.iloc[:,8]
# 利用热力图查看特征之间的相关性
corrmat = data.corr()
top_corr_features = corrmat.index
plt.figure(figsize=(10,10))
g=sns.heatmap(data[top_corr_features].corr(),annot=True,cmap="RdYlGn")
# 利用相关系数划分数据集
bestfeatures = SelectKBest(score_func=chi2, k=5)
fit = bestfeatures.fit(X,y)
dfscores = pd.DataFrame(fit.scores_)
dfcolumns = pd.DataFrame(X.columns)
featureScores = pd.concat([dfcolumns,dfscores],axis=1)
featureScores.columns = ['Specs','Score']
print(featureScores.nlargest(5,'Score'))
```
这段代码会先读取一个名为 `data.csv` 的数据集,然后进行异常值处理,接着利用热力图查看特征之间的相关性,最后利用相关系数划分数据集。其中,对于异常值处理,我们使用了 IQR 方法,它能够有效地过滤掉异常值。对于特征选择,我们利用了相关系数,选出了与结果最相关的前 5 个特征。
阅读全文