Python 机器学习算法交易实用指南(四)(2)

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: Python 机器学习算法交易实用指南(四)

Python 机器学习算法交易实用指南(四)(1)https://developer.aliyun.com/article/1523382

t-SNE

t-分布随机邻域嵌入是由劳伦斯·范德马滕(Laurens van der Maaten)和杰夫·辛顿(Geoff Hinton)于 2010 年开发的获奖算法,用于检测高维数据中的模式。它采用概率、非线性方法来定位位于几个不同但相关的低维流形上的数据。

该算法强调将低维度中的相似点放在一起,而不是保持高维度中相距较远的点之间的距离,这是由最小化平方距离的算法(如 PCA)产生的结果。

该算法通过将高维距离转换为(条件)概率来进行,其中高概率意味着低距离,并反映了基于相似性对两点进行抽样的可能性。它通过在每个点上定位一个正态分布并计算点和每个邻居的密度来实现这一点,其中困惑度参数控制有效邻居的数量。

在第二步中,它将点排列在低维中,并使用类似计算的低维概率来匹配高维度分布。它通过使用 Kullback-Leibler 散度来衡量分布之间的差异,该散度对于在低维中错误放置相似点施加了很大的惩罚。

低维概率使用具有一个自由度的学生 t 分布,因为它具有更胖的尾部,减少了在高维度中更远的点的错误放置的惩罚,以解决拥挤问题。

以下图表的上面板显示了 t-SNE 如何区分图像类别。更高的困惑度值增加了用于计算局部结构的邻居数量,并逐渐更加强调全局关系:


t-SNE 目前是高维数据可视化的最新技术。缺点包括计算复杂度随着点数n的平方增长,因为它评估所有成对距离,但随后基于树的实现已将成本降低至n log n

t-SNE 不利于将新数据点投影到低维空间中。压缩输出对于基于距离或基于密度的聚类算法并不是一个非常有用的输入,因为 t-SNE 对待小距离和大距离的方式不同。

UMAP

统一流形逼近和投影是用于可视化和一般降维的较新算法。它假设数据在局部连接的流形上均匀分布,并使用模糊拓扑来寻找最接近的低维等效物。它使用一个 neighbors 参数,与上面的困惑度类似地影响结果。

它比 t-SNE 更快,因此在大型数据集上的扩展性更好,并且有时比 t-SNE 更好地保留全局结构。它还可以使用不同的距离函数,包括例如余弦相似度,用于衡量词数向量之间的距离。

前一图的底部一行中的四个图表说明了 UMAP 确实将不同的群集分开得更远,而 t-SNE 则提供了更细粒度的对局部结构的了解。

笔记本还包含每个算法的交互式 Plotly 可视化,允许探索标签并确定彼此靠近的对象。

聚类

聚类和降维都对数据进行总结。正如刚刚详细讨论的那样,降维通过使用捕捉最相关信息的新特征来表示数据,从而压缩数据。相比之下,聚类算法将现有观察结果分配给由相似数据点组成的子组。

聚类可以通过从连续变量学习的类别的角度更好地理解数据。它还允许根据学习的标准自动对新对象进行分类。相关应用的示例包括层次分类法、医学诊断和客户细分。

或者,可以使用集群表示组,例如使用集群的中点作为学习组的最佳代表。示例应用包括图像压缩。

聚类算法在识别分组方面的策略不同:

  • 组合算法选择最一致的观察组合
  • 概率建模估计最可能生成群集的分布
  • 分层聚类找到一系列嵌套群集,优化任何给定阶段的一致性

算法还在于什么构成一个有用的对象集的概念上有所不同,这需要与数据特征、领域和应用目标相匹配。分组类型包括以下内容:

  • 明显分离的各种形状的组
  • 基于原型或基于中心的紧凑群集
  • 密度为基础的任意形状的群集
  • 基于连接性或基于图的群集

聚类算法的重要附加方面包括以下内容:

  • 是否需要独占的群集成员身份
  • 是否进行硬(二进制)或软(概率)分配
  • 是否完整并将所有数据点分配给群集

以下各节介绍了关键算法,包括 k-Means、层次和基于密度的聚类,以及高斯混合模型。clustering_algos 笔记本在不同的标记数据集上比较了这些算法的性能,以突出它们的优缺点。它使用互信息(参见第六章,机器学习过程)来衡量聚类分配和标签的一致性。

k-Means 聚类

k-Means 是最著名的聚类算法,最早由贝尔实验室的 Stuart Lloyd 在 1957 年提出。

该算法找到 K 个质心,并将每个数据点分配给恰好一个聚类,目标是最小化聚类内变异(称为惯性)。通常使用欧几里德距离,但也可以使用其他度量。k-Means 假设聚类是球形的且大小相等,并忽略特征之间的协方差。

该问题在计算上很困难(np-hard),因为有 K^N 种方式将 N 个观察结果划分为 K 个聚类。标准的迭代算法为给定的 K 交付了一个局部最优解,并按以下方式进行:

  1. 随机定义 K 个聚类中心并将点分配给最近的质心。
  2. 重复如下步骤:
  • 对于每个聚类,将质心计算为特征的平均值
  • 将每个观察分配给最近的质心
  1. 收敛:分配(或聚类内变异)不再改变。

kmeans_implementation 笔记本展示了如何使用 Python 编写该算法,并可视化算法的迭代优化。以下截图突出显示了结果质心如何将特征空间划分为称为Voronoi的区域,这些区域划分了聚类:


结果对于给定的初始化是最优的,但是不同的起始位置将产生不同的结果。因此,我们从不同的初始值计算多个聚类,并选择最小化聚类内变异的解决方案。

k-Means 需要连续或独热编码的分类变量。距离度量通常对比例尺敏感,因此标准化特征是必要的,以确保它们具有相等的权重。

k-Means 的优点包括其广泛的适用性,快速收敛以及对大型数据的线性可伸缩性,同时产生大小均匀的聚类。

缺点包括:

  • 需要调整超参数 k
  • 无法保证找到全局最优解
  • 限制性假设,即聚类是球形的且特征不相关
  • 对异常值的敏感性

评估聚类质量

聚类质量度量有助于在替代聚类结果中进行选择。kmeans_evaluation 笔记本说明了以下选项:

  1. k-Means 目标函数建议我们比较惯性或聚类内变异性的演变。
  2. 最初,额外的质心会急剧减少惯性,因为新的聚类提高了整体拟合度。
  3. 一旦找到了合适数量的聚类(假设存在),新的质心减少了集群内的方差,因为它们倾向于分裂自然的分组。
  4. 因此,当 k 均值发现数据的良好聚类表示时,惯性往往会遵循类似于 PCA 的解释方差比的拐点形状的路径,如下面的屏幕截图所示(请参阅实现细节的笔记本):


Silhouette 系数提供了对聚类质量的更详细的图像。它回答了一个问题:最近集群中的点与分配的集群中的点有多远?

为此,它比较了簇内平均距离(a)与最近簇的平均距离(b),并计算了以下分数s


分数可以从*-11*之间变化,但在实践中负值不太可能出现,因为它们意味着大多数点被分配到错误的聚类中。轮廓分数的一个有用的可视化将每个数据点的值与全局平均值进行比较,因为它突出显示了每个聚类相对于全局配置的一致性。经验法则是避免具有平均样本以下分数的簇。

下面的截图显示了三个和四个聚类的轮廓图节选,前者突出了聚类1的不良拟合,因为对全局轮廓分数的次优贡献,而所有四个聚类都有一些值表现出高于平均水平的分数:


总之,考虑到通常是无监督的性质,有必要变化聚类算法的超参数并评估不同的结果。调整特征的尺度也很重要,特别是当一些特征应该被赋予更高的权重并且因此应该在较大的尺度上进行测量时。

最后,为了验证结果的稳健性,使用数据子集识别是否出现特定模式是一致的。

层次聚类

层次聚类避免了需要指定目标聚类数量的需求,因为它假设数据可以成功地被合并成越来越不相似的簇。它不追求全局目标,而是逐渐决定如何产生一系列从单一簇到由单个数据点组成的簇的嵌套簇。

有两种方法:

  1. 凝聚聚类 自底向上进行,根据相似性顺序合并剩余的两个组
  2. 分裂聚类 自顶向下工作,并顺序地分裂剩余的集群以产生最独特的子群

两个组都生成N-1 个层次级别,并促进在最佳分割数据成同质组的级别上选择聚类。我们将专注于更常见的聚合聚类方法。

聚合聚类算法偏离了个别数据点,并计算包含所有相互距离的相似性矩阵。然后,它经过N-1 步,直到不再存在不同的聚类,并且每次更新相似度矩阵以替换已被新聚类合并的元素,以便矩阵逐渐缩小。

虽然分层聚类没有像 k-Means 那样的超参数,但是聚类之间(而不是个别数据点之间)的不相似度度量对聚类结果有重要影响。选项如下所示:

  • **单链接:**两个聚类最近邻之间的距离
  • **完全连接:**各个集群成员之间的最大距离
  • **组平均:**每组平均值之间的距离
  • **沃德方法:**最小化簇内方差

可视化 - 树状图

分层聚类提供了对观察之间相似程度的洞察,因为它不断合并数据。从一个合并到下一个的相似度度量的显著变化表明在此之前存在自然的聚类。

树状图将连续的合并可视化为二叉树,将个别数据点显示为叶子,将最终合并显示为树的根。它还显示了相似度如何从底部向顶部单调减少。因此,通过切割树状图选择聚类是自然的。

以下屏幕截图(有关实现细节,请参阅hierarchical_clustering笔记本)说明了具有四个类别和三个特征的经典鸢尾花数据集的树状图,使用了先前介绍的四种不同距离度量:


它使用科菲尼特相关性系数评估层次聚类的拟合度,该系数比较了点之间的成对距离和在哪个聚类相似度度量中成对合并发生了。系数为 1 意味着更接近的点总是更早合并。

不同的链接方法产生不同外观的树状图,因此我们不能使用此可视化工具跨方法比较结果。此外,沃德方法,它最小化簇内方差,可能不能恰当地反映方差的变化,而是总方差,这可能会误导。相反,其他质量度量,如科菲尼特相关性,或者与总体目标对齐的惯性等度量,可能更合适。

聚类的优势包括:

  • 您无需指定聚类的数量
  • 它通过直观的可视化提供了潜在聚类的洞察
  • 它产生可以用作分类学的聚类层次结构
  • 它可以与 k-Means 结合使用,以减少聚合过程开始时的项目数量

分层聚类的弱点包括:

  • 由于大量相似性矩阵更新而导致的计算和内存成本高昂
  • 它无法达到全局最优,因为所有合并都是最终的
  • 维度诅咒导致噪声大、高维数据困难

基于密度的聚类

基于密度的聚类算法根据与其他集群成员的接近程度来分配集群成员资格。它们追求识别任意形状和大小的密集区域的目标。它们不需要指定一定数量的集群,而是依赖于定义邻域大小和密度阈值的参数(请参阅相关代码示例的density_based_clustering笔记本)。

DBSCAN

具有噪声的基于密度的空间聚类应用DBSCAN)于 1996 年开发,并且由于在理论和实践中受到的关注,在 2014 年 KDD 会议上获得了时间测试奖。

它旨在识别核心和非核心样本,其中前者扩展一个集群,后者是集群的一部分,但没有足够的附近邻居进一步扩展集群。其他样本是异常值,不分配给任何集群。

它使用eps参数表示邻域半径和min_samples表示核心样本所需的成员数量。它是确定性的和排他的,并且在不同密度的集群和高维数据中存在困难。调整参数以满足必要密度可能具有挑战性,尤其是因为它通常不是恒定的。

分层 DBSCAN

分层 DBSCAN 是一个更近期的发展,它假设集群是潜在密度不同的岛屿,以克服刚才提到的 DBSCAN 挑战。它还旨在识别核心和非核心样本。它使用min_cluster_sizemin_samples参数来选择邻域并扩展集群。该算法在多个eps值上进行迭代,并选择最稳定的聚类。

除了识别不同密度的集群外,它还提供了数据的密度和层次结构的见解。

以下屏幕截图显示了 DBSCAN 和 HDBSCAN 如何能够识别非常不同形状的集群:


高斯混合模型

高斯混合模型GMM)是一种生成模型,假设数据是由各种多元正态分布的混合生成的。该算法旨在估计这些分布的均值和协方差矩阵。

它推广了 k-Means 算法:它添加了特征之间的协方差,以便聚类可以是椭圆而不是球体,而质心由每个分布的平均值表示。GMM 算法执行软分配,因为每个点都有可能是任何群集的成员。

期望最大化算法

GMM 使用期望最大化算法来识别高斯分布混合的组成成分。目标是从未标记的数据中学习概率分布参数。

该算法按以下方式迭代进行:

  1. 初始化——假设随机质心(例如,使用 k-Means)
  2. 重复以下步骤,直到收敛(即,分配的更改下降到阈值以下):
  • 期望步骤:软分配——为每个点从每个分布计算概率
  • 最大化步骤:调整正态分布参数以使数据点最有可能

以下屏幕截图显示了 Iris 数据集的 GMM 集群成员概率作为等高线:


分层风险平价

分层风险平价的关键思想是使用协方差矩阵上的分层聚类,以便能够将具有相似相关性的资产组合在一起,并通过在构建投资组合时仅考虑相似资产作为替代品来减少自由度的数量(有关详细信息,请参阅笔记本和hierarchical_risk_parity子文件夹中的 Python 文件)。

第一步是计算代表相关资产接近度并满足距离度量要求的距离矩阵。结果矩阵成为 SciPy 分层聚类函数的输入,该函数使用到目前为止讨论过的几种可用方法计算连续的群集:

def get_distance_matrix(corr):
"""Compute distance matrix from correlation;
0 <= d[i,j] <= 1"""
return np.sqrt((1 - corr) / 2)
distance_matrix = get_distance_matrix(corr)
linkage_matrix = linkage(squareform(distance_matrix), 'single')

linkage_matrix可用作seaborn.clustermap函数的输入,以可视化结果的分层聚类。seaborn显示的树状图显示了基于相对距离合并单个资产和资产集群的方式:

clustergrid = sns.clustermap(distance_matrix,
method='single',
row_linkage=linkage_matrix,
col_linkage=linkage_matrix,
cmap=cmap, center=0)
sorted_idx = clustergrid.dendrogram_row.reordered_ind
sorted_tickers = corr.index[sorted_idx].tolist()


热图

与原始相关矩阵的seaborn.heatmap相比,现在在排序数据中有更多结构(右侧面板)。

使用由聚类算法引起的层次结构排序的票据,HRP 现在继续计算一个自上而下的逆方差分配,根据树下的子群的方差依次调整权重:

def get_cluster_var(cov, cluster_items):
    """Compute variance per cluster"""
    cov_ = cov.loc[cluster_items, cluster_items]  # matrix slice
    w_ = get_inverse_var_pf(cov_)
    return (w_ @ cov_ @ w_).item()

为此,该算法使用二分搜索将群集的方差分配给其元素,基于它们的相对风险性:

def get_hrp_allocation(cov, tickers):
    """Compute top-down HRP weights"""
    weights = pd.Series(1, index=tickers)
    clusters = [tickers]  # initialize one cluster with all assets
    while len(clusters) > 0:
        # run bisectional search:
        clusters = [c[start:stop] for c in clusters
                    for start, stop in ((0, int(len(c) / 2)),
                                        (int(len(c) / 2), len(c)))
                    if len(c) > 1]
        for i in range(0, len(clusters), 2):  # parse in pairs
            cluster0 = clusters[i]
            cluster1 = clusters[i + 1]
            cluster0_var = get_cluster_var(cov, cluster0)
            cluster1_var = get_cluster_var(cov, cluster1)
            weight_scaler = 1 - cluster0_var / (cluster0_var + cluster1_var)
            weights[cluster0] *= weight_scaler
            weights[cluster1] *= 1 - weight_scaler
    return weights

结果的投资组合分配产生总和为1的权重,并反映出相关矩阵中存在的结构(有关详细信息,请参阅笔记本)。

摘要

在本章中,我们探讨了无监督学习方法,它们允许我们从数据中提取有价值的信号,而无需依赖标签提供的结果信息的帮助。

我们看到了如何使用线性降维方法,如 PCA 和 ICA,从数据中提取不相关或独立的组件,这些组件可以作为风险因子或投资组合权重。我们还涵盖了产生复杂替代数据的最先进可视化的高级非线性流形学习技术。

在第二部分中,我们涵盖了几种根据不同假设生成数据驱动分组的聚类方法。这些分组可以很有用,例如,用于构建将风险平价原则应用于已经按层次聚类的资产的投资组合。

在接下来的三章中,我们将学习关于一种替代数据的关键来源的各种机器学习技术,即文本文档的自然语言处理。

第十三章:处理文本数据

这是专门从文本数据中提取算法交易策略信号的三章中的第一章,使用自然语言处理NLP)和机器学习ML)。

文本数据在内容上非常丰富,但格式不结构化,因此需要更多的预处理,以便 ML 算法可以提取潜在信号。关键挑战在于将文本转换为算法可使用的数值格式,同时表达内容的语义或含义。我们将介绍几种捕捉语言细微差别的技术,这些差别对于人类来说很容易理解,因此它们可以成为 ML 算法的输入。

在本章中,我们介绍了基本的特征提取技术,重点放在单个语义单位上;即单词或称为标记的短语。我们将展示如何通过创建文档-术语矩阵将文档表示为标记计数的向量,这反过来又作为文本分类和情感分析的输入。我们还将介绍朴素贝叶斯算法,该算法在此方面很受欢迎。

在接下来的两章中,我们将借助这些技术,并使用诸如主题建模和词向量嵌入等 ML 算法来捕获更广泛上下文中包含的信息。

特别是,在本章中,我们将介绍以下内容:

  • 基本的 NLP 工作流程是什么样的
  • 如何使用spaCyTextBlob构建多语言特征提取管道
  • 如何执行诸如词性标注POS)或命名实体识别之类的 NLP 任务
  • 如何使用文档-术语矩阵将标记转换为数字
  • 如何使用朴素贝叶斯模型对文本进行分类
  • 如何执行情感分析

下一节的代码示例在本章的 GitHub 存储库中,参考文献列在主README文件中。

如何从文本数据中提取特征

鉴于人类使用自然语言进行交流和存储的信息量如此之大,文本数据可能非常有价值——与投资相关的各种数据源范围从正式文件(如公司声明、合同和专利)到新闻、观点和分析研究,甚至包括评论和各种类型的社交媒体帖子和消息。

在线上有大量且多样化的文本数据样本可供探索 NLP 算法的使用,其中许多列在本章的参考文献中。

为了指导我们通过最有效地支持实现此目标的技术和 Python 库的旅程,我们将重点介绍 NLP 挑战,介绍 NLP 工作流程的关键要素,并说明从文本数据到算法交易的 ML 应用。

NLP 的挑战

将非结构化文本转换为机器可读格式需要进行仔细的预处理,以保留数据的有价值的语义方面。人类如何从语言中获取含义,并理解其内容,目前尚不完全清楚,并且通过机器提高语言理解仍然是一个非常活跃的研究领域。

NLP 是具有挑战性的,因为有效地利用文本数据进行 ML 需要对语言的内部运作以及它所指涉的世界有一定的了解。主要挑战包括以下内容:

  • 由于多义性而产生的歧义;即,一个词或短语在不同的上下文中可能有不同的含义(例如,local high-school dropouts cut in half 可能有几种理解方式)。
  • 语言的非标准和不断发展的使用,特别是在社交媒体上。
  • 使用成语,比如扔手巾。
  • 棘手的实体名称,A Bug’s Life 在哪里上映?
  • 对世界的了解——玛丽和苏是姐妹还是母亲。

NLP 工作流程

在使用文本数据进行算法交易时,ML 的一个关键目标是从文档中提取信号。文档是来自相关文本数据源的单个样本,例如公司报告、标题或新闻文章或推文。语料库则是文档的集合(复数形式:corpora)。

下图列出了将文档转换为可用于训练监督式机器学习算法的数据集的关键步骤,该算法能够进行可行的预测:


基本技术 提取称为 标记 的文本特征语义单元,并使用语言规则和词典来丰富这些标记的语言和语义注释。词袋模型 (BoW) 使用标记频率来将文档建模为标记向量,这导致了经常用于文本分类的文档-术语矩阵。

高级方法 使用 ML 来优化基本技术提取的特征,并生成更具信息量的文档模型。这些包括反映跨文档使用标记的主题模型和捕获标记使用上下文的词向量模型。

在下一节中,我们将更详细地回顾每个步骤所做的关键决策和相关的权衡,并使用 spaCy 库来说明它们的实现。以下表格总结了 NLP 流水线的关键任务:

特征 描述
分词 将文本分割为单词、标点符号等。
词性标注 将词的类型分配给标记,如动词或名词。
依存句法分析 标记句法标记依赖,如主语 <=> 宾语。
词干提取和词形还原 分配单词的基本形式:was => be, rats => rat。
句子边界检测 查找并分割单独的句子。
命名实体识别 标记现实世界对象,如人、公司和地点。
相似度 评估单词、文本段和文档之间的相似性。

解析和标记文本数据

令牌是在给定文档中出现的字符实例,并且应被视为进一步处理的语义单位。词汇是包含在被认为与进一步处理相关的语料库中的标记集。在以下决策中的一个关键权衡是以更大的词汇量准确反映文本来源,这可能会转化为更多的特征和更高的模型复杂性。

在这方面的基本选择涉及如何处理标点和大写,是否使用拼写校正,以及是否排除非常频繁的所谓停用词(如andthe)作为无意义的噪声。

另一个决策是关于将* n*个单个令牌组成的组(一个单个令牌也称为unigram)作为语义单位包含在内的。2-gram(或双字)的示例是纽约,而纽约市是 3-gram(或三字)。

目标是创建更准确反映文档含义的标记。决策可以依赖于字典或单个和联合使用的相对频率的比较。包括 n-gram 将增加特征的数量,因为唯一 n-gram 的数量往往比唯一 unigram 的数量高得多,并且可能会增加噪音,除非按频率的显著性进行过滤。

语言标注

语言标注包括应用句法和语法规则来确定句子的边界,尽管标点符号不明确,并且令牌在句子中的角色用于 POS 标注和依赖解析。它还允许识别词干和词形归并的常见根形式以组合相关词汇:

  • POS 标注: 它有助于根据它们的功能消除标记的歧义(当动词和名词具有相同的形式时可能是必要的),这会增加词汇量但可能导致更好的准确性。
  • 依赖解析: 它识别标记之间的层次关系,通常用于翻译,并且对于需要更高级语言理解的交互应用程序(如聊天机器人)非常重要。
  • 词干提取: 它使用简单的规则从标记中去除常见的结尾,例如 slyinged,并将其减少到其词干或根形式。
  • 词形归并: 它使用更复杂的规则来推导单词的规范根(词形)。它可以检测到不规则的根,例如 better 和 best,并且更有效地压缩词汇,但速度比词干提取慢。这两种方法都通过简化词汇以牺牲语义细微差别为代价。

语义标注

命名实体识别NER)旨在识别代表感兴趣对象的标记,例如人物、国家或公司。它可以进一步发展为捕获这些实体之间的语义和层次关系的知识图。它是那些旨在预测新闻事件或情感影响的应用程序的关键要素。

标签

许多 NLP 应用程序从文本中提取的有意义信息中学习预测结果。监督学习需要标签来教会算法真实的输入-输出关系。对于文本数据,建立这种关系可能具有挑战性,可能需要明确的数据建模和收集。

数据建模决策包括如何量化文本文档中隐含的情感,例如电子邮件、转录的采访或推文,或者将研究文档或新闻报道的哪些方面分配给特定结果。

使用案例

利用 ML 和文本数据进行算法交易依赖于以直接或间接预测未来价格变动的特征形式提取有意义信息。应用范围从利用新闻的短期市场影响到资产估值驱动因素的长期基本分析。示例包括以下内容:

  • 评估产品评论情绪以评估公司的竞争地位或行业趋势
  • 检测信用合同中的异常以预测违约的概率或影响
  • 新闻影响的预测,包括方向、幅度和受影响的实体

摩根大通(JP Morgan)例如,开发了一个基于 25 万份分析师报告的预测模型,该模型胜过了几个基准指数,并产生了与基于共识 EPS 和推荐变化形成的情绪因素不相关的信号。

Python 机器学习算法交易实用指南(四)(3)https://developer.aliyun.com/article/1523385

相关文章
|
11天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
43 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
11天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
38 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
11天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
51 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
14天前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到Python代码实践
【10月更文挑战第36天】本文将深入浅出地介绍机器学习的基本概念、主要算法及其在Python中的实现。我们将通过实际案例,展示如何使用scikit-learn库进行数据预处理、模型选择和参数调优。无论你是初学者还是有一定基础的开发者,都能从中获得启发和实践指导。
30 2
|
15天前
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
32 1
|
15天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
39 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
1月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
1月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
59 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
1月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
下一篇
无影云桌面