利用皮尔森系数对训练集进行特征选择,并查看测试集的训练效果的python代码
时间: 2024-02-12 13:04:49 浏览: 76
以下是利用皮尔森系数进行特征选择并查看测试集的训练效果的Python代码示例:
```python
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from scipy.stats import pearsonr
# 读取数据集并进行预处理
data = pd.read_csv('data.csv')
data.dropna(inplace=True)
# 将数据集分为特征和标签
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
# 利用皮尔森系数进行特征选择
corr_list = []
for i in range(X.shape[1]):
corr_list.append(abs(pearsonr(X.iloc[:,i], y)[0]))
corr_df = pd.DataFrame({'feature': X.columns, 'corr_score': corr_list})
corr_df = corr_df.sort_values(by='corr_score', ascending=False)
# 取相关系数大于0.5的特征
selected_features = corr_df[corr_df['corr_score'] > 0.5]['feature'].tolist()
X_selected = X[selected_features]
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_selected, y, test_size=0.2, random_state=42)
# 训练模型并进行预测
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
# 计算模型的准确率
accuracy = model.score(X_test, y_test)
print('模型准确率为:', accuracy)
```
在以上代码中,我们首先读取数据集并进行预处理,然后利用`pearsonr`计算每个特征与标签的相关系数。接着,我们将相关系数大于0.5的特征挑选出来作为最终的特征集合。然后将数据集分为训练集和测试集,并使用线性回归模型进行训练和预测,最后计算模型的准确率。
阅读全文