Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
安浅Y
apachecn-dl-zh
提交
bd666c43
A
apachecn-dl-zh
项目概览
安浅Y
/
apachecn-dl-zh
与 Fork 源项目一致
Fork自
OpenDocCN / apachecn-dl-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apachecn-dl-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bd666c43
编写于
12月 06, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-12-06 18:16:28
上级
35e0e826
变更
13
展开全部
隐藏空白更改
内联
并排
Showing
13 changed file
with
224 addition
and
203 deletion
+224
-203
new/ai-py/00.md
new/ai-py/00.md
+1
-1
new/ai-py/06.md
new/ai-py/06.md
+9
-9
new/ai-py/07.md
new/ai-py/07.md
+178
-157
new/ai-py/08.md
new/ai-py/08.md
+6
-6
new/ai-py/12.md
new/ai-py/12.md
+1
-1
new/ai-py/18.md
new/ai-py/18.md
+1
-1
new/ai-py/21.md
new/ai-py/21.md
+1
-1
new/handson-unsup-learn-py/02.md
new/handson-unsup-learn-py/02.md
+9
-9
new/handson-unsup-learn-py/03.md
new/handson-unsup-learn-py/03.md
+12
-12
new/handson-unsup-learn-py/04.md
new/handson-unsup-learn-py/04.md
+2
-2
new/handson-unsup-learn-py/05.md
new/handson-unsup-learn-py/05.md
+2
-2
new/handson-unsup-learn-py/06.md
new/handson-unsup-learn-py/06.md
+1
-1
new/handson-unsup-learn-py/10.md
new/handson-unsup-learn-py/10.md
+1
-1
未找到文件。
new/ai-py/00.md
浏览文件 @
bd666c43
...
...
@@ -52,7 +52,7 @@
第 8 章,“构建推荐系统”
本章将演示如何构建推荐系统。 它还将显示如何保留用户首选项。 它将涵盖最近邻
居
搜索和协作过滤的概念。 最后,将有一个示例显示如何构建电影推荐系统。
本章将演示如何构建推荐系统。 它还将显示如何保留用户首选项。 它将涵盖最近邻搜索和协作过滤的概念。 最后,将有一个示例显示如何构建电影推荐系统。
第 9 章,“逻辑编程”
...
...
new/ai-py/06.md
浏览文件 @
bd666c43
...
...
@@ -145,7 +145,7 @@ plt.show()
集成学习已广泛应用于多个领域,包括数据分类,预测建模和异常检测。
那么为什么要使用集成学习呢? 为了获得理解,让我们使用一个真实的例子。 您想购买的新电视,但您不知道最新的型号是什么。 您的目标是使钱物有所值,但您对此主题的知识不足,无法做出明智的决定。 当您必须做出类似决定时,您可能会得到该领域内多位专家的意见。 这将帮助您做出最佳决定。 通常,您可以不依靠一种意见,而可以结合这些专家的个人决定来做出决定。 这样做可最大程度地减少错误或次优
l
决策的可能性。
那么为什么要使用集成学习呢? 为了获得理解,让我们使用一个真实的例子。 您想购买的新电视,但您不知道最新的型号是什么。 您的目标是使钱物有所值,但您对此主题的知识不足,无法做出明智的决定。 当您必须做出类似决定时,您可能会得到该领域内多位专家的意见。 这将帮助您做出最佳决定。 通常,您可以不依靠一种意见,而可以结合这些专家的个人决定来做出决定。 这样做可最大程度地减少错误或次优决策的可能性。
## 建立具有整体学习的学习模型
...
...
@@ -155,7 +155,7 @@ plt.show()
通过为每个模型使用不同的训练参数来实现多样性。 这允许各个模型为训练数据生成不同的决策边界。 这意味着每个模型将使用不同的规则进行推断,这是验证结果的有效方法。 如果模型之间存在一致性,则可以增加预测的可信度。
集成学习的一种特殊类型是将决策树组合成一个集成。 这些模型通常被称为随机森林和极随机森林,我们将在
com
。
集成学习的一种特殊类型是将决策树组合成一个集成。 这些模型通常被称为随机森林和极随机森林,我们将在
接下来的章节中描述
。
# 什么是随机森林和极随机森林?
...
...
@@ -165,7 +165,7 @@ plt.show()
随机森林的优势之一是它们不会过度拟合。 过度拟合是机器学习中的常见问题。 非参数和非线性模型在学习目标函数时具有更大的灵活性,因此过度拟合的可能性更大。 通过使用各种随机子集构建一组多样化的决策树,我们确保模型不会过度拟合训练数据。 在树的构造过程中,将节点连续拆分,并选择最佳阈值以减小每个级别的熵。 此拆分未考虑输入数据集中的所有要素。 取而代之的是,它在考虑中的特征的随机子集中选择最佳分割。 添加此随机性往往会增加随机森林的偏差,但由于求平均值,方差会减小。 因此,我们最终得到了一个健壮的模型。
**极随机森林**
将随机性提高到一个新水平。 除了采用特征的随机子集外,还随机选择阈值。 选择这些随机生成的阈值作为分割规则,这将进一步减小模型的方差。 因此,与使用随机森林获得的决策边界相比,使用
高度随机(HTG3)m
森林获得的决策边界趋于平滑。 极随机森林算法的某些实现还可以实现更好的并行化,并更好地扩展规模。
**极随机森林**
将随机性提高到一个新水平。 除了采用特征的随机子集外,还随机选择阈值。 选择这些随机生成的阈值作为分割规则,这将进一步减小模型的方差。 因此,与使用随机森林获得的决策边界相比,使用
极随机
森林获得的决策边界趋于平滑。 极随机森林算法的某些实现还可以实现更好的并行化,并更好地扩展规模。
## 建立随机森林和极端随机森林分类器
...
...
@@ -328,7 +328,7 @@ $ python3 random_forests.py --classifier-type erf
图 6:测试数据集上的分类器边界
如果将前面的屏幕截图与从随机森林分类器获得的边界进行比较,您会发现这些边界更平滑。 原因是,极随机的森林在训练
p
的过程中拥有更多的自由来提出好的决策树,因此它们通常产生更好的边界。
如果将前面的屏幕截图与从随机森林分类器获得的边界进行比较,您会发现这些边界更平滑。 原因是,极随机的森林在训练的过程中拥有更多的自由来提出好的决策树,因此它们通常产生更好的边界。
## 估计预测的置信度
...
...
@@ -386,7 +386,7 @@ $ python3 random_forests.py --classifier-type erf
图 10:数据集概率输出
可以看出,输出由
t
与先前的结果组成。
可以看出,输出由
`t`
与先前的结果组成。
# 处理班级失衡
...
...
@@ -499,13 +499,13 @@ print("#"*40 + "\n")
plt
.
show
()
```
完整代码在文件
`class_imbalance.py`
中给出。 如果运行代码,您将看到以下图形。 第一个
raph
表示输入数据:
完整代码在文件
`class_imbalance.py`
中给出。 如果运行代码,您将看到以下图形。 第一个
图
表示输入数据:
![](
img/B15441_06_11.png
)
图 11:可视化输入数据
第二个图形显示了测试数据
t
的分类器边界:
第二个图形显示了测试数据的分类器边界:
![](
img/B15441_06_12.png
)
...
...
@@ -760,9 +760,9 @@ plt.show()
![](
img/B15441_06_18.png
)
图 18:使用 Adaboost
Regressor
的功能重要性
图 18:使用 Adaboost
回归器
的功能重要性
根据这一分析,特征
LSTAT
是该数据集中最重要的特征。
根据这一分析,特征
`LSTAT`
是该数据集中最重要的特征。
# 使用极为随机的森林回归器预测流量
...
...
new/ai-py/07.md
浏览文件 @
bd666c43
此差异已折叠。
点击以展开。
new/ai-py/08.md
浏览文件 @
bd666c43
...
...
@@ -7,14 +7,14 @@
到本章末,您将了解以下内容:
*
提取最近的邻居
*
建立
*K 最近邻
居
*
分类器
*
建立
*K 最近邻*
分类器
*
计算相似度分数
*
使用协作过滤查找相似用户
*
建立电影推荐系统
# 提取最近的邻居
推荐人系统采用最近邻
居的概念来找到好的建议。 名称
*最近邻居*
是指从给定数据集中查找到输入点最近的数据点的过程。 这通常用于构建分类系统,该分类系统根据输入数据点与各种类别的接近程度对数据点进行分类。 让我们看看如何找到给定数据点的最近邻居
。
推荐人系统采用最近邻
的概念来找到好的建议。 名称
*最近邻*
是指从给定数据集中查找到输入点最近的数据点的过程。 这通常用于构建分类系统,该分类系统根据输入数据点与各种类别的接近程度对数据点进行分类。 让我们看看如何找到给定数据点的最近邻
。
首先,创建一个新的 Python 文件并导入以下软件包:
...
...
@@ -33,7 +33,7 @@ X = np.array([[2.1, 1.3], [1.3, 3.2], [2.9, 2.5], [2.7, 5.4], [3.8, 0.9],
[
5.7
,
3.5
],
[
6.1
,
4.3
],
[
5.1
,
2.2
],
[
6.2
,
1.1
]])
```
定义要提取的最近邻
居
的数量:
定义要提取的最近邻的数量:
```
py
# Number of nearest neighbors
...
...
@@ -64,7 +64,7 @@ knn_model = NearestNeighbors(n_neighbors=k, algorithm='ball_tree').fit(X)
distances
,
indices
=
knn_model
.
kneighbors
(
test_data_point
)
```
打印从模型中提取的最近邻
居
:
打印从模型中提取的最近邻:
```
py
# Print the 'k' nearest neighbors
...
...
@@ -145,7 +145,7 @@ for i in range(X.shape[0]):
s
=
75
,
edgecolors
=
'black'
,
facecolors
=
'none'
)
```
定义要使用的最近邻
居
的数量:
定义要使用的最近邻的数量:
```
py
# Number of nearest neighbors
...
...
@@ -320,7 +320,7 @@ Predicted output: 1
欧几里得距离的值可以是无界的。 因此,我们采用该值并将其转换为欧几里得分数从
`0`
到
`1`
的范围。 如果两个对象之间的欧几里得距离较大,则欧几里得分数应较低,因为低分数表明对象不相似。 因此,欧几里得距离与欧几里得分数成反比。
**皮尔森评分**
是两个数据点之间相关性的量度。 它使用两个数据点之间的协方差以及它们各自的标准差来计算分数。 得分范围从
*-1*
到
*+1*
。 分数
*+1*
表示数据点相似,分数
*-1*
表示数据点相似。 分数
`0`
表示它们之间没有相关性。 让我们看看如何计算这些分数。
**皮尔森评分**
是两个数据点之间相关性的量度。 它使用两个数据点之间的协方差以及它们各自的标准差来计算分数。 得分范围从
`-1`
到
*+1*
。 分数
*+1*
表示数据点相似,分数
`-1`
表示数据点相似。 分数
`0`
表示它们之间没有相关性。 让我们看看如何计算这些分数。
创建一个新的 Python 文件并导入以下软件包:
...
...
new/ai-py/12.md
浏览文件 @
bd666c43
...
...
@@ -171,7 +171,7 @@ Amazon SageMaker 使开发人员可以在整个机器学习管道中提高生产
*
图片分类
*
神经主题模型(NTM)
*
IP 洞察
*
K 最近邻
居
(k-NN)
*
K 最近邻(k-NN)
*
潜在狄利克雷分配(LDA)
*
线性学习者
*
Object2Vec
...
...
new/ai-py/18.md
浏览文件 @
bd666c43
...
...
@@ -461,7 +461,7 @@ if __name__=='__main__':
您已经可以想象到,仅在移动时才生成图像将节省大量存储空间。 一个简单的例子是使用安全摄像机。 看着一个小时或几个小时的镜头对准空旷的停车场,可能比看着油漆枯燥更无聊,但是如果安全系统足够智能,可以在车架发生运动时进行记录,我们将能够辨别出“有趣的东西”。 视频中的“”部分。
基于颜色空间的跟踪允许我们跟踪有色对象,但是我们必须首先定义颜色。 这似乎是限制性的! 让我们看看如何在实时视频中选择一个对象,然后使用一个可以跟踪它的跟踪器。 这是,在其中
**CAMShift**
算法(代表代表
**连续自适应均值移位**
)变得很重要。 这基本上是 Mean
Shift 算法的自适应版本。 我们将在下一节讨论 C AMShift。
基于颜色空间的跟踪允许我们跟踪有色对象,但是我们必须首先定义颜色。 这似乎是限制性的! 让我们看看如何在实时视频中选择一个对象,然后使用一个可以跟踪它的跟踪器。 这是,在其中
**CAMShift**
算法(代表代表
**连续自适应均值移位**
)变得很重要。 这基本上是 MeanShift 算法的自适应版本。 我们将在下一节讨论 C AMShift。
# 使用 CAMShift 算法构建交互式对象跟踪器
...
...
new/ai-py/21.md
浏览文件 @
bd666c43
...
...
@@ -66,7 +66,7 @@ S 型函数(也称为作为逻辑函数)定义如下:
## Tanh 功能
*tanh(z)*
函数是 S 形函数的重新缩放的版本。 其输出范围是
*-1*
至
*-1*
,而不是
`0`
至
`1`
。
*tanh(z)*
函数是 S 形函数的重新缩放的版本。 其输出范围是
`-1`
至
`-1`
,而不是
`0`
至
`1`
。
![
Image result for tanh function image"
](
img/B15441_21_03.png
)
...
...
new/handson-unsup-learn-py/02.md
浏览文件 @
bd666c43
...
...
@@ -59,7 +59,7 @@
*
**软聚类**
:通常将其细分为
**概率**
和
**模糊**
聚类,这种方法确定了每个样本的概率
*p(x)*
属于预定簇的
*x <sub class="calibre20">p</sub>*
*∈X*
。 因此,如果存在
`K`
个簇,我们就有一个概率向量
*p(x)= [p <sub class="calibre20">1</sub> (x),p <sub class="calibre20">2</sub> (x ),...,p <sub class="calibre20">k</sub> (x)]*
,其中
*p <sub class="calibre20">i</sub> (x)*
表示分配给群集的概率
`i`
。 在这种情况下,聚类不是不相交的,通常,样本将属于
*隶属度*
等于概率的所有聚类(此概念是模糊聚类所特有的)。
出于我们的目的,在本章中,我们仅假设数据集
`X`
来自数据生成过程,该过程的空间在给定度量函数的情况下可分为彼此分离的紧凑区域。 实际上,我们的主要目标是找到满足
**最大内聚力**
和
**最大分离**
双重特征的
`K`
簇。 在讨论 K
-means
算法时,这个概念会更清楚。 但是, 可能将 想象为斑点,其密度远远高于将它们隔开两个或多个的空间中可观察到的斑点,如下图所示:
出于我们的目的,在本章中,我们仅假设数据集
`X`
来自数据生成过程,该过程的空间在给定度量函数的情况下可分为彼此分离的紧凑区域。 实际上,我们的主要目标是找到满足
**最大内聚力**
和
**最大分离**
双重特征的
`K`
簇。 在讨论 K
均值
算法时,这个概念会更清楚。 但是, 可能将 想象为斑点,其密度远远高于将它们隔开两个或多个的空间中可观察到的斑点,如下图所示:
![](
img/20693fb2-5b9c-4697-9ef8-71e1169f77c9.png
)
...
...
@@ -156,7 +156,7 @@ Std(distances) = 0.042885311128215066
![](
img/02e9a6e4-5321-44f8-b545-b0e6cd0bf18f.png
)
集合
`M`
和质心具有一个附加索引(作为上标),指示迭代步骤。 从初始猜测
*M <sup class="calibre27">(0)</sup>*
开始,K
-means
尝试最小化称为
**惯性**
的目标函数(即总平均集群内距离) 分配给簇
*K <sub class="calibre20">j</sub>*
和其质心
*μ <sub class="calibre20">j</sub>*
的样本之间):
集合
`M`
和质心具有一个附加索引(作为上标),指示迭代步骤。 从初始猜测
*M <sup class="calibre27">(0)</sup>*
开始,K
均值
尝试最小化称为
**惯性**
的目标函数(即总平均集群内距离) 分配给簇
*K <sub class="calibre20">j</sub>*
和其质心
*μ <sub class="calibre20">j</sub>*
的样本之间):
![](
img/56a960f6-4a96-4e97-883e-17277d02904c.png
)
...
...
@@ -623,7 +623,7 @@ Adj. Mutual info: 0.42151741598216214
![](
img/08edb6be-5dee-4a22-81fd-3b6dc49ee1a3.png
)
该值限制在
*-1*
和
`1`
之间。 当
*R <sub class="calibre20">A</sub> →-1*
时,a 和 b 都非常小,并且绝大多数分配都是错误的。 另一方面,当
*R <sub class="calibre20">A</sub>*
*→1*
时,预测分布非常接近地面实况。 对于乳腺癌威斯康星州数据集和
*K = 2*
,我们获得以下信息:
该值限制在
`-1`
和
`1`
之间。 当
*R <sub class="calibre20">A</sub> →-1*
时,a 和 b 都非常小,并且绝大多数分配都是错误的。 另一方面,当
*R <sub class="calibre20">A</sub>*
*→1*
时,预测分布非常接近地面实况。 对于乳腺癌威斯康星州数据集和
*K = 2*
,我们获得以下信息:
```
py
from
sklearn.metrics
import
adjusted_rand_score
...
...
@@ -637,7 +637,7 @@ print('Adj. Rand score: {}'.format(adjusted_rand_score(kmdff['diagnosis'], kmdff
Adj
.
Rand
index
:
0.49142453622455523
```
由于该值大于
*-1*
(负极值),因此该结果优于其他指标。 它确认分布之间的差异不是很明显,这主要是由于样本的子集有限所致。 该分数非常可靠,也可以用作评估聚类算法性能的单个指标。 接近 0.5 的值确认 K-means
不太可能是最佳解,但与此同时,数据集的几何形状几乎可以被对称球完全捕获,除了某些 重叠可能性高的非凸区域。
由于该值大于
`-1`
(负极值),因此该结果优于其他指标。 它确认分布之间的差异不是很明显,这主要是由于样本的子集有限所致。 该分数非常可靠,也可以用作评估聚类算法性能的单个指标。 接近 0.5 的值确认 K 均值
不太可能是最佳解,但与此同时,数据集的几何形状几乎可以被对称球完全捕获,除了某些 重叠可能性高的非凸区域。
...
...
@@ -669,11 +669,11 @@ Graphical representation of the contingency matrix
# K 最近邻
居
# K 最近邻
**K 最近邻
居
**
(
`K`
NN)是属于称为
**基于实例的学习**
类别的方法。 在这种情况下,没有参数化模型,而是样本的重新排列以加快特定查询的速度。 在最简单的情况下(也称为蛮力搜索),假设我们有一个
`X`
数据集,其中包含
`M`
个样本
*x <sub class="calibre20">i</sub> ∈ℜ[ <sup class="calibre27">N</sup>*
。 给定距离函数
*d(x <sub class="calibre20">i</sub> ,x <sub class="calibre20">j</sub> )*
,则可以定义测试样品的半径邻域
*x <sub class="calibre20">i</sub>*
如下:
**K 最近邻**
(
`K`
NN)是属于称为
**基于实例的学习**
类别的方法。 在这种情况下,没有参数化模型,而是样本的重新排列以加快特定查询的速度。 在最简单的情况下(也称为蛮力搜索),假设我们有一个
`X`
数据集,其中包含
`M`
个样本
*x <sub class="calibre20">i</sub> ∈ℜ[ <sup class="calibre27">N</sup>*
。 给定距离函数
*d(x <sub class="calibre20">i</sub> ,x <sub class="calibre20">j</sub> )*
,则可以定义测试样品的半径邻域
*x <sub class="calibre20">i</sub>*
如下:
![](
img/539ec0a2-ed36-460b-818d-07dd652d1fc2.png
)
...
...
@@ -851,7 +851,7 @@ picture = resize(face(gray=False), output_shape=(192, 256), mode='reflect')
Sample RGB picture for VQ example
我们想用 24 个使用 2×2 正方形区域计算的矢量执行 VQ(由包含 2×2×3 特征的展平矢量表示)。 但是,我们将使用 K
-means
算法来查找质心,而不是从头开始执行该过程。 第一步是收集所有正方形区域,如下所示:
我们想用 24 个使用 2×2 正方形区域计算的矢量执行 VQ(由包含 2×2×3 特征的展平矢量表示)。 但是,我们将使用 K
均值
算法来查找质心,而不是从头开始执行该过程。 第一步是收集所有正方形区域,如下所示:
```
py
import
numpy
as
np
...
...
@@ -869,7 +869,7 @@ for i in range(0, picture.shape[0], square_fragment_size):
idx
+=
1
```
此时,可以使用 24 个量化矢量进行 K
-means
聚类,如下所示:
此时,可以使用 24 个量化矢量进行 K
均值
聚类,如下所示:
```
py
from
sklearn.cluster
import
KMeans
...
...
@@ -943,7 +943,7 @@ Original entropy: 7.726 bits - Quantized entropy: 5.752 bits
在本章中,我们从相似性的概念及其度量方法入手,解释了聚类分析的基本概念。 我们讨论了 K
-means
算法及其优化的变体 K-means ++,并分析了乳腺癌威斯康星州数据集。 然后,我们讨论了最重要的评估指标(无论是否了解基本事实),并且了解了哪些因素会影响绩效。 接下来的两个主题是 KNN(一种非常著名的算法,可用于在给定查询向量的情况下查找最相似的样本),以及 VQ(一种利用聚类算法以查找样本的有损表示形式的技术)(例如, 图片)或数据集。
在本章中,我们从相似性的概念及其度量方法入手,解释了聚类分析的基本概念。 我们讨论了 K
均值
算法及其优化的变体 K-means ++,并分析了乳腺癌威斯康星州数据集。 然后,我们讨论了最重要的评估指标(无论是否了解基本事实),并且了解了哪些因素会影响绩效。 接下来的两个主题是 KNN(一种非常著名的算法,可用于在给定查询向量的情况下查找最相似的样本),以及 VQ(一种利用聚类算法以查找样本的有损表示形式的技术)(例如, 图片)或数据集。
在下一章中,我们将介绍一些最重要的高级聚类算法,展示它们如何轻松解决非凸问题。
...
...
new/handson-unsup-learn-py/03.md
浏览文件 @
bd666c43
此差异已折叠。
点击以展开。
new/handson-unsup-learn-py/04.md
浏览文件 @
bd666c43
...
...
@@ -256,7 +256,7 @@ plt.show()
![](
img/5a3b29f5-fbf7-4acd-abfb-849ff081295e.png
)
换句话说,
*CP <sub class="calibre20">ij</sub>*
元素是观察
*x <sub class="calibre20">i</sub>*
和
*x <sub class="calibre20">j 所需的最小差异 同一群集中的</sub>*
。 可以证明
*CP <sub class="calibre20">ij</sub>*
是
*x <sub class="calibre20">i</sub>*
和
*x <sub class="calibre20">j</sub> 之间的距离度量*
,; 因此,
*CP*
与
`P`
类似,并且具有与邻近矩阵相同的属性(例如,所有对角元素为空)。 特别是,我们对它们的相关性感兴趣(在
*-1*
和
`1`
范围内标准化)。 这样的值(
**色相关系数**
(
**CPC**
)表示
`P`
和
*CP*
之间的一致性程度,并且可以很容易地计算出, 如以下等式所示。
换句话说,
*CP <sub class="calibre20">ij</sub>*
元素是观察
*x <sub class="calibre20">i</sub>*
和
*x <sub class="calibre20">j 所需的最小差异 同一群集中的</sub>*
。 可以证明
*CP <sub class="calibre20">ij</sub>*
是
*x <sub class="calibre20">i</sub>*
和
*x <sub class="calibre20">j</sub> 之间的距离度量*
,; 因此,
*CP*
与
`P`
类似,并且具有与邻近矩阵相同的属性(例如,所有对角元素为空)。 特别是,我们对它们的相关性感兴趣(在
`-1`
和
`1`
范围内标准化)。 这样的值(
**色相关系数**
(
**CPC**
)表示
`P`
和
*CP*
之间的一致性程度,并且可以很容易地计算出, 如以下等式所示。
由于
`P`
和
*CP*
均为(
*n×n*
)对称矩阵且对角元素为空,因此可以仅考虑下三角 部分(不包括对角线,表示为
*Tril(•)*
),包含
*n(n-1)/ 2*
值。 因此,平均值如下:
...
...
@@ -494,7 +494,7 @@ Y_pred = ag.fit_predict(X)
结果证实了先前的分析。 在没有限制的情况下,平均链接会产生合理的分区,该分区与基本事实(八高斯分布)兼容。 为了拆分大的中心斑点并保持所需的聚类数量,即使树状图确认它们最终以最高相异度级别合并,该算法也必须合并孤立的样本。
为了施加约束,我们可以观察到,基于前两个最近邻
居的连通性矩阵很可能会迫使属于较密集区域的所有样本聚集(考虑到邻居更近)并最终保持孤立状态。 自治集群中的点。 出现这种假设行为的原因是基于平均链接的目标(以最大程度地减少集群间平均距离)。 因此,在施加约束之后,该算法更易于与其他邻居聚集紧密的簇(请记住,
`A`
具有空值,但在与两个最近邻居
相对应的位置),并且最远的点不合并 直到差异程度足够大(产生非常不均匀的簇)。
为了施加约束,我们可以观察到,基于前两个最近邻
的连通性矩阵很可能会迫使属于较密集区域的所有样本聚集(考虑到邻居更近)并最终保持孤立状态。 自治集群中的点。 出现这种假设行为的原因是基于平均链接的目标(以最大程度地减少集群间平均距离)。 因此,在施加约束之后,该算法更易于与其他邻居聚集紧密的簇(请记住,
`A`
具有空值,但在与两个最近邻
相对应的位置),并且最远的点不合并 直到差异程度足够大(产生非常不均匀的簇)。
为了检查我们的假设是否正确,让我们使用 scikit-learn
`kneighbors_graph()`
函数和
`n_neighbors=2`
生成连接矩阵,并重新设置数据集,并设置
`connectivity`
约束:
...
...
new/handson-unsup-learn-py/05.md
浏览文件 @
bd666c43
...
...
@@ -58,7 +58,7 @@
因此,将过程分为(独立)分量的加权总和,输出是每个分量的
*x <sub class="calibre20">i</sub>*
的概率。 当然,我们通常希望对每个样本都有一个主导成分,但是通过这种方法,我们对所有边界点有了很大的了解,但受到很小的扰动,这些边界点可以分配给不同的聚类。 因此,当可以将输出馈送到可以利用整个概率向量的另一个模型(例如,神经网络)时,软聚类非常有用。 例如,推荐者可以首先使用软聚类算法对用户进行细分,然后处理向量,以便基于显式反馈找到更复杂的关系。 常见的情况是通过对以下问题的答案进行更正:“此结果是否与您相关?” 或者,“您是否希望看到更多类似这些的结果?” 由于答案是由用户直接提供的,因此可以将其用于监督或强化学习模型中,这些模型的输入基于软自动细分(例如,基于购买历史记录或详细的页面浏览量)。 通过这种方式,可以通过更改原始分配的效果(由于不同集群提供的大量贡献而完全无关紧要)来轻松管理边界用户,同时为拥有强大成员资格的其他用户提供建议(例如, 接近 1)的概率可以稍加修改以提高回报率。
现在,我们可以开始对 Fuzzy c-means 的讨论,这是一种非常灵活的算法,将针对
k-means
讨论的概念扩展到了软聚类场景。
现在,我们可以开始对 Fuzzy c-means 的讨论,这是一种非常灵活的算法,将针对
K 均值
讨论的概念扩展到了软聚类场景。
...
...
@@ -194,7 +194,7 @@ print(W[:, im])
**高斯混合**
是最著名的软聚类方法之一,具有数十种特定应用。 它可以被认为是
k-means
之父,因为它的工作方式非常相似。 但是,与该算法相反,给定样本
*x <sub class="calibre20">i</sub> ∈X*
和
`k`
簇(以高斯分布表示),它提供了一个概率矢量,
*[p(x <sub class="calibre20">i</sub>*
*∈C <sub class="calibre20">1</sub> ),...,p(x <sub class="calibre20">i</sub> ∈C <sub class="calibre20">k</sub> )]*
。
**高斯混合**
是最著名的软聚类方法之一,具有数十种特定应用。 它可以被认为是
K 均值
之父,因为它的工作方式非常相似。 但是,与该算法相反,给定样本
*x <sub class="calibre20">i</sub> ∈X*
和
`k`
簇(以高斯分布表示),它提供了一个概率矢量,
*[p(x <sub class="calibre20">i</sub>*
*∈C <sub class="calibre20">1</sub> ),...,p(x <sub class="calibre20">i</sub> ∈C <sub class="calibre20">k</sub> )]*
。
以更一般的方式,如果数据集
`X`
已从数据生成过程
*p <sub class="calibre20">数据</sub>*
(高斯混合模型)中采样 基于以下假设:
...
...
new/handson-unsup-learn-py/06.md
浏览文件 @
bd666c43
...
...
@@ -666,7 +666,7 @@ Bivariate plot of the source and destination bytes densities
Linear one-class SVM scenario: the training set is separated from the origin with the largest margin
训练模型以找出使距原点的距离最大的超平面参数。 超平面一侧的所有样本均应为离群值,输出标签为
**+1**
,而其余所有样本均被视为离群值,并且输出标签为
*
*-1*
*
。 此标准似乎有效,但仅适用于线性可分离的数据集。 标准 SVM 通过将数据集(通过函数
*φ(•)*
)投影到特征空间 D 上来解决此问题,在该特征空间 D 中,它获得了这样的属性:
训练模型以找出使距原点的距离最大的超平面参数。 超平面一侧的所有样本均应为离群值,输出标签为
**+1**
,而其余所有样本均被视为离群值,并且输出标签为
*
`-1`
*
。 此标准似乎有效,但仅适用于线性可分离的数据集。 标准 SVM 通过将数据集(通过函数
*φ(•)*
)投影到特征空间 D 上来解决此问题,在该特征空间 D 中,它获得了这样的属性:
![](
img/7fde64b8-0a5e-4248-b156-7ac3ec831820.png
)
...
...
new/handson-unsup-learn-py/10.md
浏览文件 @
bd666c43
...
...
@@ -30,7 +30,7 @@
1.
曼哈顿距离与 Minkowski 距离相同,其中
*p = 1*
; 因此,我们希望观察到更长的距离。
2.
没有; 收敛速度主要受质心的初始位置影响。
3.
是;
k-means
设计用于凸簇,而对于凹簇则性能较差。
3.
是;
K 均值
设计用于凸簇,而对于凹簇则性能较差。
4.
这意味着所有聚类(样本百分比可忽略不计)分别仅包含属于同一类别(即具有相同真实标签)的样本。
5.
它表示真实标签分配和分配之间的中等/强烈的负差异。 这个值是明显的负条件,不能接受,因为绝大多数样本已分配给错误的聚类。
6.
不可以,因为调整后的 Rand 分数是根据真实情况得出的(也就是说,预期的簇数是固定的)。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录