用Python实现1.用过滤法对数据集做特征选择 2.找一个回归数据集,做一个多元回归模型用均方差、拟合优度等指标评价结果
时间: 2024-09-24 11:11:14 浏览: 57
在Python中,使用scikit-learn库可以方便地进行特征选择和建立多元回归模型:
1. **过滤法特征选择**:
过滤法是一种简单直观的方法,它先对所有特征独立计算其与目标变量的相关性,然后依据预设的阈值或评分标准保留得分较高的特征。例如,我们可以使用`SelectKBest`函数结合皮尔逊相关系数(对于数值型数据)或卡方检验(对于分类数据)来进行选择:
```python
from sklearn.feature_selection import SelectKBest, f_regression
# 假设df_data是你的数据集,y是目标变量
X = df_data.drop('target', axis=1) # 删掉目标列
y = df_data['target']
selector = SelectKBest(f_regression, k='all') # 或指定特定k值
X_new = selector.fit_transform(X, y)
# 选择后的特征列名可以通过selector.get_support(indices=True)得到
```
2. **多元线性回归及评价**:
使用`LinearRegression`创建一个多元回归模型,如`sklearn.linear_model.LinearRegression`。假设我们已经选择了特征并存入`X_train`和`X_test`,以及对应的标签`y_train`和`y_test`:
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
# 均方误差(MSE)评估
mse = mean_squared_error(y_test, predictions)
print("MSE:", mse)
# 拟合优度(R²)评估
r2 = r2_score(y_test, predictions)
print("R² (决定系数):", r2)
```
阅读全文