当前位置: 首页 > news >正文

机器学习笔记03

1.线性回归(linear regression)
是利用回归方程(函数)对一个或者多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方法。
线性模型:
1.线性关系:y = w1x1 + w2x2 … + wnxn + b (b为偏置)
2.非线性关系
线性关系一定是线性模型,线性模型不一定是线性关系

损失函数/cost/成本函数/目标函数
最小二乘法
优化损失
正规方程
直接求解
梯度下降
试错,改进

波士顿房价预测(在sklearn1.2中已删除,http://lib.stat.cmu.edu/datasets/boston)
1.获取数据集
2.划分数据集
3.特征工程–标准化
4.预估器流程
fit() coef_(权重系数) intercept_(偏置)
5.模型评估

2.欠拟合和过拟合
欠拟合:学习到的数据特征过少
解决方法:增加数据的特征数量

过拟合:原始特征过多,存在一些嘈杂特征,模型过于复杂为了兼顾各个测试数据点
解决方法:正则化
L1
损失函数 + λ惩罚项 (只是绝对值)
LASSO
L2 更常用
损失函数 + λ惩罚项 (数值的平方)
Ridge - 岭回归

3.逻辑回归的改进-岭回归
带有L2正则化的线性回归-岭回归
逻辑回归的应用场景:
广告点击率 是否会被点击/是否为垃圾邮件
是否患病/是否为金融诈骗/ 是否为虚假账号
原理:线性回归的输出就是逻辑回归的输入
激活函数
sigmoid函数 [0,1]区间中的一个概率值,默认为0.5的阈值
1/(1 + e^(-x))
假设函数/线性模型
1/(1 + e^(-(w1x1 + w2x2 … + wnxn + b)))
损失函数
(y_predict - y_true)平方和/总数
逻辑回归的真实值/预测值 是否属于某个类别
优化损失

4.分类的评估方法
精确率与召回率
1.混淆矩阵
TP = True Possitive
FN = False Negative
2.精确率(Precision)与召回率(Recall)
精确率
召回率 查的全不全
3.F1-score 模型的稳健性
总共有100人,如果99个样本是癌症,1个样本非癌症 --样本不均衡

ROC曲线与AUC指标TPR与FPRTPR = TP/(TP + FN) - 召回率所有真是类别为1的样本中,预测类别为1的比例FPR = FP / (FP + TN)所有真是类别为0的样本中,预测类别为1的比例
AUC(Area Under Curve):被定义为ROC曲线下与坐标轴围成的面积,显然这个面积的数值不会大于1。
又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC越接近1.0,
检测方法真实性越高;等于0.5时,则真实性最低,无应用价值
1.AUC只能用来评价二分类
2.AUC非常适合评价样本不均衡中的分类器性能	

5.模型保存与加载
joblib.dump(estimator, ‘my_ridge.pkl’)
estimator = joblib.load(‘my_ridge.pkl’)

6.无监督学习(没有目标值) – K-means算法
聚类:K-means(K均值聚类)
降维:PCA
K-means原理:一种基于划分的无监督聚类算法,其核心思想是将数据集划分为k个簇,使得每个数据点都属于最近的簇,
并且簇的中心是所有数据点的平均值。
开发流程:
降维之后的数据
1.预估器流程
2.看结果
3.模型评估
kmeans性能评估指标
轮廓系数
如果b_i >> a_i 趋近于1效果越好,趋近于-1效果不好
轮廓系数的值介于[-1,1]之间
越趋近于1代表内聚度和分离度都相对较优
kmeans总结:采用迭代式算法,直观易懂并且非常实用
缺点:容易收敛到局部最优解

http://www.lryc.cn/news/350018.html

相关文章:

  • 【全面介绍下Spring】
  • MYSQL-存储引擎
  • 红蓝对抗 网络安全 网络安全红蓝对抗演练
  • springboot 序列化和反序列化
  • 德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第一周) - 自然语言处理介绍和线性分类
  • SQL注入漏洞常用绕过方法
  • C语言输出符
  • 申请一个开发者域名
  • 接搭建仿美团、代付系统源码搭建教程
  • 迭代的难题:敏捷团队每次都有未完成的工作,如何破解?
  • ChatGPT未来可能应用于iPhone?
  • Spring之bean的细节(创建方式、作用范围、生命周期)
  • 探索STLport:C++标准模板库的开源实现
  • 计算机Java项目|Springboot高校心理教育辅导设计与实现
  • 数据结构简单介绍、算法简单介绍、算法复杂度、时间复杂度等的介绍
  • Google I/O 2024:有关AI的一切已公布|TodayAI
  • 【Shell脚本】Shell编程之数组
  • Python 全栈系列246 任务调度对象WFlaskAPS
  • 关于Windows中的NTUSER.DAT文件的知识,看这篇文章就差不多了
  • 【Linux】动态库与静态库的底层比较
  • 私活更好用:SpringBoot开源项目!!【送源码】
  • SprintBoot案例-增删改查
  • 【机器学习】:基于决策树与随机森林对数据分类
  • .NET 4.8和.NET 8.0的区别和联系、以及查看本地计算机的.NET版本
  • 23.HashMap的put方法流程
  • 元类结合__new__
  • (C语言)队列实现与用队列实现栈
  • 字符画生成网站 ascii字符画
  • 【C -> Cpp】由C迈向Cpp (6):静态、友元和内部类
  • 探索Playwright:Python下的Web自动化测试革命