@BruceWang
2018-02-07T22:18:21.000000Z
字数 2525
阅读 1502
CSDN价值两万的AI课程
相对于上周的作业,其实此次数据特征已经很少了,该数据集有些属性的缺失值也比较少,因此本任务的任务主要是为了熟悉LR和SVM分类器的使用,但是任何机器学习都逃不掉特征工程、再高阶一点就是:数据清洗(按理说这项应该是在特征工程之前的)
1) 字段说明
2) DiabetesPedigreeFunction: 糖尿病家族史
3) Age: 年龄(岁)
Outcome: 输出变了/类别标签(0 或 1,出现糖尿病为 1, 否则为 0)
2) 数据说明
一共有 768 个样本,每个样本有 8 个输入变量和 1 个输出 变量,缺失值通常用零值编码。
任务目的
根据皮马印第安人糖尿病数据集 中的特征使用LR和SVM两大分类器预测标签0/1(是否出现糖尿病)
看了数据集和问题之后就会发现,其实很简答, 就是给你1-6的特征让你给这个数据贴标签,有糖尿病么?
说不定可以间接反映这个人平时是不是一个甜食主义者呢?哈哈,开个小玩笑。
相对于上周的作业,其实此次数据特征已经很少了,该数据集有些属性的缺失值也比较少,因此本任务的任务主要是为了熟悉LR和SVM分类器的使用。
但是任何机器学习都逃不掉特征工程、再复杂一点就是数据挖掘、数据清洗(按理说这两项应该是在特征工程之前的)
任务要求及评分标准:
需要提交代码文件,并给出必要的结果解释
总体思路如下:
(这个是最复杂的也是我最不喜欢的)
数据清洗————特征工程
多说一点关于创建一些新特征 :
1. 简化已有特征
2. 联合已有特征
3. 现有重要特征(top 10)的多项式
4. 合并类别特征
那么如何检测你的加了这个特征之后对模型是好,还是坏呢?
一、 通过新增加一个或几个feature,如果cv分数上去了,就增加这个feature,如果cv分数没有上去,就舍弃这个feature
弊端:如果你舍弃的两个feature联合之后才有作用呢? 那岂不是丢失不少东西?
二、 数值型特征加减乘除、这样就可以挖掘出新特征咯!具体问题具体对待。
三、 对于其他特征可以聚类、PCA降维等,后续会讲到相关处理方法。
还有么?有! 这文章就是为你而生的、 Let's do do do do ... it!
四、大多数类别型特征的取值并不是很多,一些特征的取值有序关系,可以将其变换为有序数字
其他的类别型特征可以采用独热编码(One hot encoding)/哑编码
五、 离群点检测----去除“离群特征”----接下来就是比较诡异的数据:零值填补----极值均化。
在去除离群特征时候需要注意的是,对于某些领域还是不能随便去除的,尤其是医学领域。
个人倾向于不做任何处理,也就是说不删除任何数据,因为本身数据已经不够多了, 再加上这点数据根本包含不了这么多的样本可能性。
六、 缺失值处理
很明显这里是几乎没有缺失值的,因为原数据已经处理过的,你下载下来使用的。
对训练集的其他数值型特征进行空缺值填补(中值填补),返回填补后的dataframe,以及每列的中值,用于填补测试集的空缺值
七、 数值型特征还要进行数据标准化(个人认为小量数据fit_transform
足够了)
好了这下就可以开干咯!
两种方法,逻辑斯蒂回归(logistic regression) 和SVM。
建议大家:
- 逻辑斯蒂回归+正则化和不加正则化
- SVM+正则化和不加正则化
尝试看看加了正则化之后和不加正则化有什么区别,这些大家都可以探索的。
Logistic Regression
生成学习器实例 LR = LogisticRegression()
, 然后强调的一点就是要记得交叉验证,哪个组合好,第一是多尝试,第二是可以看看一些基本规则了什么的, 这里可以看看知乎,搜搜quora,都会找到合适的答案。
尝试使用多种正则化,以及对应的正则化参数的大小,因为数据量小,一下就跑出来了,L1、L2最基本的,还有其他的可以看看统计学习方法。
SVM
首先建议看完老师的教程,然后看看李航统计学习方法
,实践完这个看看斯坦福大学的CS231n课程,真心是把大家当傻子教呢,爽死了。
相关步骤和逻辑斯蒂回归差不多哈,
RBF核是SVM最常用的核函数。
RBF核SVM 的需要调整正则超参数包括 (正则系数,一般在log域(取log后的值)均匀设置候选参数)和核函数的宽度
越小,决策边界越平滑;
个人觉得对于大型数据这两个模型都没有现在的深度神经网络好用,哈哈!
如果非要在这俩里面选择一个,我选择logistic, 为什么?嗯,因为简单!
当然这节课你会发现数据已经是不错的了,真正的挑战是遇到那种比如说爬虫爬取的数据,那家伙就很难办了, 你想死的心都有了,好奇? 请私下联系我,联系方式自己摸索呗。