Scikit-Learn 高级教程——高级特征工程

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
简介: Scikit-Learn 高级教程——高级特征工程【1月更文挑战第18篇】

Python Scikit-Learn 高级教程:高级特征工程

特征工程是机器学习中不可或缺的一部分,而高级特征工程则涉及更复杂的技术和方法。本篇博客将深入介绍在 Scikit-Learn 中进行高级特征工程的一些常见技术,包括多项式特征、交互特征、特征选择和特征转换等,并提供详细的代码示例。

1. 多项式特征

多项式特征是原始特征的多项式组合,通过增加特征的高次数,可以更好地捕捉特征之间的非线性关系。在 Scikit-Learn 中,可以使用 PolynomialFeatures 来生成多项式特征。

from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
import matplotlib.pyplot as plt

# 生成示例数据集
X, y = make_regression(n_samples=100, n_features=1, noise=10, random_state=42)

# 使用多项式特征扩展原始特征
poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X)

# 使用线性回归拟合多项式特征
model = LinearRegression()
model.fit(X_poly, y)

# 预测
X_test = np.linspace(X.min(), X.max(), 100).reshape(-1, 1)
X_test_poly = poly.transform(X_test)
y_pred = model.predict(X_test_poly)

# 可视化结果
plt.scatter(X, y, label='原始数据')
plt.plot(X_test, y_pred, color='red', label='多项式回归')
plt.legend()
plt.show()

2. 交互特征

交互特征是特征之间相互作用的结果,可以通过 PolynomialFeatures 或自定义操作来创建。例如,可以使用 preprocessing 模块中的 interaction_terms 函数来生成交互特征。

from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
import matplotlib.pyplot as plt

# 生成示例数据集
X, y = make_regression(n_samples=100, n_features=2, noise=10, random_state=42)

# 使用多项式特征扩展原始特征
poly = PolynomialFeatures(degree=2, interaction_only=True)
X_poly = poly.fit_transform(X)

# 使用线性回归拟合多项式特征
model = LinearRegression()
model.fit(X_poly, y)

3. 特征选择

特征选择是从原始特征集中选择最相关的特征的过程,以提高模型性能或减少过拟合风险。Scikit-Learn 提供了多种特征选择的方法,如基于统计学的方法和基于模型的方法。

from sklearn.feature_selection import SelectKBest, f_regression
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
import matplotlib.pyplot as plt

# 生成示例数据集
X, y = make_regression(n_samples=100, n_features=5, noise=10, random_state=42)

# 使用SelectKBest选择最相关的特征
selector = SelectKBest(score_func=f_regression, k=2)
X_selected = selector.fit_transform(X, y)

# 使用线性回归拟合选择的特征
model = LinearRegression()
model.fit(X_selected, y)

4. 特征转换

特征转换是将原始特征映射到新的特征空间的过程,其中包括主成分分析(PCA)、t-分布邻域嵌入(t-SNE)等方法。

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

# 加载示例数据集
iris = load_iris()
X = iris.data
y = iris.target

# 使用PCA进行特征转换
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# 可视化结果
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis', edgecolor='k', s=50)
plt.xlabel('主成分1')
plt.ylabel('主成分2')
plt.title('PCA变换后的特征空间')
plt.show()

5. 总结

本篇博客深入介绍了在 Scikit-Learn 中进行高级特征工程的一些常见技术,包括多项式特征、交互特征、特征选择和特征转换等。这些技术能够帮助你更好地处理原始特征,提高模型性能并增强对数据的理解。希望这篇博客对你在实际应用中进行高级特征工程时有所帮助!

目录
相关文章
|
1月前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
7天前
|
SQL 关系型数据库 MySQL
milvus-use教程 python
本项目参考vanna项目,获取数据库元数据和问题SQL对,存入Milvus向量数据库,并进行相似性检索。采用m3e-large嵌入模型,通过DatabaseManager类实现数据库连接持久化,MilvusVectorStore类封装了Milvus操作方法,如创建集合、添加数据和查询。项目提供init_collections、delete_collections等文件用于初始化、删除和管理集合。所用Milvus版本较新,API与vanna项目不兼容。 [项目地址](https://gitee.com/alpbeta/milvus-use)
80 9
|
14天前
|
大数据 开发者 C++
Python语法糖详解教程
《Python语法糖详解教程》介绍了编程语言中的“语法糖”,即通过特殊语法形式简化代码,使代码更简洁、易读和高效。文章详细解析了列表推导式、字典推导式、元组解包、条件表达式、with语句和装饰器等核心语法糖,并提供了具体示例和最佳实践指南。通过这些技巧,开发者可以在保持底层功能不变的前提下,显著提升开发效率和代码质量。
35 8
|
18天前
|
机器学习/深度学习 数据可视化 算法
Python与机器学习:使用Scikit-learn进行数据建模
本文介绍如何使用Python和Scikit-learn进行机器学习数据建模。首先,通过鸢尾花数据集演示数据准备、可视化和预处理步骤。接着,构建并评估K近邻(KNN)模型,展示超参数调优方法。最后,比较KNN、随机森林和支持向量机(SVM)等模型的性能,帮助读者掌握基础的机器学习建模技巧,并展望未来结合深度学习框架的发展方向。
43 9
Python与机器学习:使用Scikit-learn进行数据建模
|
2月前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
403 13
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
16天前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
2天前
|
机器学习/深度学习 数据采集 数据可视化
Python/Anaconda双方案加持!Jupyter Notebook全平台下载教程来袭
Jupyter Notebook 是一款交互式编程与数据科学分析工具,支持40多种编程语言,广泛应用于机器学习、数据清洗和学术研究。其核心优势包括实时执行代码片段、支持Markdown文档与LaTeX公式混排,并可导出HTML/PDF/幻灯片等格式。本文详细介绍了Jupyter Notebook的软件定位、特性、安装方案(Anaconda集成环境与原生Python+PIP安装)、首次运行配置及常见问题解决方案,帮助用户快速上手并高效使用该工具。
|
3月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
105 8
|
3月前
Seaborn 教程-主题(Theme)
Seaborn 教程-主题(Theme)
168 7
|
3月前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
61 4