【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)

简介: 【Python机器学习】Sklearn库中Kmeans类、超参数K值确定、特征归一化的讲解(图文解释)

一、局部最优解

采用随机产生初始簇中心 的方法,可能会出现运行 结果不一致的情况。这是 因为不同的初始簇中心使 得算法可能收敛到不同的 局部极小值。

不能收敛到全局最小值,是最优化计算中常常遇到的问题。有一类称为凸优化的优化计算,不存在局部最优问题。凸优化是指损失函数为凸函数的最优化计算。在凸函数中,没有局部极小值这样的小“洼地”,因此是最理想的损失函数。如果能将优化目标转化为凸函数,就可以解决局部最优问题。

二、Sklearn库中的Kmeans类

kmeans类中参数和方法如下

class sklearn.cluster.KMeans(n_clusters=8, init=’k-means++’, n_init=10, max_iter=300, tol=0.0001, precompute_distances=’auto’, verbose=0, random_state=None, copy_x=True, n_jobs=None, algorithm=’auto’)
fit(X[, y, sample_weight]) # 分簇训练
fit_predict(X[, y, sample_weight]) # 分簇训练并给出每个样本的簇号
predict(X[, sample_weight]) # 在训练之后,对输入的样本进行预测
transform(X) # 计算样本点X与各簇中心的距离

1)init参数

KMeans类通过init参数提供了三种设置初始簇中心的方法,分别为k-means++、random和用户指定。KMeans类通过init参数提供了三种设置初始簇中心的方法,分别为k-means++、random和用户指定。

random是由算法随机产生簇中心。

用户指定是通过一个ndarray数组将用户设置好的初始簇中心传入算法。

2)n_init参数

n_init参数指定算法重复运行次数。通过多次重复运行算法,最终选择最好的结果作为输出。

3)max_iter参数和tol参数

max_iter参数和tol参数是迭代的退出条件。

max_iter参数指定一次运行中的最大迭代次数,达到最大次数时结束迭代。

tol参数指定连续两次迭代变化的阈值,如果损失函数的变化小于阈值,则结束迭代。

三、超参数K值的确定

可以对不同的k值逐次运行算法,取“最好结果”。要注意的是,这个“最好结果”并非是SSE等算法指标,而是要根据具体应用来确定。

通常用拐点法又称肘部法来确定

如下图所示 当图像出现拐点的值选取为K值比较合适,下图即为4或者5

四、特征归一化

k-means算法对样本不同特征的分布范围非常敏感。

已知小明(160,60000),小王(160,59000),小李(170,60000)。根据常识可以知道小明和小王体型相似,但是如果根据欧氏距离来判断,小明和小王的距离要远远大于小明和小李之间的距离,即小明和小李体型相似。这是因为不同特征的度量标准之间存在差异而导致判断出错。

为了使不同变化范围的特征能起到相同的影响力,可以对特征进行归一化(Standardize)的预处理,使之变化范围保持一致。常用的归一化处理方法是将取值范围内的值线性缩放到[0,1]或[-1,1]。

对第j个特征x^(j)来说,如果它的最大值和最小值分别是maxx^(j)和minx^(j),则对于某值x_i^(j)来说,其[0,1]归一化结果为:

Sklearn的prepeocessing模块提供了一些通用的对原始数据进行特征处理的工具。

from sklearn.preprocessing import MinMaxScaler
import numpy as np
#对数据进行归一化
X = np.array([[ 0., 1000.],
                 [ 0.5,  1500.],
                 [ 1.,  2000.]])
min_max_scaler = MinMaxScaler()
X_minmax = min_max_scaler.fit_transform(X)
X_minmax
>>>array([[0. , 0. ],
          [0.5, 0.5],
          [1. , 1. ]])
# 将相同的缩放应用到其它数据中
X_test = np.array([[ 0.8, 1800.]])
X_test_minmax = min_max_scaler.transform(X_test)
X_test_minmax
>>>array([[0.8, 0.8]])
# 缩放因子
min_max_scaler.scale_
>>>array([1.   , 0.001])
# 最小值
min_max_scaler.min_
>>>array([ 0., -1.])

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
机器学习/深度学习 算法 Python
机器学习特征筛选:向后淘汰法原理与Python实现
向后淘汰法(Backward Elimination)是机器学习中一种重要的特征选择技术,通过系统性地移除对模型贡献较小的特征,以提高模型性能和可解释性。该方法从完整特征集出发,逐步剔除不重要的特征,最终保留最具影响力的变量子集。其优势包括提升模型简洁性和性能,减少过拟合,降低计算复杂度。然而,该方法在高维特征空间中计算成本较高,且可能陷入局部最优解。适用于线性回归、逻辑回归等统计学习模型。
696 7
|
机器学习/深度学习 人工智能 算法
Scikit-learn:Python机器学习的瑞士军刀
想要快速入门机器学习但被复杂算法吓退?本文详解Scikit-learn如何让您无需深厚数学背景也能构建强大AI模型。从数据预处理到模型评估,从垃圾邮件过滤到信用风险评估,通过实用案例和直观图表,带您掌握这把Python机器学习的'瑞士军刀'。无论您是AI新手还是经验丰富的数据科学家,都能从中获取将理论转化为实际应用的关键技巧。了解Scikit-learn与大语言模型的最新集成方式,抢先掌握机器学习的未来发展方向!
1548 12
Scikit-learn:Python机器学习的瑞士军刀
|
存储 分布式计算 API
基于PAI-FeatureStore的LLM embedding功能,结合通义千问大模型,可通过以下链路实现对物品标题、内容字段的离线和在线特征管理。
本文介绍了基于PAI-FeatureStore和通义千问大模型的LLM embedding功能,实现物品标题、内容字段的离线与在线特征管理。核心内容包括:1) 离线特征生产(MaxCompute批处理),通过API生成Embedding并存储;2) 在线特征同步,实时接入数据并更新Embedding至在线存储;3) Python SDK代码示例解析;4) 关键步骤说明,如客户端初始化、参数配置等;5) 最佳实践,涵盖性能优化、数据一致性及异常处理;6) 应用场景示例,如推荐系统和搜索排序。该方案支持端到端文本特征管理,满足多种语义理解需求。
524 1
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
存储 机器学习/深度学习 缓存
特征平台PAI-FeatureStore的功能列表
本内容介绍了阿里云PAI FeatureStore的功能与使用方法,涵盖离线和在线特征管理、实时特征视图、行为序列特征视图、FeatureStore SDK的多语言支持(如Go、Java、Python)、特征生产简化方案、FeatureDB存储特性(高性能、低成本、及时性)、训练样本导出以及自动化特征工程(如AutoFE)。同时提供了相关文档链接和技术细节,帮助用户高效构建和管理特征工程。适用于推荐系统、模型训练等场景。
703 2
|
机器学习/深度学习 数据可视化 算法
Python 高级编程与实战:深入理解数据科学与机器学习
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化和调试技巧。本文将深入探讨 Python 在数据科学和机器学习中的应用,并通过实战项目帮助你掌握这些技术。
PAI-Rec推荐平台对于实时特征有三个层次
PAI-Rec推荐平台针对实时特征有三个处理层次:1) 离线模拟反推历史请求时刻的实时特征;2) FeatureStore记录增量更新的实时特征,模型特征导出样本准确性达99%;3) 通过callback回调接口记录请求时刻的特征。各层次确保了实时特征的准确性和时效性。
916 0
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
853 14
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
863 1
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)

热门文章

最新文章

推荐镜像

更多