监督学习(Supervised Learning)详解 一、核心理论 定义 : 监督学习是一种机器学习范式,模型从带标签的数据集 中学习输入(特征)与输出(目标)之间的映射关系。本质是通过训练数据建立预测模型:y = f(X) + ε 其中:
X:输入特征(自变量)
y:输出标签(因变量)
f:学习的目标函数
ε:随机误差
核心要素 :
训练数据 :包含输入特征和对应标签的样本集合{(X₁, y₁), (X₂, y₂), ..., (Xₙ, yₙ)}
学习目标 :构建预测函数 f̂ 来逼近真实函数 f
损失函数 :量化预测值与真实值的差距(如均方误差、交叉熵)
优化过程 :通过算法(如梯度下降)最小化损失函数
二、主要任务类型
任务类型
输出形式
目标
典型算法
分类
离散类别
预测类别标签
逻辑回归、SVM、决策树、KNN
回归
连续数值
预测数值
线性回归、多项式回归、随机森林
三、经典案例:糖尿病预测 问题描述 : 根据患者医疗特征预测5年内是否患糖尿病(二分类问题)
数据集 :Pima Indians Diabetes Dataset
输入特征 (X):
怀孕次数
血糖浓度
血压
皮脂厚度
胰岛素水平
BMI指数
糖尿病遗传函数
年龄
输出标签 (y):
import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.ensemble import RandomForestClassifierfrom sklearn.metrics import accuracy_score url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" column_names = ['Pregnancies' ,'Glucose' ,'BP' ,'SkinThickness' ,'Insulin' ,'BMI' ,'Pedigree' ,'Age' ,'Outcome' ] data = pd.read_csv(url, names=column_names) X = data.drop('Outcome' , axis=1 ) y = data['Outcome' ] X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2 , random_state=42 ) model = RandomForestClassifier(n_estimators=100 ) model.fit(X_train, y_train) y_pred = model.predict(X_test)print (f"准确率: {accuracy_score(y_test, y_pred):.2 f} " ) new_patient = [[2 , 120 , 70 , 20 , 80 , 25.5 , 0.8 , 35 ]] prediction = model.predict(new_patient)print ("患病风险: " , "高危" if prediction[0 ]==1 else "低危" )
四、实际应用场景
金融领域 :
信用评分(分类)
股票价格预测(回归)
欺诈检测(分类)
医疗健康 :
疾病诊断(分类)
药物反应预测(回归)
医疗影像分析(分类)
工业领域 :
设备故障预测(分类)
产品质量控制(回归)
需求预测(时间序列回归)
自然语言处理 :
情感分析(分类)
机器翻译(序列预测)
命名实体识别(序列标注)