门户网站建设定做,wordpress程序简化,wordpress 缩放大小 设置,wordpress弹出搜索结果这里的“机器”指的是计算机软硬件组织#xff0c;而非传统的机械装置#xff1b;而“学习”#xff0c;则是指软件通过训练过程#xff0c;其性能得以提升的过程。
一、算法与模型的关系
在机器学习领域#xff0c;算法和模型是两个核心概念。算法是一种偏抽象的概念而非传统的机械装置而“学习”则是指软件通过训练过程其性能得以提升的过程。
一、算法与模型的关系
在机器学习领域算法和模型是两个核心概念。算法是一种偏抽象的概念它定义了计算机解决问题的步骤和流程。而模型则是更加具体的概念通过代码实现特定算法来完成任务。数学上一个简单的模型可以表示为 yf(x)其中 x 是样本特征y 是样本标签模型的目标就是将输入特征 x 映射到输出标签 y。
二、机器学习算法分类
机器学习可以根据样本是否包含标签分为两大类有监督学习和无监督学习。
2.1 有监督学习Supervised Learning
在有监督学习中样本不仅包含特征 X还包含对应的标签 y。基于预测目标的不同可以进一步细分为分类和回归问题。 分类算法用于预测离散量。 逻辑回归虽然名字中有“回归”但它实际上是一种分类方法常用于二分类问题。KNN回归K近邻算法不仅可以用于分类还可以用于回归任务。朴素贝叶斯基于贝叶斯定理并假设特征之间相互独立的一种简单快速的分类方法。决策树通过构建树状模型来进行决策的算法易于理解和实现。支持向量机SVM寻找能够最大化类别间间隔的超平面来分类数据点。集成学习如随机森林、梯度提升等方法通过组合多个弱学习器来提高预测性能。 回归算法用于预测连续量。 线性回归试图找到自变量与因变量之间的线性关系。KNN回归与KNN分类类似但输出是连续值。决策树回归使用决策树结构进行回归分析。支持向量机回归SVRSVM的一个变种适用于回归任务。集成学习同样适用于回归任务如随机森林回归等。
2.2 无监督学习Unsupervised Learning
在无监督学习中我们只有特征 X没有标签 y。这类学习主要用于探索数据内部结构或模式。 聚类算法 KMeans一种常用的聚类技术它试图将数据划分成K个簇使得每个簇内的点尽可能相似。
三、机器学习项目流程 Step1: 项目分析 首先明确项目的外部特性包括输入和输出是什么并确定这是一个分类还是回归问题。例如在鸢尾花识别项目中输入是一朵花的特征如花萼长度、宽度等输出是该花所属的子品种。 Step2: 数据采集 数据采集是构建数据集的过程基于输入和输出的需求进行。本质上是数理统计问题采集总体的一个样本集通过样本集的统计量来估计总体的统计量 人工智能项目的本质通过对样本的分析来评估/估计 总体的情况。 数据采集之后的结果是结构化数据成行成列确保每行代表一个样本各行之间保持独立同分布每列代表一个特征各个特征之间是独立的每一个列也代表一个变量变量分为离散型变量和连续型变量 离散型变量有限个状态不同的状态值状态之间无大小、程度等概念状态之间是严格对立的比如男或者女高或者矮天晴或者下雨 连续型变量无限个数值数值之间是大小、程度的差异内涵是一致的长度深度等程度问题比如长度10.5米。 怎么理解独立同分布 这包含2个意思独立性和同分布 独立性指的是样本之间没有直接的关系或影响。具体来说如果两个样本X1和X2是独立的那么知道X1的信息不会给你关于X2的任何额外信息。换句话说每个样本点的生成过程不受其他样本点的影响。 同分布意味着所有样本都来自于同一个概率分布。这意味着每一个样本都有相同的分布函数包括均值、方差等统计特性都是相同的。如果一个样本集是同分布的那么无论你选择哪一个样本它都应该具有相似的概率分布特征。 Step3: 数据预处理 包括数据清洗去除重复值、缺失值、异常值、无效特征、数据切分训练集、验证集、测试集以及数据预处理中心化、归一化、标准化等步骤。 训练集训练过程中用来训练模型模型的学习数据 验证集在训练过程中用来验证模型的效果不参与学习过程 测试集训练完成后用来评估模型的效果不参与学习过程 在实际工作中经常把验证集和测试集合并一起使用 Step4: 模型选择 根据问题是分类还是回归来选择合适的模型主要是根据标签来判断是分类还是回归。例如对于分类问题可以选择逻辑回归、KNN、朴素贝叶斯、支持向量机、决策树、集成学习等对于回归问题则可能选择线性回归、KNN、支持向量机、决策树、集成学习等。 Step5: 训练模型 使用训练集的数据对模型进行训练即让模型学习如何将输入特征映射到输出标签。把训练集的特征 X_train 和标签 y_train 给模型 fit 方法进行训练 本质模型学习的过程学习如何把 X 映射为 y Step6: 评估模型 评估模型的效果分类问题可以通过准确率accuracy、召回率recall、精准率precision、F1-score等指标回归问题则常使用MAE平均绝对误差、MSE平均平方误差等指标。 Step7: 保存和部署模型 最后保存训练好的模型以便后续加载和部署应用。
四、示例鸢尾花识别项目
项目分析 项目需求鸢尾花有3个子品种想通过机器学习算法来做分类预测进一步思考
- 任务给定一朵花让模型识别到底是哪个子品种
- 输入一朵花- 一朵花是不能直接输入计算机中- 特征工程- 数字化转型- 抽取/构建跟这朵花的类别有关系的特征来代表这朵花- 跟业务专家详细咨询- 花萼长度 x1- 花萼宽度 x2- 花瓣长度 x3- 花瓣宽度 x4
- 输出子品种:- 分类问题- 对状态进行编码- N个状态:- 0, ..., N-1- 3个类别- 0- 1- 2目标是对鸢尾花的3个子品种进行分类预测。输入为花朵的四个特征花萼长度、宽度花瓣长度、宽度输出为目标子品种编码。
加载数据 使用sklearn.datasets.load_iris()加载鸢尾花数据集并检查其基本信息。
from sklearn.datasets import load_iris
result load_iris()
dir(result)
print(result.DESCR)
X, y load_iris(return_X_yTrue)
# X.shape
# (150, 4)
# y.shape
# (150,)[DESCR,data,data_module,feature_names,filename,frame,target,target_names]切分数据 利用train_test_split函数按比例分割数据集。
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state0)套用模型 采用K近邻算法作为模型并对其进行训练。
from sklearn.neighbors import KNeighborsClassifier
# 实例化对象
knn KNeighborsClassifier()
# 训练模型
knn.fit(XX_train, yy_train)
# 模型预测
y_pred knn.predict(XX_test)
# 预测结果
y_pred
# 真实结果
y_test模型评估 计算预测结果的准确性。
acc (y_pred y_test).mean()
# 0.9666666666666667模型的保存和加载 使用joblib库保存和加载模型。
import joblib
# 模型的保存
joblib.dump(valueknn, filenameknn.model)
# 模型的加载
model joblib.load(filenameknn.model)