python学习_day21---机器学习算法总结

一、算法总结

1、KNN算法

1>算法类型

分类和回归算法

2>算法原理

在这里插入图片描述

3>算法参数

def init(self, n_neighbors=5, *,
weights=‘uniform’, algorithm=‘auto’, leaf_size=30,
p=2, metric=‘minkowski’, metric_params=None, n_jobs=None,
**kwargs):

n_neighbors:表示K值,K个近邻
weights:表示权重的计算方式{‘uniform’, ‘distance’} 默认是uniform
uniform:近邻的点的权重都一样,所以主要看点的个数
distance:距离的倒数表示权重
algorithm:算法{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}
auto:自动选择最优算法
ball_tree:建立球树
kd_tree:建立k维的平衡二叉树
brute:穷举法,暴力搜索
brute:在测试样本寻找最近的k个邻居时,需要较长时间
ball_tree和kd_tree:可以在搜索k近邻时,降低搜索时间;
是以空间换时间(提前需要构建、存储一个树)
leaf_size:叶子节点,针对ball_tree和kd_tree
p和metric:决定了距离的计算方式
metric_params
n_jobs:并行

4>算法特点

1、惰性学习算法 (边测试边训练)
2、需要自定义K值 (K<=20) K值也叫超参数(超参数:是需要提前指定好的参数)
3、计算复杂度高 (每个测试样本 需要和所有训练样本 进行距离计算 排序)
4、优势:简单

5>如何选择最优K值

通俗说:指定一系列K值,测试不同K值对应的准确率,选择准确率最高的K值
简单说:交叉验证(详细可以去官网学习)

2、k-means算法

1>算法类型

聚类算法 属于无监督学习算法
k-means 属于聚类算法
聚类目的:将一组数据分为K个小组,使每个小组内的样本尽可能相似,不同小组内样本尽可能相异
在这里插入图片描述聚类算法应用场景
在这里插入图片描述

2>算法原理

在这里插入图片描述

3>算法参数

def init(self, n_clusters=8, *, init=‘k-means++’, n_init=10,
max_iter=300, tol=1e-4, precompute_distances=‘deprecated’,
verbose=0, random_state=None, copy_x=True,
n_jobs=‘deprecated’, algorithm=‘auto’):

n_clusters:聚类中心
max_iter:执行一次k-means算法所进行的最大迭代数
n_init:用不同的质心初始化值运行算法的次数,最终解是在inertia意义下选出的最优结果。
init:指定初始化方法,默认值为 ‘k-means++’
三个可选值:’k-means++’, ‘random’,或者传递一个ndarray向量。

precompute_distances:预计算距离,计算速度更快但占用更多内存
三个可选值,‘auto’,True 或者 False。

tol:默认值= 1e-4 与inertia结合来确定收敛条件。
n_jobs:指定计算所用的进程数
random_state:用于初始化质心的生成器(generator)

4>算法特点

1、原理简单,算法易实现
2、当簇和簇之间区别明显时,算法效果较好
3、需要自己预先给定K值
4、初始质心的选择对结果影响很大
5、采用迭代的方法,可能只得到局部最优解,无法得到全局最优解
6、对孤立点敏感
7、含噪声数据对结果的影响挺大

3、线性回归算法

1>算法类型

回归算法

线性回归应用场景
在这里插入图片描述

2>算法原理

线性回归就是能够用一个直线较为精确地描述数据之间的关系,这样当出现新的数据的时候,就能够预测出一个简单的值

线性回归的模型形如:
在这里插入图片描述

3>算法特点

1、简单,易实现
2、模型具有很好的解释性,有利于决策分析
3、不适合高度复杂的数据

4、逻辑回归算法

1>算法类型

回归算法

2>算法原理

逻辑回归假设数据服从伯努利分布通过极大似然函数的方法,运用梯度下降来求解参数来达到将数据二分类的目的

3>算法特点

1、实现简单
2、分类时计算量小,速度快
3、容易欠拟合,一般准确度不太高
4、只能处理两分类问题,且必须线性可分

5、朴素贝叶斯算法

1>算法类型

有监督分类算法

2>算法原理

朴素贝叶斯分类(NBC)是以贝叶斯定理为基础并且假设特征条件之间相互独立的方法,先通过已给定的训练集,以特征词之间独立作为前提假设,学习从输入到输出的联合概率分布,再基于学习到的模型,输入X求出使得后验概率最大的输出Y

3>算法特点

1、算法的逻辑性简单,算法较为稳定
2、数据集独立性不好,分类效果就不好

二、评估指标

1、分类算法的评估指标

准确率:正确识别的数目/总数目 [0, 1]

2、聚类算法的评估指标

1.轮廓系数 [-1, 1]
2. 样本到各自聚类中心的距离和 [0, inf]

3、回归算法的评估指标

评估方法
R2 = (1 - u/v)
u ((y_true - y_pred) ** 2).sum()
v ((y_true - y_true.mean()) ** 2).sum()

1.R2 范围(-inf, 1)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值