Python监督学习实现指南

360影视 国产动漫 2025-05-31 11:57 2

摘要:在 Python 中实现监督学习主要依赖scikit-learn库。以下是一个完整的示例流程,涵盖数据准备、模型训练、评估和预测:

在 Python 中实现监督学习主要依赖 scikit-learn 库。以下是一个完整的示例流程,涵盖数据准备、模型训练、评估和预测:

基本步骤

导入必要库加载/准备数据集划分训练集和测试集选择并训练模型模型评估进行预测

示例代码(线性回归 + 决策树分类)

python

# 1. 导入必要库

import numpy as np

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LinearRegression

from sklearn.tree import DecisionTreeClassifier

from sklearn.metrics import mean_squared_error, accuracy_score

from sklearn.datasets import load_iris, load_diabetes

# 示例1:回归问题(糖尿病数据集)

#

# 2. 加载回归数据集

diabetes = load_diabetes

X_reg = diabetes.data

y_reg = diabetes.target

# 3. 划分数据集

X_train_reg, X_test_reg, y_train_reg, y_test_reg = train_test_split(

X_reg, y_reg, test_size=0.2, random_state=42

)

# 4. 创建并训练线性回归模型

reg_model = LinearRegression

reg_model.fit(X_train_reg, y_train_reg)

# 5. 评估回归模型

y_pred_reg = reg_model.predict(X_test_reg)

mse = mean_squared_error(y_test_reg, y_pred_reg)

print(f"回归模型评估:\n均方误差(MSE) = {mse:.2f}\n决定系数(R²) = {reg_model.score(X_test_reg, y_test_reg):.2f}\n")

# 示例2:分类问题(鸢尾花数据集)

#

# 2. 加载分类数据集

iris = load_iris

X_clf = iris.data

y_clf = iris.target

# 3. 划分数据集

X_train_clf, X_test_clf, y_train_clf, y_test_clf = train_test_split(

X_clf, y_clf, test_size=0.3, random_state=42

)

# 4. 创建并训练决策树分类器

clf_model = DecisionTreeClassifier(max_depth=3)

clf_model.fit(X_train_clf, y_train_clf)

# 5. 评估分类模型

y_pred_clf = clf_model.predict(X_test_clf)

acc = accuracy_score(y_test_clf, y_pred_clf)

print(f"分类模型评估:\n准确率 = {acc:.2%}\n特征重要性 = {clf_model.feature_importances_}")

# 6. 新样本预测(分类示例)

new_sample = [[5.1, 3.5, 1.4, 0.2]] # 单个样本

predicted_class = clf_model.predict(new_sample)

print(f"\n预测新样本类别: {iris.target_names[predicted_class][0]}")

输出示例

回归模型评估:

均方误差(MSE) = 2900.19

决定系数(R²) = 0.45

分类模型评估:

准确率 = 97.78%

特征重要性 = [0. 0. 0.42436476 0.57563524]

预测新样本类别: setosa

关键组件说明

常用算法

Ø 回归:LinearRegression, RandomForestRegressor, SVR

Ø 分类:LogisticRegression, DecisionTreeClassifier, SVC, KNeighborsClassifier

评估指标

Ø 回归:均方误差(MSE)、R²分数

Ø 分类:准确率(Accuracy)、精确率(Precision)、召回率(Recall)

数据预处理(可选):

python

from sklearn.preprocessing import StandardScaler, OneHotEncoder

from sklearn.impute import SimpleImputer

from sklearn.pipeline import make_pipeline

# 创建包含预处理的流水线

model = make_pipeline(

StandardScaler, # 标准化

SimpleImputer(strategy='mean'), # 缺失值填充

LogisticRegression # 分类器

)

超参数调优

python

from sklearn.model_selection import GridSearchCV

param_grid = {'max_depth': [3, 5, 7], 'min_samples_split': [2, 5, 10]}

grid_search = GridSearchCV(DecisionTreeClassifier, param_grid, cv=5)

grid_search.fit(X_train, y_train)

print(f"最佳参数:{grid_search.best_params_}")

监督学习流程图

原始数据 → 数据清洗 → 特征工程 → 划分训练/测试集

训练模型 ← 选择算法

评估模型 → 调整超参数

预测新数据

通过这个框架,您可以使用不同算法解决各类监督学习问题(回归/分类)。实际应用中需根据数据特性选择合适的算法和预处理方法。

来源:老客数据一点号

相关推荐