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

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 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设计和丰富的功能,成为学习和应用监督学习的理想工具。希望本文能为您在机器学习的探索之旅中提供有价值的参考。在实践中,还需根据具体问题进一步调整模型参数,采用交叉验证、网格搜索等方法优化模型性能。

目录
相关文章
|
6月前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
6月前
|
机器学习/深度学习 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-4
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
6月前
|
机器学习/深度学习
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC(下)
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC
|
5月前
|
机器学习/深度学习 数据可视化
Sklearn中逻辑回归建模
分类模型评估通常涉及准确率、召回率和F1值。准确率是正确分类样本的比例,但在类别不平衡时可能误导,例如一个模型总是预测多数类,即使误分类少数类也能有高准确率。召回率关注的是真正类被正确识别的比例,而精确率则衡量预测为正类的样本中真正为正类的比例。F1值是精确率和召回率的调和平均数,提供了两者之间的平衡。在sklearn中,可以使用`recall_score`, `precision_score` 和 `f1_score` 函数来计算这些指标。在类别重要性不同时,需根据业务需求选择合适的评估标准。
|
6月前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-1
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-1
|
6月前
|
机器学习/深度学习 算法 测试技术
Python贷款违约预测:Logistic、Xgboost、Lightgbm、贝叶斯调参/GridSearchCV调参|数据分享
Python贷款违约预测:Logistic、Xgboost、Lightgbm、贝叶斯调参/GridSearchCV调参|数据分享
|
6月前
|
机器学习/深度学习 算法 数据挖掘
数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病
数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病
|
6月前
|
机器学习/深度学习 数据可视化 计算机视觉
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC(上)
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC
|
6月前
|
机器学习/深度学习 算法
R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病-2
R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病
|
6月前
|
机器学习/深度学习 算法 数据挖掘
R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病-1
R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病