决策边界算法

决策边界 (decision boundary) 支持向量机获取这些数据点并输出最能分离标签的超平面。这条线是决策边界 决策平面 ( decision surface ),是将空间划分为不同的区域。位于决策平面一侧的数据被定义为与位于另一侧的数据属于不同的类别。决策面可以作为学习过程的结果创建或修改,它们经常用于机器学习、模式识别和分类系统。 环境空间 ( Ambient Space),围绕数学对象即对象本身的空间,如一维 Line ,可以独立研究,这种情况下L则是L;再例如将L作为二维空间 $R^2$ 的对象进行研究,这种情况下 L 的环境空间是 $R^2$。 超平面(Hyperplane)是一个子空间, N维空间的超平面是其具有维数的平面的子集。就其性质而言,它将空间分成两个半空间,其维度比其环境空间的维度小 1。如果空间是三维的,那么它的超平面就是二维维平面,而如果空间是 2 维的,那么它的超平面就是一维线。支持向量机 (SVM) 通过找到使两个类之间的边距最大化的超平面来执行分类。 法向量 (Normal) 是垂直于该平面、另一个向量的 90° 角倾斜 什么是支持向量 支持向量 (Support vectors),靠近决策平面(超平面)的数据点。 如图所示,从一维平面来看,哪个是分离的超平面? 一般而言,会有很多种解决方法(超平面),支持向量机就是如何找到最佳方法的解决方案。 转置运算 矩阵的转置是原始矩阵的翻转版本,可以通过转换矩阵的行和列来转置矩阵。我们用 $A^T$ 表示矩阵 A 的转置。例如, $$A=\left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ \end{matrix} \right]$$ ;那么 A 的转置就为 $$A=\left[ \begin{matrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \\ \end{matrix} \right]$$ ;...

 ·  · 

KNN算法

Overview K近邻值算法 KNN (K — Nearest Neighbors) 是一种机器学习中的分类算法;K-NN是一种非参数的惰性学习算法。非参数意味着没有对基础数据分布的假设,即模型结构是从数据集确定的。 它被称为惰性算法的原因是,因为它**不需要任何训练数据点来生成模型。**所有训练数据都用于测试阶段,这使得训练更快,测试阶段更慢且成本更高。 如何工作 KNN 算法是通过计算新对象与训练数据集中所有对象之间的距离,对新实例进行分类或回归预测。然后选择训练数据集中距离最小的 K 个示例,并通过平均结果进行预测。 如图所示:一个未分类的数据(红色)和所有其他已分类的数据(黄色和紫色),每个数据都属于一个类别。因此,计算未分类数据与所有其他数据的距离,以了解哪些距离最小,因此当K= 3 (或K= 6 )最接近的数据并检查出现最多的类,如下图所示,与新数据最接近的数据是在第一个圆圈内(圆圈内)的数据,在这个圆圈内还有 3 个其他数据(已经用黄色分类),我们将检查其中的主要类别,会被归类为紫色,因为有2个紫色球,1个黄色球。 KNN算法要执行的步骤 将数据分为训练数据和测试数据 选择一个值 K 确定要使用的距离算法 从需要分类的测试数据中选择一个样本,计算到它的 n 个训练样本的距离。 对获得的距离进行排序并取 k最近的数据样本。 根据 k 个邻居的多数票将测试类分配给该类。 影响KNN算法性能的因素 用于确定最近邻居的距离的算法 用于从 K 近邻派生分类的决策规则 用于对新示例进行分类的邻居数 如何计算距离 测量距离是KNN算法的核心,总结了问题域中两个对象之间的相对差异。比较常见的是,这两个对象是描述主题(例如人、汽车或房屋)或事件(例如购买、索赔或诊断)的数据行。 汉明距离 汉明距离(Hamming Distance)计算两个二进制向量之间的距离,也简称为二进制串 binary strings 或位串 bitstrings ;换句话说,汉明距离是将一个字符串更改为另一个字符串所需的最小替换次数,或将一个字符串转换为另一个字符串的最小错误数。 示例:如一列具有类别 “红色”、“绿色” 和 “蓝色”,您可以将每个示例独热编码为一个位串,每列一个位。 注:独热编码 one-hot encoding:将分类数据,转换成二进制向量表示,这个二进制向量用来表示一种特殊的bit(二进制位)组合,该字节里,仅容许单一bit为1,其他bit都必须为0 如: apple banana pineapple 1 0 0 0 1 0 0 0 1 100 表示苹果,100就是苹果的二进制向量 010 表示香蕉,010就是香蕉的二进制向量...

 ·  · 

源码分析client-go架构 - 什么是informer

之前了解了client-go中的架构设计,也就是 tools/cache 下面的一些概念,那么下面将对informer进行分析 Controller 在client-go informer架构中存在一个 controller ,这个不是 Kubernetes 中的Controller组件;而是在 tools/cache 中的一个概念,controller 位于 informer 之下,Reflector 之上。code Config 从严格意义上来讲,controller 是作为一个 sharedInformer 使用,通过接受一个 Config ,而 Reflector 则作为 controller 的 slot。Config 则包含了这个 controller 里所有的设置。 go 1 2 3 4 5 6 7 8 9 type Config struct { Queue // DeltaFIFO ListerWatcher // 用于list watch的 Process ProcessFunc // 定义如何从DeltaFIFO中弹出数据后处理的操作 ObjectType runtime.Object // Controller处理的对象数据,实际上就是kubernetes中的资源 FullResyncPeriod time.Duration // 全量同步的周期 ShouldResync ShouldResyncFunc // Reflector通过该标记来确定是否应该重新同步 RetryOnError bool } controller 然后 controller 又为 reflertor 的上层...

 ·  · 

安装Debian11 (bullseye) Step-by-Step

Preparation debian11几乎可以使用任何旧的计算机硬件,因为最小安装的要求非常低。以下是最低要求和推荐要求: 最低要求 推荐要求 存储:10 Gigabytes 内存:512 Megabytes CPU: 1 GigaHertz 存储:10 Gigabytes内存:2 GigabytesCPU: 1 GigaHertz or more Debian11 EOL:August 31st, 2026 如何选择下载安装包 offical mirror aliyun mirror 官网提供了安装包的下载,其中CD是网络安装,DVD是离线安装 debian官方下载页面 Notes:CD安装包很小,下载下来是 debian-11.4.0-amd64-netinst.iso 如名所示,这是一个网络安装包,所以推荐下载DVD部分,可以达到离线安装的效果 安装步骤 在界面中选择“Install”,安装将开始。如果图形化安装可以选择“Graphical install”,这里选择“Install”。 欢迎页面 完成后,系统将提示选择安装时的“语言”。选择喜欢的语言,然后按“Enter”。这里选择英文 选择语言页面 这将是接下来安装步骤 安装步骤概述 选择位置与键盘布局 选择区域 选择区域 下面部署时选择键盘布局:中国大陆使用的键盘布局是美国-英语,不要选择英国-英语之类,布局是不一样的,会存在按键输出的结果会不同 选择键盘布局 完成上述操作后,将开始加载镜像。等待扫描完成。。。。 等待扫描组件 设置主机名和域名 这步骤中将配置一个“主机名”。与一个“域”名称。 配置主机名 “域” 可以选择留空确定 配置域 完成上述操作后,安装程序将提示需要设置 root 密码。输入您的 root 密码,然后在重新输入以进行验证后继续。 设置Root密码 设置非ROOT用户名、账户和密码 下一步创建一个非ROOT用户,这个步骤是必须的,并为这个新创建的帐户分配一个密码。以下截图将描述将如何完成此操作。 配置普通用户 为这个用户配置密码 为普通用户配置密码 为普通用户配置密码——二次确认 设置时钟时区 Eastern 美东时间 Central 北美中部...

 ·  · 

Kubernetes组件核心 - client-go

Prepare Introduction 从2016年8月起,Kubernetes官方提取了与Kubernetes相关的核心源代码,形成了一个独立的项目,即client-go,作为官方提供的go客户端。Kubernetes的部分代码也是基于这个项目的。 client-go 是kubernetes中广义的客户端基础库,在Kubernetes各个组件中或多或少都有使用其功能。。也就是说,client-go可以在kubernetes集群中添加、删除和查询资源对象(包括deployment、service、pod、ns等)。 在了解client-go前,还需要掌握一些概念 在客户端验证 API 使用证书和使用令牌,来验证客户端 kubernetes集群的访问模式 使用证书和令牌来验证客户端 在访问apiserver时,会对访问者进行鉴权,因为是https请求,在请求时是需要ca的,也可以使用 -k 使用insecure模式 text 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 $ curl --cacert /etc/kubernetes/pki/ca.crt https://10.0.0.4:6443/version \{ "major": "1", "minor": "18+", "gitVersion": "v1.18.20-dirty", "gitCommit": "1f3e19b7beb1cc0110255668c4238ed63dadb7ad", "gitTreeState": "dirty", "buildDate": "2022-05-17T12:45:14Z", "goVersion": "go1.16.15", "compiler": "gc", "platform": "linux/amd64" } $ curl -k https://10....

 ·  ·