机器学习之学习笔记

机器学习-学习笔记

  • 1. 简介
  • 2. 算法
  • 3. 特征工程
      • 3.1 数据集
      • 3.2 特征提取
      • 3.3 特征预处理
      • 3.4 特征降维
  • 4. 分类算法
      • 4.1 `sklearn` 转换器和估计器
      • 4.2 K-近邻算法(KNN)
      • 4.3 模型选择与调优
      • 4.4 朴素贝叶斯算法
      • 4.5 决策树
      • 4.6 集成学习方法之随机森林
  • 5. 回归算法
      • 5.1 线性回归
      • 5.2 过拟合与欠拟合
      • 5.3 岭回归
      • 5.4 逻辑回归(实际上是分类算法,用于解决二分类问题)
  • 6. 聚类算法
      • 1. 无监督学习
      • 2. K-means
      • 3. K-means性能评估指标
      • 4. K-means总结

1. 简介

  • 核心构成:数据 + 模型 + 预测
  • 开发流程
    1. 数据获取:收集原始数据
    2. 数据处理:清洗、整理数据
    3. 特征工程:提取、转换特征
    4. 算法训练:使用训练数据构建模型
    5. 模型评估:验证模型性能
    6. 应用:部署模型解决实际问题

2. 算法

  1. 监督学习:有目标值
    • 分类算法
    • 回归算法
  2. 无监督学习:没有目标值
    • 聚类算法

3. 特征工程

3.1 数据集

  1. 数据构成:特征值(输入) + 目标值(输出)
  2. 常用数据集工具sklearn
    • 数据集类型
      • 小规模数据集datasets.load_*()(如 load_iris
      • 大规模数据集datasets.fetch_*()(如 fetch_20newsgroups
  3. 数据集划分
    • 训练数据:用于模型训练(占比 70%-80%)
    • 测试数据:用于模型验证(占比 20%-30%)
    • 划分 APIsklearn.model_selection.train_test_split

3.2 特征提取

将非数值数据(如文本、图像)转换为数值特征:

  1. 字典特征提取(特征离散化)
    • APIsklearn.feature_extraction.DictVectorizer
    • 稀疏矩阵(Sparse Matrix
      • 作用:节省内存,提升加载效率
      • 参数
        • sparse=True ➔ 返回稀疏矩阵(仅记录非零值位置)
        • sparse=False ➔ 返回二维数组
    • 应用场景
      • 数据集类别特征较多时
      • 数据本身为字典类型时
  2. 文本特征提取
    • 方法 1:词频统计(CountVectorizer
      • APIsklearn.feature_extraction.text.CountVectorizer
      • 输出:词频矩阵(统计每个样本特征词出现次数)
      • 转换为数组:使用 .toarray() 方法
    • 方法 2:TF-IDF加权
      • APIsklearn.feature_extraction.text.TfidfVectorizer
      • 作用:衡量词语在文档集中的重要性
      • 公式 IDF ( t ) = log ⁡ N 1 + DF ( t ) \text{IDF}(t) = \log \frac{N}{1 + \text{DF}(t)} IDF(t)=log1+DF(t)N TF-IDF ( t , d ) = TF ( t , d ) × IDF ( t ) \text{TF-IDF}(t, d) = \text{TF}(t, d) \times \text{IDF}(t) TF-IDF(t,d)=TF(t,d)×IDF(t)
  3. 图像特征提取

3.3 特征预处理

通过转换函数将特征数据转换为更适合算法模型的形式:数值型数据的无量纲化

  1. 归一化
    • 定义:将数据映射到 [0, 1] 之间
    • 公式 X ′ = X − X min X max − X min X' = \frac{X - X_{\text{min}}}{X_{\text{max}} - X_{\text{min}}} X=XmaxXminXXmin
    • APIsklearn.preprocessing.MinMaxScaler(feature_range=(0,1)...)
    • 缺点:对异常值敏感,适合小数据场景
  2. 标准化
    • 定义:将数据变换为均值为 0,标准差为 1
    • 公式 X ′ = X − μ σ X' = \frac{X - \mu}{\sigma} X=σXμ
    • APIsklearn.preprocessing.StandardScaler()
    • 优点:对异常值不敏感,适合大数据场景

3.4 特征降维

  1. 目的:减少特征数量,得到一组“不相关”主变量
  2. 常用方法
    • 特征选择
      • 定义:从原有特征中找出主要特征
      • APIsklearn.feature_selection.VarianceThreshold(threshold=0.1)
      • 方法
        • 低方差特征过滤
        • 相关系数:衡量特征与特征之间的相关程度
          • 皮尔逊相关系数 r = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n} (x_i - \bar{x})^2 \sum_{i=1}^{n} (y_i - \bar{y})^2}} r=i=1n(xixˉ)2i=1n(yiyˉ)2 i=1n(xixˉ)(yiyˉ)
            • r = 1 r=1 r=1 :完全正相关
            • r = − 1 r=-1 r=1 :完全负相关
            • r = 0 r=0 r=0 :无线性相关
    • 主成分分析(PCA)
      • 定义:通过线性变换将高维数据转化为低维数据
      • APIsklearn.decomposition.PCA(n_components=)
        • n_components 为小数:保留指定百分比的特征
        • n_components 为整数:降维到指定维数

4. 分类算法

4.1 sklearn 转换器和估计器

  1. 转换器(特征工程的父类)
    • 实例化一个 transformer
    • 调用 fit_transform()
      • fit():计算每一列的平均值和标准差
      • transform():进行最终的转换
  2. 估计器(机器学习算法的实现)
    • 实例化一个 estimator
    • 调用 estimator.fit(x_train, y_train) 生成模型
    • 模型评估:
      • 直接比对真实值和预测值
        • y_predict = estimator.predict(x_test)
        • y_test == y_predict
      • 计算准确率
        • accuracy = estimator.score(x_test, y_test)

4.2 K-近邻算法(KNN)

  1. 原理
    • 定义:如果一个样本在特征空间中的 k 个最邻近样本中大多数属于某一类别,则该样本也属于这个类别
    • 距离公式 ( a 1 − b 1 ) 2 + ( a 2 − b 2 ) 2 + ( a 3 − b 3 ) 2 \sqrt{(a1-b1)^2 + (a2-b2)^2 + (a3-b3)^2} (a1b1)2+(a2b2)2+(a3b3)2
    • 注意事项
      • 需要先对数据进行无量纲化处理
      • k 过小:容易受到异常点影响
      • k 过大:容易受到样本不均衡影响
  2. 流程
    • 获取数据
    • 数据集划分
    • 特征工程(标准化)
    • KNN 预估器
    • 模型评估
  3. 总结
    • 优点:简单、易于理解、无需训练
    • 缺点:必须指定 K 值,影响分类精度
    • 使用场景:小数据场景

4.3 模型选择与调优

  1. 交叉验证(Cross Validation)
    • 定义:将训练集再分为训练集和验证集
  2. 超参数搜索-网格搜索(Grid Search)
    • 超参数:手动指定的参数
    • APIsklearn.model_selection.GridSearchCV(estimator, param_grid=None, cv=None)
    • 结果分析
      • 最佳参数best_params_
      • 最佳结果best_score_
      • 最佳估计器best_estimator_
      • 交叉验证结果cv_results_

4.4 朴素贝叶斯算法

  1. 朴素性:假定特征与特征之间相互独立
  2. 贝叶斯公式 P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) = ∏ i = 1 n P ( X i ∣ Y ) ⋅ P ( Y ) P ( X ) P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)}=\frac{\prod_{i=1}^{n} P(X_i|Y)\cdot P(Y)}{P(X)} P(YX)=P(X)P(XY)P(Y)=P(X)i=1nP(XiY)P(Y)
    • P ( Y ) P(Y) P(Y) :某文档类别的概率(某文档类别数/总文档数量)
    • P ( X i ∣ Y ) P(X_i|Y) P(XiY) X i 词在 Y 中出现的次数 Y 中所有词出现的次数和 \frac{X_i词在Y中出现的次数}{Y中所有词出现的次数和} Y中所有词出现的次数和Xi词在Y中出现的次数
  3. 应用场景:文本分类
    • 如垃圾邮件过滤、情感分析等
    • 单词作为特征,文档表示为特征向量
  4. 拉普拉斯平滑系数
    • 目的:解决零概率问题,即当某个特征值在训练数据中未出现时,直接计算会导致概率为零
    • 公式 P ( X i ∣ Y ) = N i + α N + α m P(X_i|Y)=\frac{N_i+\alpha}{N+\alpha m} P(XiY)=N+αmNi+α
    • α α α :平滑系数,通常取1
    • m m m :训练文档中统计出的特征词个数
    • N i N_i Ni X i X_i Xi 词在 Y Y Y 中出现的次数
    • N N N Y Y Y 中所有词出现的次数和
  5. 总结
    • 优点
      • 对确实数据不太敏感,算法简单
      • 分类准确度高,速度快
    • 缺点
      • 假设样本属性独立,在特征属性有关联时效果不好

4.5 决策树

  1. 信息:消除不确定性的度量
  2. 信息熵:描述随机变量整体不确定性的期望值,单位为比特(bit)
    • 公式 H ( X ) = − ∑ i = 1 n P ( x i ) log ⁡ 2 P ( x i ) H(X)=-\sum_{i=1}^nP(x_i)\log_2P(x_i) H(X)=i=1nP(xi)log2P(xi)
    • 其中, P ( x i ) P(xi) P(xi)是事件 x i x_i xi发生的概率。
    • 性质
      • 熵值越大,系统越混乱
      • 熵值越小,系统越确定
  3. 信息量:单个事件发生带来的信息量
    • 公式 h ( x i ) = − log ⁡ 2 P ( x i ) h(x_i)=-\log_2P(x_i) h(xi)=log2P(xi)
  4. 条件信息熵:已知随机变量( X )的条件下,( Y ) 的不确定性
    • 公式 H ( Y ∣ X ) = ∑ i = 1 n P ( x i ) H ( Y ∣ X = x i ) = − ∑ i = 1 n ∑ j = 1 m P ( x i , y j ) log ⁡ 2 P ( y j ∣ x i ) H(Y|X)=\sum_{i=1}^nP(x_i)H(Y|X=x_i)=-\sum_{i=1}^n\sum_{j=1}^mP(x_i,y_j)\log_2P(y_j|x_i) H(YX)=i=1nP(xi)H(YX=xi)=i=1nj=1mP(xi,yj)log2P(yjxi)
    • 意义:反映在特征 X X X已知后,目标 Y Y Y剩余的混乱程度
  5. 信息增益
    • 定义:对数据集D,通过特征A的划分能减少多少目标变量的不确定性
    • 公式 g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
      • g ( D , A ) g(D,A) g(D,A) :信息增益
      • H ( D ) H(D) H(D) :信息熵
      • H ( D ∣ A ) H(D|A) H(DA) :信息条件熵
  6. 信息增益率:由于特征的不同取值,避免了信息增益偏向于取值较多特征
    • 公式 g R ( D , A ) = g ( D , A ) H A ( D ) gR(D, A)=\frac{g(D, A)}{H_A(D)} gR(D,A)=HA(D)g(D,A)
  7. 总结:作为决策树的划分依据之一,信息增益越大的特征,更可能被选为分裂节点
    • 优点
      • 易于理解,决策树可视化
    • 缺点
      • 容易过拟合
    • 改进
      • 减枝cart算法
      • 随机森林

4.6 集成学习方法之随机森林

  1. 集成学习方法
    • 核心思想:通过结合多个弱模型(如决策树)的预测,降低方差,提高泛化能力。
    • 分类
      • Bagging:并行训练,减少方差(如随机森林)。
      • Boosting:串行训练,减少偏差(如AdaBoost、GBDT)。
      • Stacking:多层模型融合。
  2. 随机森林(Random Forest)
    • 定义:由多棵决策树组成的集成模型,通过投票(分类)或平均(回归)输出最终结果。
    • 核心原理
      • 双重随机性
        1. 样本随机(Bootstrap)
          • 从原始训练集中有放回抽样 N N N次,生成新训练集
        2. 特征随机
          • 每个节点分裂时,从 M M M个特征中随机选取 m m m
      • 结果聚合
        • 分类:多数投票
        • 回归:平均值
    • 超参数调优
      • 树的数量:n_estimators
      • 最大深度:max_depth
      • 特征子集大小:max_features
    • 总结
      • 在当前所有算法中,具有极好的准确率
      • 能够有效地运行在各大数据集上,处理具有高维特征的输入样本,而且不需要降维
      • 能够评估各个特征在分类问题上的重要性

5. 回归算法

5.1 线性回归

  1. 模型定义
    • 回归方程:用于建模自变量(特征)与因变量(目标)的关系
      • 单变量回归:单个自变量(如 h ( w ) = w 1 x + b h(w) = w_1x + b h(w)=w1x+b
      • 多元回归:多个自变量(如 h ( w ) = w 1 x 1 + w 2 x 2 + b h(w) = w_1x_1 + w_2x_2 + b h(w)=w1x1+w2x2+b
    • 广义线性模型
      • 线性关系:特征为线性,形式为 h ( w ) = w 1 x 1 + w 2 x 2 + ⋅ ⋅ ⋅ + w n x n + b = w T x + b h(w)=w_1x_1+w_2x_2+···+w_nx_n+b=w^Tx+b h(w)=w1x1+w2x2+⋅⋅⋅+wnxn+b=wTx+b
      • 非线性关系:特征非线性,参数为线性(如 h ( x ) = w 1 x 1 + w 2 x 1 2 + b h(x) = w_1x_1 + w_2x_1^2 + b h(x)=w1x1+w2x12+b
  2. 损失函数
    • 最小二乘法:最小化预测值与真实值的平方误差
    • 公式 J ( θ ) = ( h w ( x 1 ) − y 1 ) 2 + ⋅ ⋅ ⋅ + ( h w ( x n ) − y n ) 2 = ∑ i = 1 n ( h w ( x i ) − y i ) 2 J(\theta)=(h_w(x_1)-y_1)^2+···+(h_w(x_n)-y_n)^2=\sum_{i=1}^{n}(h_w(x_i)-y_i)^2 J(θ)=(hw(x1)y1)2+⋅⋅⋅+(hw(xn)yn)2=i=1n(hw(xi)yi)2
    • y i y_i yi :第 i i i个训练样本的真实值
    • h w ( x i ) h_w(x_i) hw(xi) :第 i i i个训练样本特征值组合预测函数
  3. 优化算法
    • 正规方程 W = ( X T X ) − 1 X T y W = (X^T X)^{-1} X^T y W=(XTX)1XTy
      • 理解
        • X X X 为特征值矩阵
        • y y y 为目标值矩阵
      • 优点
        • 直接求解最佳结果
      • 缺点
        • 当特征过多过复杂时,求解速度慢且得不到结果
        • 需处理 X T X X^T X XTX 不可逆的情况
    • 梯度下降
      • 参数更新公式 W i + 1 ′ = W i − α ∂ J ( θ ) ∂ θ i W_{i+1}'=W_i-\alpha \frac{\partial J(\theta)}{\partial \theta_i} Wi+1=WiαθiJ(θ)
      • 梯度:目标函数 J ( θ ) J(θ) J(θ)对参数 θ θ θ的偏导数向量
      • 梯度方向:损失函数下降最快的方向
      • 理解
        • α α α 为学习速率,需要手动指定(超参数)
        • ∂ J ( θ ) ∂ θ \frac{∂J(θ)}{∂θ} θJ(θ) 表示沿着函数下降的方向,在最低点更新W值
      • 优点:适用于大规模数据,避免矩阵逆计算
      • 缺点:需调参学习率,可能收敛到局部最优(凸函数时全局最优)
  4. 回归性能评估
    均方误差(Mean Square Error) ( M S E = 1 m ∑ i = 1 m ( y i − y ˉ ) 2 MSE=\frac{1}{m}\sum_{i=1}^{m}(y^i-\bar{y})^2 MSE=m1i=1m(yiyˉ)2)
    • ( y i y^i yi )为预测值
    • ( y ˉ \bar{y} yˉ )为真实值
    • 均方误差的值越小,说明模型越精确
  5. 总结
  • 梯度下降
    • 需要选择学习率
    • 需要迭代求解
    • 特征数量较大可以使用
  • 正规方程
    • 不需要
    • 一次运算得出
    • 需要计算方程,时间复杂度高

5.2 过拟合与欠拟合

  1. 过拟合
    • 定义:模型在训练数据上表现出色,但在测试集上表现不佳的现象
    • 产生原因
      • 模型过于复杂
      • 特征过多
    • 解决方法
      • L2正则化
        • 作用:减小W(权重系数),削弱某个特征的影响
        • 加入L2正则化后的损失函数: J ( W ) = 1 2 m ∑ i = 1 m ( h w ( x i ) − y i ) 2 + λ ∑ j = 1 n W j 2 J(W)=\frac{1}{2m}\sum_{i=1}^{m}(h_w(x_i)-y_i)^2+\lambda\sum_{j=1}^{n}W_j^2 J(W)=2m1i=1m(hw(xi)yi)2+λj=1nWj2
        • m为样本数,n为特征数
        • λ λ λ:正则化力度,惩罚系数
      • L1正则化
        • 作用:使某些W直接为0,删除这个特征的影响
  2. 欠拟合
    • 定义:模型在训练集上就不能获得足够低的误差,表现差
    • 产生原因
      • 模型过于简单
      • 特征过少
    • 解决方法
      • 增加数据的特征数量

5.3 岭回归

  • 定义
    • 加入L2正则化后的线性回归
  • 公式 J ( W ) = 1 2 m ∑ i = 1 m ( h w ( x i ) − y i ) 2 + λ ∑ j = 1 n W j 2 J(W)=\frac{1}{2m}\sum_{i=1}^{m}(h_w(x_i)-y_i)^2+\lambda\sum_{j=1}^{n}W_j^2 J(W)=2m1i=1m(hw(xi)yi)2+λj=1nWj2
    • λ λ λ:正则化力度,惩罚系数
  • 总结
    • 正则化力度λ越大,权重系数W越小
    • 正则化力度λ越小,权重系数W越大

5.4 逻辑回归(实际上是分类算法,用于解决二分类问题)

  1. 原理
    • 线性回归的输出 就是 逻辑回归的输入
    • h ( w ) = w 1 x 1 + w 2 x 2 + ⋅ ⋅ ⋅ + w n x n + b = w T x + b h(w)=w_1x_1+w_2x_2+···+w_nx_n+b=w^Tx+b h(w)=w1x1+w2x2+⋅⋅⋅+wnxn+b=wTx+b
    • 逻辑回归的真实值/预测值:是否属于某个类别,即0或1
  2. 激活函数
    • sigmoid函数 g ( w T x ) = 1 1 + e − w T x g(w^Tx)=\frac{1}{1+e^{-w^Tx}} g(wTx)=1+ewTx1
    • 线性回归的结果输入到sigmoid函数当中
    • 输出结果: [ 0 , 1 ] [0,1] [0,1]区间中的一个概率值,默认0.5为阈值
  3. 损失函数
    • 对数似然损失 c o s t ( h w ( x ) , y ) = ∑ i = 1 m [ − y i ⋅ l o g ( h w ( x ) ) − ( 1 − y i ) ⋅ l o g ( 1 − h w ( x ) ) ] cost(h_w(x),y)=\sum_{i=1}^{m}[-y_i·log(h_w(x))-(1-y_i)·log(1-h_w(x))] cost(hw(x),y)=i=1m[yilog(hw(x))(1yi)log(1hw(x))]
    • y为真实值0或1,
    • y = 1 y=1 y=1 时, c o s t ( h w ( x ) , y ) = − l o g ( h w ( x ) ) cost(h_w(x),y)=-log(h_w(x)) cost(hw(x),y)=log(hw(x))
    • y = 0 y=0 y=0 时, c o s t ( h w ( x ) , y ) = − l o g ( 1 − h w ( x ) ) cost(h_w(x),y)=-log(1-h_w(x)) cost(hw(x),y)=log(1hw(x))
[样本特征输入 X]
-->[权重 W]
-->[线性回归运算 z = w₀ + w₁x₁ + ...]
-->[线性回归输出 z]
-->[Sigmoid函数 σ(z) = 1/(1+e⁻ᶻ)]
-->[逻辑回归结果 0 或 1]-->[真实结果 0 或 1]
  1. 优化算法
    • 梯度下降
    • 参数更新公式 W i + 1 ′ = W i − α ∂ J ( θ ) ∂ θ i W_{i+1}'=W_i-\alpha \frac{\partial J(\theta)}{\partial \theta_i} Wi+1=WiαθiJ(θ)
  2. 评估方法
    | | | 预测结果 | 预测结果 |
    | -------- | :-------: | :------------------------: | :------------------------: |
    | | | 预测为正类 | 预测为负类 |
    | 真实结果 | 实际为正类 | 真正例(True Positive,TP) | 真反例(True Negative,TN) |
    | 真实结果 | 实际为负类 | 假正例(False Positive,FP) | 假反例(False Negative,FN) |
  3. 混淆矩阵:预测结果与正确标记之间存在的四种不同的组合
  4. 精确率:预测为正类中实际为正类的比例 P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP + FP} Precision=TP+FPTP
    • 反映预测结果的准确性
    • 适用于需要尽量减少假正例的场景,例如垃圾邮件分类(避免将正常邮件误判为垃圾邮件)
  5. 召回率:实际为正类中被正确预测的比例 R e c a l l = T P T P + F N Recall= \frac{TP}{TP + FN} Recall=TP+FNTP
    • 反映模型对正类样本的覆盖能力
    • 适用于需要尽量减少假反例的场景,例如疾病检测(避免漏诊)
  6. F1-score:精确率和召回率的调和平均 F 1 = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l = 2 T P 2 T P + F N + F P F1= \frac{2·Precision·Recall}{Precision+Recall}=\frac{2TP}{2TP+FN+FP} F1=Precision+Recall2PrecisionRecall=2TP+FN+FP2TP
    • 反映模型的稳健性
    • 适用于类别不平衡的数据集,例如欺诈检测(正类样本很少)
  7. 样本不均衡下的评估
    • TPR(召回率):所有真实结果为T的样本中预测结果为T的比例 T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP
    • FPR:所有真实结果为F的样本中预测结果为T的比例 F P R = F P F P + T N FPR=\frac{FP}{FP+TN} FPR=FP+TNFP
    • ROC曲线:横轴FPR,纵轴TPR
      • 特点
        • ROC曲线越靠近左上角,模型性能越好。
        • 对角线(TPR = FPR)表示随机猜测模型的性能。
    • AUC指标:AUC是ROC曲线下的面积,用于量化模型的整体性能
      • 意义
        • AUC衡量模型在不同阈值下对正负样本的区分能力
        • A U C = 1 AUC = 1 AUC=1 :模型完美分类
        • A U C = 0.5 AUC = 0.5 AUC=0.5 :模型没有区分能力(相当于随机猜测)
        • A U C ∈ ( 0.5 , 1 ) AUC∈(0.5,1) AUC(0.5,1) :优于随机猜测,越接近1说明模型越好

6. 聚类算法

1. 无监督学习

没有目标值

2. K-means

  1. 原理:将数据集划分为k个簇
  2. 目标:将相似的数据点分配到同一个簇中,同时使不同簇之间的数据点尽可能不同
  3. 聚类步骤
    1. 初始化

      • 随机选择k个数据点作为初始的簇中心(质心)
    2. 分配数据点

      • 对于每个数据点,计算其与所有质心的距离
      • 将数据点分配到距离最近的质心所在的簇
    3. 更新质心

      • 对于每个簇,重新计算其质心(即簇内所有数据点的均值)
    4. 迭代

      • 重复步骤 2 和 3,直到质心不再变化或达到最大迭代次数

3. K-means性能评估指标

  1. 轮廓系数 b i 为 i 到其他族群的所有样本的距离最小值, a i 为 i 到本身簇的平均距离 b_i为i到其他族群的所有样本的距离最小值,a_i为i到本身簇的平均距离 bii到其他族群的所有样本的距离最小值,aii到本身簇的平均距离 S C i = b i − a i m a x ( b i , a i ) SC_i=\frac{b_i-a_i}{max(b_i,a_i)} SCi=max(bi,ai)biai
  2. 性能评估
    • 如果 b i > > a i b_i>>a_i bi>>ai ,轮廓系数越趋近1,效果越好
    • 如果 b i < < a i b_i<bi<<ai ,轮廓系数越趋近-1,效果越不好

4. K-means总结

  1. 特点:采用迭代算法,直观易懂且实用
  2. 缺点:对初始质心的选择敏感,可能收敛到局部最优
  3. 解决方法:多次聚类,多次取随机数据点
  4. 注意:聚类一般做在分类之前,一般得到的数据集没有进行人为标注,表现为无目标值,通过聚类得到初步的目标值

你可能感兴趣的:(机器学习,学习,笔记,人工智能,python)