Sklearn中的监督学习全览:从线性回归到SVM

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 【7月更文第23天】在机器学习的广阔领域中,监督学习占据着举足轻重的地位,它通过已标记的数据集学习输入与输出之间的映射关系,进而对未知数据进行预测。`scikit-learn`(简称sklearn)作为Python中最受欢迎的机器学习库之一,提供了丰富的监督学习算法。本篇文章将带您深入探索sklearn中的监督学习世界,从简单的线性回归到复杂的支撑向量机(SVM),并通过实战代码示例,让您对这些算法有更直观的理解。

在机器学习的广阔领域中,监督学习占据着举足轻重的地位,它通过已标记的数据集学习输入与输出之间的映射关系,进而对未知数据进行预测。scikit-learn(简称sklearn)作为Python中最受欢迎的机器学习库之一,提供了丰富的监督学习算法。本篇文章将带您深入探索sklearn中的监督学习世界,从简单的线性回归到复杂的支撑向量机(SVM),并通过实战代码示例,让您对这些算法有更直观的理解。

1. 线性回归(Linear Regression)

线性回归是最基本的监督学习算法之一,用于预测连续数值型变量。它试图找到一个线性模型,使所有数据点到该直线的垂直距离之和最小。

代码示例

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression

# 生成模拟数据
X, y = make_regression(n_samples=100, n_features=1, noise=0.1)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建并训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 打印预测结果
print("预测结果:", y_pred[:5])

2. 逻辑回归(Logistic Regression)

尽管名字中含有“回归”,逻辑回归实际上是一个分类算法,适用于二分类问题。它通过Sigmoid函数将线性模型的输出转换为概率。

代码示例

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

# 加载数据集
data = load_iris()
X, y = data.data, data.target

# 仅使用前两列特征和前100个样本进行演示
X, y = X[:100, :2], y[:100]

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练逻辑回归模型
logreg = LogisticRegression(max_iter=10000)
logreg.fit(X_train, y_train)

# 预测
predictions = logreg.predict(X_test)

# 打印预测结果
print("预测类别:", predictions)

3. 支撑向量机(Support Vector Machines, SVM)

SVM是一种强大的分类和回归算法,通过寻找最大边界(margin)来划分数据。对于非线性可分数据,SVM可通过核技巧映射到高维空间进行处理。

代码示例

from sklearn import datasets
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler

# 加载鸢尾花数据集
iris = datasets.load_iris()
X, y = iris.data, iris.target

# 数据预处理,标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 训练SVM模型,这里使用RBF核
svm = SVC(kernel='rbf', C=1, gamma='scale')
svm.fit(X_scaled, y)

# 预测
predictions = svm.predict(X_scaled[:5])

# 打印预测结果
print("预测类别:", predictions)

总结

通过上述代码示例,我们简要介绍了sklearn中三种典型的监督学习算法:线性回归、逻辑回归和支撑向量机。每种算法都有其独特的应用场景和优势,选择合适的模型对于解决实际问题至关重要。sklearn以其简洁的API设计和丰富的功能,成为学习和应用监督学习的理想工具。希望本文能为您在机器学习的探索之旅中提供有价值的参考。在实践中,还需根据具体问题进一步调整模型参数,采用交叉验证、网格搜索等方法优化模型性能。

目录
相关文章
Sklearn库中的决策树模型有哪些主要参数?
Sklearn的决策树模型参数包括:criterion(默认"gini")用于特征选择,splitter(默认"best")决定划分点,max_depth限制树的最大深度,min_samples_split设置内部节点划分的最小样本数,min_samples_leaf定义叶子节点最少样本数,max_features(默认"auto")控制搜索最优划分时的特征数量,random_state设定随机数种子,max_leaf_nodes限制最大叶子节点数,以及min_impurity_decrease阻止不纯度减少不足的节点划分。
247 0
|
数据可视化 数据挖掘
【数据挖掘】多项式回归原理介绍及实战应用(超详细 附源码)
【数据挖掘】多项式回归原理介绍及实战应用(超详细 附源码)
680 1
|
4月前
|
人工智能 测试技术 API
Apifox对比Apipost:2025年推荐的API协作工具
Apifox与Apipost这两大国产API平台的全方位较量,助你在2025年做出最明智的选择。
|
7月前
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
290 16
ENVI:如何进行遥感图像的分类?(决策树模型)
ENVI:如何进行遥感图像的分类?(决策树模型)
572 0
|
机器学习/深度学习 存储 分布式计算
scikit-learn在大数据处理中的优化与加速
【4月更文挑战第17天】面对大数据处理的挑战,scikit-learn的性能优化与加速至关重要。优化策略包括内存管理(数据集缩减、数据流处理、分布式存储)和算法选择(如在线学习、低内存占用算法)。并行化计算通过设置`n_jobs`或使用Dask、Joblib提升速度,分布式计算如Spark、Dask Distributed扩展处理能力。结合案例实践,建议综合考虑各种策略,并关注新技术以适应不断变化的大数据需求。未来,期待更多优化方案提升scikit-learn在大数据场景下的效能。
|
JavaScript 前端开发 算法
Vue3与Vue2:对比分析与迁移指南
Vue3与Vue2:对比分析与迁移指南
【Python 基础】解释map函数的工作原理
【5月更文挑战第6天】【Python 基础】解释map函数的工作原理
|
运维 大数据 数据挖掘
SelectDB x 白鲸开源金融大数据解决方案正式发布!
飞轮科技联合白鲸开源,针对金融行业大数据实时分析的场景共同推出高效实用的解决方案。
695 0
|
Linux 数据安全/隐私保护 C++
如何使用Cython对python脚本加密成pyd/so
如何使用Cython对python脚本加密成pyd/so
499 0
如何使用Cython对python脚本加密成pyd/so