统计学习和机器学习
两个学科都是数据分析的理论工具,利用好比知道原理更重要。什么时候用,结论准不准,写代码时如何避免坑,都是学习数据分析的重点。
统计学
- 回归模型
- 回归线的拟合度优度评价R2:[0,1],越大越好。算完优度评价之后一定要讨论假设。
- 残差项的非相关性评价Durbin-watson(autocorrelation)值,判断是否自相关。
- 皮尔森值,对回归分析的前提假定的检验是否确实存在线性关系:F统计量p值<0.05 或0.01;
- 研究步骤:
- 业务理解
- 数据导入
- 数据理解
- 数据准备,就是指数据预处理,不包含数据缺失项处理,主要指数据模态。数据模态指的是数据类型和计算工具对数据的要求。比如以下两个重点:
1) 统计学的包import statsmodels.api as sm
。数据要是x特征矩阵,y是目标向量。x的格式可以是numpy的array,和pandas的dateframe。y是一个向量。[ ]切片做出来是series格式,[[ ]]切出来是dateframe。
2)为了追求数据速度,这个统计学的包只计算ax+b的a,不计算b。如果想取得b的数值,可以先在设置一个全是1的列,用constant函数。sm.add_constant(X,to_numpy)
,其中sm.add_constant里面必须用array的格式,用array强制转换或者如上用管道式编程。
3)form scipy. misc import logsumexp 会出现 cannot import name 'logsumexp’报错,解决方案:因为scipy版本过高,降低到scipy==1.2.1就没问题了。
机器学习
- 智慧在于交叉验证的方法。
- 广告投放的模型
- 数据模态在于把数据先分成训练集和测试集,然后再把两个集合里面的特征矩阵和目标向量进行拆分。用函数split。
- 然后用线性回归方法的话,就是用linreg.fit函数得到model。与统计学习用公式表达的方法不同,机器学习的model是不可以被表达出来的,因此输出model是很穷怪的样子。可以通过输出部分参数得到。比如model.coef(斜率),model.intercept(截距),model.get_params,model.score(准确率)。代入测试集model.score(X_test)。
方法选择
选择是机器学习方法还是统计学习方法。还有些方法是都可以选的。
另外,可以通过以下pip指令获取包
1. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ yellowbrick
2. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pynlpir
3. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pyspark==2.2.1
4. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ wordcloud
5.pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ opencv-python