Machine Learning

Machine Learning

建议学习资料:https://github.com/chengyingshe/ai_learning

main分支中有使用仓库的介绍,ml分支为机器学习部分

监督式学习

KNN算法

K最近邻算法
计算一个新的特征点在训练数据集中距离其最近的K个点中种类最多的类别(label)作为该点的类别(label)。
严格意义上该算法并没有学习能力

# sklearn实现KNN算法
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors)
knn.fit(features, labels)
knn.predict(<test_data>) # <test_data>必须是一个数组(batch)

决策树算法

  • 信息熵:H(x)=iPi(x)×log2Pi(x)

  • 缺点:

    容易发生过拟合(需要进行剪枝等操作)

    对数据的抖动变化明显

# 使用sklearn实现决策树算法
from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier(max_depth)
classifier.fit(features, labels) # features中的元素必须都是数值类型的(需要对字符串类型的数据进行编码)
classifier.predict(<test_data>)

朴素贝叶斯算法

  • 词集模型(set-of-words)

  • 词袋模型(bag-of-words)

    每个单词在词集中只能出现0或1次,在词袋模型中可以出现多次

文档编码

from sklearn.feature_extraction.text import CountVectorizer
# 创建一个文本向量编码器()
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(documents)

Logistic回归

SVM分类器

使用线性方程来表示多维空间下的超平面:

wTx+b=0

其中 w 为法向量,决定了超平面的方向 b 为位移项,决定

了超平面与原点之间的距离

样本主 间中任意点 到超平面 (w, b) 的距离可写为

r=|wTx+b|||w||

元算法

将多个分类器组合起来的方法 (meta-algorithm),用于提升模型性能

  • AdaBoost (adaptive boosting) 算法

    image

    分类器训练数据中的每个样本,并赋予其一个权重,这些权重构成了向量 D ,AdaBoost为每个分类器都分配了一个权重值 α

    image

    image

    α=12ln(1εε)(单调递减函数,ε 越大,α 越小,分配的权重越小)

相关知识补充

数据编码

# 数据编码
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import numpy as np
le = LabelEncoder()
# 将字符串类型的数据进行编码(先进行排序,然后选用index)
le.fit_transform(['aaa', 'bbb', 'eee', 'ddd']).tolist()
ohe = OneHotEncoder()
# 将字符串类型的数据进行one-hot vector编码
# 传入的字符串数组的shape必须是 n x 1
ohe.fit_transform(np.array(['aaa', 'bbb', 'eee', 'ddd']).reshape(-1, 1)).toarray()

数据填充(填充数据集中的缺失值)

image

模型性能度量指标

image

  • TP(true positive)
  • FP(false positive)
  • TN(true negative)
  • FN(false negative)
  • 正确率

    Precision=TPTP+FP

  • 召回率

    Recall=TPTP+FN

  • ROC曲线

    横轴:=TPTP+FN

    纵轴:=FPFP+TN

    AUC:ROC曲线下的面积(面积(0~1)越大说明分类器越好)

预测数值型数据(回归)

线性回归

树回归

posted @   MaximeSHE  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示