欢迎访问宙启技术站
智能推送

利用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进行特征选择和线性回归的示例。希望本文对你有所帮助!