目录
一、再谈变量
上篇说了变量的概念,那么我们再详细介绍下。变量是各种各样的,但无外乎是“数值”和“字符串”,数值我们已经很熟悉了,“字符串”就比如学生姓名(“张三”,“李四”,“Tom”),还有句子,文章段落等。
数值变量的话又可以分为两种,连续型变量和分类变量。如果某个变量取值是在某个区间连续的,就比如商品价格、长度、重量、分数等,就是连续型变量。如果某个变量是类别或者标签,取值就几个,例如性别(男,女)、评级(优秀,良好,差)、学历(小学,初中,高中,大学)等,就是分类变量。
连续型变量和分类变量的除了从实际意义上区分,再就是取值上进行区分。拿到数据后一定要先看下,对每个变量的类型有所了解,这对后面的确定研究问题和研究方法至关重要。
(身高就是连续型变量,性别就是分类变量。)
二、确定研究变量(Y,X)
当拿到数据以后,随之而来的就是要研究什么问题,要从这份数据中研究什么,分析出来什么。
1.因变量
数据看完,各个变量也有详细了解后,那么就要确定自变量(X1,X2,X3......)和因变量(Y)。你所研究问题的重点,或者想要围绕的某个变量,就是因变量。例如你要研究一个问题是“学生成绩与什么因素有关”,搜集到的数据变量有“成绩”、“家长陪伴孩子时间”、“老师的耐心程度”、“有没有上补习班”等等,自然“成绩”这一变量就是因变量。
因变量通常只有一个。当然也可以是多个,这个时候就是多输出问题了。
2.自变量
自变量的选取是不受限的,其实广泛来说,除了因变量,其他所有变量都可以当做自变量。
但请注意你所选取的自变量是否有意义,或者是不是太多或者太少。
(1)是否有意义
何为有意义?如果某些变量明确是对因变量没有影响的,就是无意义,可以不研究。例如“研究学生成绩与什么因素有关”,我们搜集到了很多变量,其中有学生姓名和学号,那么姓名和学号这两个变量明显是没有意义的,因为不可能你取了一个什么名字,或者你的学号比较顺眼就考了一个好成绩,所以可以不把这两个变量当作自变量进行研究。
拓展一下,这个姓名和学号,或者网站链接,工号,位置信息等,能够唯一代表该行样本属性的,在数据库语言中叫“主键”。你可以理解为,我知道了你的工号或者学号,就能查到你的所有样本信息。
(2)自变量太多
还记得上篇讲的“np难问题”吗,我们通常希望样本个数是远大于变量个数的(n远大于p)。但有时已经满足了此条件,自变量有几十个或者几百个,全研究的话既麻烦而且后续建模时的效果可能会不好。此时便要考虑进行降维,也叫筛选变量。例如主成分分析(PCA),线性回归引申的Lasso、岭回归,统计学中的向前选择,向后剔除,逐步回归等等。
(3)自变量太少
有时我们搜集到了数据,但可用的自变量很少,就两三个,或者我们对已有的自变量已经很熟悉了,想要发掘一些新变量进行研究。此时便可以用已有的变量进行组合产生新变量,例如已有变量x1、x2,那么可以产生变量x3=x1/x2,x4=x1^2,x5=x1*x2,x6=x1^2/x2……。这个过程也叫做特征工程,变量又叫做特征。但注意,组合新变量从理论上来说是无穷的,因为它们之间的运算可以无穷,请注意你是否需要这么多变量和变量背后的意义。
3.因变量和自变量关系
通常我们确定研究问题,研究的因变量后,我们希望通过自变量发现因变量所受影响和影响大小,继而发现某种规律或者结论。通常Y和X的关系可以写为:
Y=f(X)
f()就是某种函数关系,可以显化也可以不显化,X是自变量,注意它不止是一个自变量,而是所有研究的自变量总体。
但无论我们怎么研究,真实的Y和X之间的关系我们是不知道的,只是尽可能去建模、模拟产生一个f(X)来近似这种关系。当然明确的数量关系除外,例如成绩单中的总分,这个变量注定是其他各科分数的组合,不用建立模型我们就知道。我们也可以加入一个随机误差项,表示我们建立的模型和真实的关系之间的误差:
Y=f(X)+
三、确定问题性质
确定自变量、因变量,已经明确它们是连续变量还是分类变量后,我们要确定问题属于哪种问题,这样才能根据它的性质来确定后面的模型用什么模型,分析怎么分析。
确定问题性质主要看因变量,如果因变量是连续型变量,那么问题就是一个回归问题;如果因变量是分类变量,那么问题就是一个分类问题。
在机器学习中,只要有因变量,那么这就是“有监督学习”;如果我们只有自变量没有因变量的时候,这就是“无监督学习”。
还记得一开始说的变量还可以是“字符串”吗,如果你的因变量是字符串,那么请注意,它到底是不是“真正的字符串”。比如因变量是颜色类型(具体为“红”、“黄”、“蓝”),你很容易理解这是一个分类问题,但因变量都是字符串怎么办?这个时候是可以转化的,可以把“红”、“黄”、“蓝”转化为“0”、“1”、“2”。但请注意,这个地方的数值并不像0,1,2有大小可以运算那样了,它们只代表的背后的所属类型,不代表大小和运算。当然你转为“3”、“4”、“5”或者“-1”、“0”、“1”都是一样的,只要区分它们本质是“红”、“黄”、“蓝”这三类就可以了。
如果你的数据全是字符串,或者你就要对字符串研究,它们是段落、文章、音频等,那么你的问题就是另一个领域了,“自然语言处理”,缩写为NLP。