2020年9月12日 | 标签:

使用Excel进行逻辑回归预测-Kaggle泰坦尼克案例

背景介绍:
因为工作需要进行一些数据预测的工作,对于比较简单的预测可以用线性回归来做,Excel就自带线性回归的公式,点击几下就可以达到结果,比较简单,对于比较复杂的预测就需要用逻辑回归来进行预测

什么是线性回归:
线性回归解决变量是线性的数字,且预测结果是具体的数字,如根据各个渠道的广告费和销售额进行线性回归,拿到线性回归公式后,就可以根据指定的渠道费用预测销售额

什么是逻辑回归:
对于预测结果是分类的数据如根据一个人的特征指标如是否熬夜,是否压力大,年龄,抽烟喝酒状况预测一个人是60岁以后是否会得癌症以及根据一个邮件的标题,内容,称呼,发送时间,发送邮箱来预测一份邮件是否是垃圾邮件,对于这种根据一些特征指标(有的为具体数字如年纪,有的为类型如性别)预测结果为 是或者否的情况,我们需要使用逻辑回归来进行预测

逻辑回归怎么做:
对于逻辑回归,网上很多都是使用Python代码或者SPSS等专业软件来完成,但对于没有经验的小白或没有安装专业分析软件的,有没有一种能在Excel上操作, 像做线性回归那样点击几次鼠标就能轻松拿到结果
我先用百度查询了下逻辑回归excel的关键词,基本上很少,就算用excel也要使用复杂的公式来计算,然后谷歌搜索,使用英文 excel logistic regression,终于找到国外大神的办法,不需要什么懂公式,不需要编程, 点击几次按钮既可完成复杂的逻辑回归预测

案例介绍:
本文以excel插件(Robert Nau,美国杜克大学教授,为MBA课程开发)结合kaggle上(全球公认顶级有80万数据科学家进行机器学习竞赛的平台)网站上的案例-泰坦尼克号幸存者及遇难者名单, 使用幸存人员特征进行逻辑回归预测,找到具备如何特征的人会在这场灾难中有更高的存活率

操作步骤:

Excel插件,推荐使用
https://regressit.com/regressitlogistic.html(再次感谢Robert Nau,美国杜克大学教授)
(备选工具,http://www.real-statistics.com/free-download/)

软件截图如下

1,工具准备-Excel具体的插件安装方法

1.1下载逻辑回归插件文件xlam

需要注意它有很多版本,我们需要下载的是带有逻辑回归,mac也可以下载
访问网站https://regressit.com/regressitlogistic.html

1.2,从Excel导入逻辑回归插件

点击excel按钮,点击选项

再弹出的选项窗口 选择add-in,然后选择goto


1.3 导入插件到excel库中
再打开插件的目录,把我们下载的xlam的插件放入这个目录中

1.4安装完成预览
在顶部tab位置可以看到 regressit的窗口,其中logistic regression就是我们用的功能

2,数据准备-kaggle案例数据下载及整理

2.1 访问kaggle网站下载样本数据

访问kaggle上泰坦尼克的案例网站
https://www.kaggle.com/c/titanic/data
按截图所示选择数据,train.csv
里面存放了样本数据(891个真实人员的身份信息及最终是否存活)

2.2使用插件选择数据区域及命名变量

使用excel打开样本数据train.csv后,选择插件后,先点击 选择数据 以及创建名称

•PassengerID(ID)
•Survived(存活与否)
•Pclass(客舱等级,较为重要)
•Name(姓名,可提取出更多信息)
•Sex(性别,较为重要)
•Age(年龄,较为重要)
•Parch(直系亲友)
•SibSp(旁系)
•Ticket(票编号)
•Fare(票价)
•Cabin(客舱编号)
•Embarked(上船的港口编号)

2.3 确认变量名称位置

点创建名称位置,选择top row,既使用第一行的名称做为变量的名称(有的数据名称写在第一列,就可以点击left column)

2.4 确定特征值与预测值对应关系

点击logstic regression 进行预测设置,主要是设置非独立变量(dependent,既别人影响的变量)为Survived这列,则独立变量(independent 自变量,能影响到别人的变量,特征值))
要选中分类表和roc曲线

2.5点击运行预览模型结果

这里要说明的几个选项
2.5.1 P-value说明每一个参数的可信度,要小于0.05,越小越好,理解为这个参数失误的可能性


2.5.2 percent correct,预测准确率,既预测的数据里面猜对的比例,(猜对分2种,预测死亡,实际死亡,和预测生存实际也生存)

2.5.3 true positive rate,正确召回率,既猜中生存的(预测活,实际活的人数) 除以所有活下来的人数,既能找回多少比例活的人,或者根据预测结果,能把实际活下来的人找到的比例

2.5.4 true negative rate,错误找回率,既猜中死亡(预测死,实际死的人数)除以所有死的人的数字,既能召回多少比例死的人,或者根据预测结果,能把实际死亡的人找到的比例

2.5.5 ROC曲线,0.76,既然整个公式预测的拟合度,你可以理解衡量整个公式正确率的数据,越接近1 越好,可以理解为公式的正确率吧


从截图数据看到,这里的正确召回率特别低 只有52%,意味着只能把幸存者中的52%给预测出来,所以这数据还是不怎么行

起码3个率(正确率,和2类情况下的召回率),都要80%以上

3,模型优化-优化参数 提升预测准确率

3.1 增加辅助变量 -性别信息进行数字化
这里考虑加上性别这个变量,因为电影里面船长说 让女人和小孩先走,所以性别应该会有结果有影响,然后我们看到有些人是没有年龄的数据的,需要 把缺失的数据补全

对于性别,因为逻辑回归工具只能识别数字,所以需要把男性都变成1,女性都变成0,既生成一个辅助列M,当为男性的时候 M列 Sex code为1, 反之为0
对于F列 年龄,对于缺失值,使用整个F列平均值补齐

3.2 优化先有变量-补齐缺失值
对于缺失的某些人群的特征值,使用29.7 这个平均值补齐

3.3 从新配置逻辑回归变量

重新选择变量(增加了1个变量),点击select data,再创建名称

再弹出的窗口可以看到变成模型2,且可以选择独立变量既sex code这个新增加的变量
其他选择和之前保持一致

3.4 点击运行的到新结果
这次的结果中,ROC 有0.85,比之前高,且3个率 也比之前有比较大提升,认为模型2比模型1要好


3.6 多模型对比 选优
可以点击excel中新增的对比模型的表格可以清楚看到2个模型的差距

变量数由4变成5

然后不同模型的ROC值和3个率

以及P值(扩后内是每个变量的P值) 括号外 是每个变量的系数,后面会用到

4,预测结果检验-预测公式整理及数据验证

通过上述2个模型,我们可以使用模型2进行预测,这里我们可以把模型2的公式进行

这里看到模型2最重要数据是4个参数,分别是对应变量的权重

既常数是5.241, 年龄的系数是-0.04 其他同理
那么我们可以计算出一个Z值,既使用每行里面的特征值乘以对应的权重,如下图,使用第2行这个人的各自的属性值乘以对应系数进行相加 得到Z值,
如第3行的人的Z值是2.214
第4行的人的Z值是0.682


.
为了最终能的到发生存活的概率(0-1)这样的值,我们需要使用公式将Z值进行变化,既无论Z值为什么值,最后Y值都是在0-1之间)使用线性回归转逻辑回归公式

这样的X就使用Z值进行替代

就的到Y值,如下图,Z值为-2.26,经过公式替换就变成y=0.09449
表示这个人的幸存概率不到10%, 接合我们前面的定义,大于50%的概率我们认为会幸存,所以这个人预测结果就是0, 代表遇难, 如果是1就是幸存,同时我们可以看到实际结果也确实为0,为遇难,所以我们增加一列预测正确次数,为true,既我们猜对了,公式为当都是0(预测是0,实际也是0,或者预测是1 实际是1)那么R列为预测正确,然后我们再区分猜中幸存的统计在S列,既猜1,且实际为1, 和猜中遇难(预测是0,实际是0)
那么就可以统计正确率,生存召回率及死亡找回率
与我们之前算的结果一致

这样我们就算能精确计算每一个存活的概率和判断最终是否幸存的结论

5,获取新数据进行验证,参加比赛

我们可以从kaggle里面再下载新的数据(之前给的是部分样本数据)
https://www.kaggle.com/c/titanic/data?select=test.csv
下载test数据

在test.csv的新的数据中,和之前的样本数据一致,但是没有结果指标,既没有是否遇难,我们可以根据之前的公式,就可以预测了.

最终输出下面的预测结果,id号和预测结果

然后上传到网页上就可以比赛 获得排名


排名不高,可以忽略

结语:
本文详细记录了Excel使用插件进行逻辑回归的办法,同时也例举了Kaggle上下载数据和进行预测,并参加比赛的办法
附上数据表格
results

没有评论 (24 views)
2020年8月5日 | 标签:

背景

观看的课程视频无法下载,找了很久才找到办法,原理是利用chrome嗅探出m3u8的文件地址(直播视频会被切割成许多的ts文件,而m3u8就是ts文件的列表文件,会记录每一个ts文件的地址)

而ts文件就是一个小的视频文件 再使用一些视频工具合并就可

具体工具需要2个,

1,m3u8x,一款m3u8下载ts文件的工具

https://sourceforge.net/projects/m3u8x/

2,批量修改文件名称的工具

http://www.kuaigaizhushou.com/

主要是弥补m3u8x不能合并加密ts文件的问题,需要批量修改下文件名

第一步,打开chrome浏览器,打开直播网址开启开发者工具,点击network面板,输入m3u8,嗅探出文件地址

如果找不到,轻刷新页面

可以看到我们的m3u8的地址具体

点击这个m3u8文件 可以看到许多个ts视频文件的具体地址

然后下载好 m3u8x 放入 quality url 记得点 one。。。one

 

就会下载很多ts文件

 

 

下载完点击打开文件夹

 

可以看到很多文件

使用文件修改器

去掉后缀

 

最后合并为mp4就好了

 

总结

需要先用chrome的 network功能找到m3u8 然后再使用工具下载ts文件,

需要改下名称 因为工具的缺陷无法识别有后缀的ts文件,然后就可以合并mp4

 

 

更新(8月6日 2020)

 

尝试使用上面的工具下载一些ts文件

但是ts加密后 是无法合并的

 

所以这个时候需要解密的

https://github.com/nilaoda/N_m3u8DL-CLI/releases

目前用下来比较好用的是这个

下面是果壳网的介绍

https://www.ghpym.com/nm3u8dlcli.html

亮点是

支持下载m3u8链接或文件为mp4或ts格式,并提供丰富的命令行选项。

支持AES-128加密自动解密
支持多线程下载
支持下载限速
支持断点续传
支持Master List
支持直播流录制(BETA)
支持腾讯、爱奇艺、优酷的杜比视界m3u8下载
支持自定义HTTP Headers
支持自动合并 (二进制合并或使用ffmpeg合并)
支持选择下载m3u8中的指定时间段/分片内容
支持下载路径为网络驱动器的情况
支持下载外挂字幕轨道、音频轨道
支持仅合并为音频
自动使用系统代理(可禁止)
针对国内视频网站m3u8进行了优化
提供SimpleG简易的GUI生成常用参数

没有评论 (93 views)
2020年5月18日 | 标签:

 

因为新公司使用阿里云邮箱,习惯了outlook上的日历(以前公司使用微软邮箱)操作同步到手机中(电脑上用outlook创建会议邀请或活动提醒,会自动同步到手机和网页,在外面开会可以手机查看接下来的日程安排)

 

研究了很久终于搞定,这里面有2步

  • Outlook使用阿里云官方插件同步到网页邮箱(阿里云服务器)
  • IOS中邮箱使用日历同步协议与阿里云服务器同步

 

依次详细讲解

Outlook使用阿里云官方插件同步

在outlook中虽然可以通过imap协议配置好阿里云邮箱,但是无法使用通讯录功能,查找同事名称和邮箱不如网页方便,并且最要命的,习惯于使用outlook来管理会议和时间的人无法将outlook中的会议同步到手机中,对于经常接受会议和创建新的日程安排的人来说很不适应,然后经过检索发现,阿里云邮箱提供Outlook插件

http://mailhelp.mxhichina.com/smartmail/detail.vm?spm=0.0.0.0.CwwetG&knoId=20298293

有2个功能很实用,同步通讯录和日历到服务器

可以点击详情看到别人的手机号

 

新建邮件的时候也可以同步提醒对应的人名字了

然后就是创建的的日历可以同步到云,如我再6月10日创建与张总会议

 

在outlook创建好后,会自动同步到网页云的邮箱中

到这一步就算第一步完成,既电脑的信息同步到云中(outlook到aliyun)

 

第二步

使用CalDAV帐号同步IOS和aliyun

参考了这篇文章https://www.cnblogs.com/24Key/p/11753110.html

一共三步,在账户中选择其他,然后添加一个CALDAV账户(日历账户)

 

1,填写 服务器:  caldav.mxhichina.com

2:  填邮箱账号 (带域名) 例如:   aaa@bbbb.com.cn

3:  填邮箱密码 :

 

高级设置 :   443 端口   SSL加密

账号URL:  https://caldav.mxhichina.com/dav/账号

例如:   https://caldav.mxhichina.com/dav/aaa@bbbb.com.cn

 

这样,aliyun上的日历就能同步到手机了

 

到这一步,实现了日历功能的跨端同步(IOS+Windows+Web)

 

没有评论 (387 views)