[kaggle系列 三] 使用SVM判断是否能从泰坦尼克号生还

本文通过Kaggle上的泰坦尼克号数据集,探讨了如何使用SVM进行生存预测。介绍了SVM的基本原理,讨论了模型选择的奥卡姆剃刀原则,并分享了使用不同核函数的代码与结果,线性核函数展现出最佳性能。
摘要由CSDN通过智能技术生成

题目

连接:https://www.kaggle.com/c/titanic

前言

和前几篇差不多,这次换成svm,实际上,对于svm的理解是有了,知道是怎么做的了,但具体公式如何推导,还是不会,但是,这不影响写代码,使用现成的库函数就可以搞定,有时候,这些工具大大简化了我们的学习成本,知道基本原理,然后去使用就行了,具体的细节也不用去关心。用陶渊明的话来说,就是,“好读书,不求甚解;每有会意,便欣然忘食.”。在机器学习方面,对于我这种人来说,更多的精力应该放在如何应用,如何处理数据与训练好模型上,去理解底层原理然后对学习方法进行一些改进之类的,只能说现在还达不到那种境界。

SVM

这里简单介绍一下svm的基本原理就结束了~ 我认为这个大概理解一下就行了,后面真的遇到瓶颈的时候再仔细研究一下吧~
SVM全称是支持向量机(Support Vector Machine),听起来还是挺高端的,让我想起来搞acm的时候第一次听到AC自动机的时候,哈哈。
SVM的分类方法其实和逻辑回归类似,想象我们有一堆数据,这个数据有两个属性,也就是x是一个二维向量,那么就是类似这样一个图:

在实际数据中,红色的是一类,蓝色的是一类,我们想要用一个线性函数来将这些数据分类,即在函数图像将平面分成两个区域,一个区域内的点认为是红色类,另一个区域内的点认为是蓝色的点。仔细思考一下就可以发现,这是不可能实现的,无论如何在平面中画线,都不能比较完美的分割。所以svm算法提出了一个思路:把n维空间无法解决的问题,放在n+1或者更高维度的空间中去分类。想象我们把上图中的二维平面的点放到三维空间中,我们就可以构造出这样的集合:

在三维空间中,二维平面中的点由于多了一维,有了“高度”,我们就可以用一个平面将这两个集合完美划分:

在svm算法体系中,这个平面就叫做“超平面”,这是一个抽象的面的概念,在一维空间里就是一个点,二维空间里就是一条直线,三维空间里就是一个平面,以此类推。
那么如何把一个n维空间中的点映射到更高维上去呢?这就要用核函数(Kernel)去构造,常见的核函数有:线性核函数、多项式核函数、径向核函数、高斯核函数等等……至于这些函数如何运作的,这里就不介绍了(其实是因为不会,嘻嘻)。值得一提的是,核函数并没有增加更多的维度,也就是你原来的输入是二维向量,那升维以后的输入也是相同的,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值