利用Sklearn进行特征选择和线性回归
发布时间:2024-01-15 11:07:44
特征选择是机器学习中一个重要的步骤,它可以帮助我们从原始特征集中选择出最具有预测能力的特征,减少冗余特征的影响,提高模型的性能。本文将介绍如何使用Sklearn进行特征选择和线性回归,并提供一个使用例子。
首先,我们需要导入Sklearn库和一些必要的模块:
from sklearn.datasets import load_boston from sklearn.feature_selection import SelectKBest, f_regression from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split
接下来,我们使用Sklearn提供的Boston房价数据集作为示例数据集:
# 载入数据集 boston = load_boston() X, y = boston.data, boston.target
然后,我们将数据集分为训练集和测试集:
# 划分数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
接下来,我们使用SelectKBest和f_regression方法进行特征选择。这里的SelectKBest方法可以根据指定的评价函数(例如f_regression)对特征进行排名,并选择最具有预测能力的前k个特征。
# 特征选择 selector = SelectKBest(score_func=f_regression, k=5) X_train_selected = selector.fit_transform(X_train, y_train)
然后,我们使用LinearRegression方法进行线性回归模型的建立和训练:
# 线性回归 regression = LinearRegression() regression.fit(X_train_selected, y_train)
最后,我们可以使用测试集进行模型的预测和评估:
# 测试集预测 X_test_selected = selector.transform(X_test) y_pred = regression.predict(X_test_selected)
这样,我们就完成了特征选择和线性回归模型的构建和预测。可以使用Sklearn提供的一些评估指标(如均方误差、决定系数等)对模型进行评估。
完整的示例代码如下:
from sklearn.datasets import load_boston
from sklearn.feature_selection import SelectKBest, f_regression
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# 载入数据集
boston = load_boston()
X, y = boston.data, boston.target
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 特征选择
selector = SelectKBest(score_func=f_regression, k=5)
X_train_selected = selector.fit_transform(X_train, y_train)
# 线性回归
regression = LinearRegression()
regression.fit(X_train_selected, y_train)
# 测试集预测
X_test_selected = selector.transform(X_test)
y_pred = regression.predict(X_test_selected)
# 输出模型评估结果
print("模型评估结果:")
print("均方误差:", mean_squared_error(y_test, y_pred))
print("决定系数:", r2_score(y_test, y_pred))
这样,我们就完成了使用Sklearn进行特征选择和线性回归的示例。希望本文对你有所帮助!
