帖子

《机器学习入门》学习笔记分享园地 | 讯飞AI大学

  [复制链接]
189****5605 发表于 2020-7-15 21:55:00
41#
#day1 2020-7-15 - liuyu
  • 机器学习是用来预测和分类的
  • 交叉验证法:将数据划分为N部分,使用任意N-1部分来做训练数据,1部分用来做测试数据,对于N种组合分别求取偏差值,取最佳值。
  • 留一法:只留一个作为测试值
  • N折法
  • 混淆矩阵:
    混淆矩阵用来告诉你机器学习哪里做对了,哪里做错了。用混淆矩阵可以比较机器学习的好坏程度,准确率等。
    矩阵每行的项对应预测值,每列项对应实际值,只有矩阵对角线上的才是预测和实际相符合。
    矩阵的维数由需要分类的个数决定


使用道具 举报 回复
189****9142 发表于 2020-7-15 22:05:21
42#
Day3 线性回归、Odds及对数
1、线性回归(最小二乘法)
①根据数据集拟合成一条直线,计算残差平方和的值评估拟合效果,残差平方和越大,拟合效果越差。
注:残差平方和就是各数据点到直线的距离的平方和,表示了各数据点到直线的总距离。也叫数据与直线的拟合度。
②找到最佳点,即残差平方和最小化
从方程式y=ax+b开始(a表示直线斜率,b表示y轴上的截距),找出a和b的最优值,就得到残差平方和最小值。
2、Odds及对数
①Odds
Odds是某事发生与某事没有发生的比值。
probabilities是某事发生与一切可能发生的比值。
Odds可以通过数字直接计算出来,也可以通过probabilities值计算出来
②Odds对数:log(Odds)
重要性:使用odds的对数绘制直方图,直方图呈正态分布,说明odds对数可以用来解决某些统计问题,如确定输赢、是否或者真假这些类型的情况的probabilities。


使用道具 举报 回复
183****3390 发表于 2020-7-15 22:34:22
43#
# Day 3+学习笔记+07/15
7. R 语言中的 ROC 和 AUC
> library(pROC)
> library(randomForest)
>
> set.seed(420)
>
> num.samples <- 100
>
> weight <- sort(rnorm(n=num.samples, mean=172, sd=29))
> obese <- ifelse(test=(runif(n=num.samples) < (rank(weight)/100)), yes=1, no=0)
> obese
>
> plot(x=weight, y=obese)
> glm.fit=glm(obese ~ weight, family=binomial)
> lines(weight, glm.fit$fitted.values)
>
> roc(obese, glm.fit$fitted.values, plot=TRUE)
> par(pty = "s")
> roc(obese, glm.fit$fitted.values, plot=TRUE)
> roc(obese, glm.fit$fitted.values, plot=TRUE, legacy.axes=TRUE, percent=TRUE, xlab="False Positive Percentage",
xlab="True Postive Percentage", col="#377eb8", lwd=4)

8. 最小二乘法-线性回归
重要:我们要使观测值与直线之间的距离的平方最小化,通过求导找到它等于零时的点。
          最后这条直线使平方和达到了最小化,这条直线给出了它与实际数据之间的“最小二乘”。

9. Odds 及 Odds 对数
odds既可以通过具体数字来计算,也可以通过probabilities来计算。
若要计算odds的对数,我们既可以通过具体数字来计算,也可以通过probabilities来计算。
Odds是指发生的事情与未发生事情的比例,而odds的对数就只是odds的对数。

使用道具 举报 回复
181****4733 发表于 2020-7-15 22:34:33
44#
#Day 3+学习笔记+07/15

线性回归(linear regression):
1、直线越能够拟合所有数据点,该模型越好
    goal:最小化所有点和直线的数值距离的平方和

Odds
1、Odds:某事发生的次数/某事没发生的次数
     Probability:某事发生的次数/所有事情发生的次数
2、log(Odds):防止两件结果的odds相差过大

3、若一件事情只有两种结果(odd1、odd2),则log(odd1)+log(odd2)=0
使用道具 举报 回复
152****6578 发表于 2020-7-15 22:40:02
45#
# Day 3+学习笔记+07/15

今天第一次接触到了R语言这个东西,之前听机器学习的基础感觉还是很通俗易懂的,但是感觉跟着编程实现的时候,自己就有点胆怯。看到群里有同学分享了一些学习资料,感觉还是挺有帮助的,希望自己继续坚持下去。

使用道具 举报 回复
156****9505 发表于 2020-7-15 22:49:50 来自手机
46#
#Day1+学习笔记+07/15

机器学习目的:做预测和数据分类
训练数据:原始数据
测试数据:评估机器学习方法
偏差-方差权衡:很好地拟合了训练数据,但预测较差

交叉验证:
数据分为训练部分和测试部分
留一交叉验证:每一个部分当作验证资料
K 折交叉验证:K个子样本,重复K次,每个子样本验证一次

混淆矩阵
真阳性:实际是,预测是
真阴性:实际否,预测否
假阳性:实际否,预测是
假阴性:实际是,预测否
敏感性:真阳性/(真阳性+假阴性)
特异性:真阴性/(真阴性+假阳性)
使用道具 举报 回复
188****6584 发表于 2020-7-15 22:50:50
47#
Day 3:
10. odds与概率区别:
① odds = 发生/没发生
② probability = 发生/(发生+未发生)
③odds = prob/(1-prob)
11. 逻辑回归:log(odds)->正态分布,可解释性强


使用道具 举报 回复
开放平台用户-m78kwc 发表于 2020-7-15 23:30:12
48#
本帖最后由 开放平台用户-m78kwc 于 2020-7-15 23:50 编辑

# Day 3+学习笔记+07/15
5、偏差(Bias)和方差(Variance)——机器学习中的模型选择
理想中,我们希望得到一个偏差和方差都很小的模型,但实际上往往很困难。
选择相对较好的模型的顺序:方差小,偏差小 > 方差小,偏差大 > 方差大,偏差小 > 方差大,偏差大。
方差小,偏差大 之所以在实际中排位相对靠前,是因为它比较稳定。很多时候实际中无法获得非常全面的数据集,那么,如果一个模型在可获得的样本上有较小的方差,说明它对不同数据集的敏感度不高,可以期望它对新数据集的预测效果比较稳定。

6、ROC和AUC

sensitivity = recall = True Positive Rate
specificity = 1- False Positive Rate
也就是说想要sensitivity高一点相当于要True Positive Rate高一点,要specificity高一点相当于False Positive Rate低一点

为了权衡recall和precision,对于评判分类器的优劣,可以使用ROC(Receiver Operating Characteristic)曲线以及AUC(Area Under roc Curve)指标

ROC曲线的横坐标是FPR,纵坐标是TPR
通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大(Inf)时,对应坐标点为(0,0),阈值最小(-Inf)时,对应坐标点(1,1)。

横轴FPR:=1-TNR=1-Specificity,FPR越大,预测正类中实际负类越多。
纵轴TPR:Sensitivity(正类覆盖率),TPR越大,预测正类中实际正类越多。

下面这幅图,(a)图中实线为ROC曲线,线上每个点对应一个阈值。

ROC.jpg

ROC.jpg



理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,Sensitivity、Specificity越大效果越好。


AUC值相当于ROC曲线的所覆盖的面积,从ROC曲线看AUC值越大,其分类效果越好;如果AUC等于0.5,则相当于做个预测结果跟随机的没差别

使用道具 举报 回复
138****5447 发表于 2020-7-15 23:44:09
49#
# Day 3+学习笔记+07/15

1、偏差bias
偏差是指预测结果与真实值之间的差异,排除噪声的影响,偏差更多的是针对某个模型输出的样本误差,偏差是模型无法准确表达数据关系导致,比如模型过于简单,非线性的数据关系采用线性模型建模,偏差较大的模型是错的模型;

偏差的含义:偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
2、方差variance
模型方差不是针对某一个模型输出样本进行判定,而是指多个(次)模型输出的结果之间的离散差异,注意这里写的是多个模型或者多次模型,即不同模型或同一模型不同时间的输出结果方差较大,方差是由训练集的数据不够导致,一方面量 (数据量) 不够,有限的数据集过度训练导致模型复杂,另一方面质(样本质量)不行,测试集中的数据分布未在训练集中,导致每次抽样训练模型时,每次模型参数不同,输出的结果都无法准确的预测出正确结果

方差的含义:方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。



使用道具 举报 回复
泛海 发表于 2020-7-15 23:47:27
50#
#Day 3+学习笔记+07/15

线性回归(linear regression):
1、y = k*x+b
寻找最佳的k和b,使得数据点到直线的纵轴距离最短
Odds
1、Odds:赢的次数/输的次数
     Probability:赢的次数/(赢的次数+输的次数)
2、log(Odds)
放大0到1,缩小1到无穷


使用道具 举报 回复