大数据关键技术:常规机器学习方法

科技资讯 投稿 21400 0 评论

大数据关键技术:常规机器学习方法

机器学习方法简介

机器学习、人工智能、深度学习是什么关系?

Arthur Samuel给出的定义指出,机器学习是这样的领域,它赋予计算机学习的能力(这种学习能力)不是通过显著式编程获得的。

机器学习的基本思路

1.把现实生活中的问题抽象成数学模型,并且很清楚模型中不同参数的作用

3.评估这个数学模型,是否真正的解决了现实生活中的问题,解决的如何?

机器学习分类

监督学习

这种通过大量人工打标签来帮助机器学习的方式就是监督学习。这种学习方式效果非常好,但是成本也非常高。

1.回归:预测连续的、具体的数值。比如:支付宝里的芝麻信用分数

“回归”案例:个人信用评估方法——FICO

非监督学习

非监督学习中,给定的数据集没有“正确答案”,所有的数据都是一样的。无监督学习的任务是从给定的数据集中,挖掘出潜在的结构。

强化学习

在一个有特定规则的场景下,尤其是游戏。

机器学习实操的步骤

  1. 收集数据

  2. 数据准备

  3. 选择一个模型

  4. 训练

  5. 评估

  6. 参数调整

  7. 预测(开始使用)

15种经典机器学习算法

算法 训练方式
线性回归 监督学习
逻辑回归 监督学习
线性判别分析 监督学习
决策树 监督学习
朴素贝叶斯 监督学习
K邻近 监督学习
学习向量量化 监督学习
支持向量机 监督学习
随机森林 监督学习
AdaBoost 监督学习
高斯混合模型 非监督学习
限制波尔兹曼机 非监督学习
K-means 聚类 非监督学习
最大期望算法 非监督学习

主流的监督学习算法

算法 类型 简介
朴素贝叶斯 分类 贝叶斯分类法是基于贝叶斯定定理的统计学分类方法。它通过预测一个给定的元组属于一个特定类的概率,来进行分类。朴素贝叶斯分类法假定一个属性值在给定类的影响独立于其他属性的  ——  类条件独立性。
决策树 分类 决策树是一种简单但广泛使用的分类器,它通过训练数据构建决策树,对未知的数据进行分类。
SVM 分类 支持向量机把分类问题转化为寻找分类平面的问题,并通过最大化分类边界点距离分类平面的距离来实现分类。
逻辑回归 分类 逻辑回归是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法。
线性回归 回归 线性回归是处理回归任务最常用的算法之一。该算法的形式十分简单,它期望使用一个超平面拟合数据集(只有两个变量的时候就是一条直线)。
回归树 回归 回归树(决策树的一种)通过将数据集重复分割为不同的分支而实现分层学习,分割的标准是最大化每一次分离的信息增益。这种分支结构让回归树很自然地学习到非线性关系。
K邻近 分类+回归 通过搜索K个最相似的实例(邻居)的整个训练集并总结那些K个实例的输出变量,对新数据点进行预测。
Adaboosting 分类+回归 Adaboost目的就是从训练数据中学习一系列的弱分类器或基本分类器,然后将这些弱分类器组合成一个强分类器。
神经网络 分类+回归 它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。

模型评估与参数优化——SVM

混淆矩阵

TP+FN=所有正样本的数量
FP+TN=所有负样本的数量

AUC Score

SVM参数调优

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split,cross_val_score,GridSearchCv
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
#pandas处理数据集
#sklearn.model selection实现数据集分割,自动调参
#sklearn,svm线性支持向量分类
#读取数据
data = pd.read csv('krkopt.data',header=None
data.dropna(inplace=True#不创建新的对象,直接对原始对象进行修改

数据预处理忽略,详见ppt

SVC(*, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', break_ties=False, random_state=None

SVC参数解释

    C
  1. : 目标函数的惩罚系数C,用来平衡分类间隔margin和错分样本的,default C = 1.0;

  2. kernel:参数选择有RBF, Linear, Poly, Sigmoid, 默认的是"RBF";

  3. degree:degree决定了多项式的最高次幂;

  4. gamma:核函数的系数('Poly', 'RBF' and 'Sigmoid', 默认是gamma = 1 / n_features;

  5. coef0:核函数中的独立项,'RBF' and 'Poly'有效;

  6. probablity: 可能性估计是否使用(true or false;

  7. shrinking:是否进行启发式;

  8. tol(default = 1e - 3): svm结束标准的精度;

  9. cache_size: 制定训练所需要的内存(以MB为单位);

  10. class_weight: 每个类所占据的权重,不同的类设置不同的惩罚参数C, 缺省的话自适应;

  11. verbose: 跟多线程有关;

  12. max_iter: 最大迭代次数,default = 1,if max_iter = -1, no limited;

  13. decision_function_shape : ‘ovo’ 一对一, ‘ovr’ 多对多 or None 无, default=None

  14. random_state :用于概率估计的数据重排时的伪随机数生成器的种子。

def svm_c(x train,x test,y_train,y_test:
    #xbf核函数,设置数据权重
    svc = SVC(kernel='rbf',class weight='balanced',
    c_range = np.logspace(-5,15,11,base=2
    gamma range = np.logspace(-9,3,13,base=2
    #网格搜索交叉验证的参数范围,cV=3,3折交叉
    param_grid =[{'kernel':['rbf']'C':c_range,'gamma':gamma_range}]
    grid = GridSearchCV(svc,param_grid,cv=3,n jobs=-1
    产训练模型
    clf = grid.fit(x train,y_train
    #计算测试集精度
    score = grid.score(x test,y test
    print('精度为8s' % score

网格搜索(GridSearchCV)

GridSearchCV的名字其实可以拆分为两部分,GridSearch和CV,即网格搜索和交叉验证。

交叉验证分为三种:简单交叉验证、S折交叉验证、留一交叉验证

GridSearchCV可以保证在指定的参数范围内找到精度最高的参数,但是这也是网格搜索的缺陷所在,他要求遍历所有可能参数的组合,在面对大数据集和多参数的情况下,非常耗时。

grid = GridSearchCV(svc, param_grid, cv=3, n_jobs=-1
#n_jobs=-1,表示使用该计算机的全部cpu

编程笔记 » 大数据关键技术:常规机器学习方法

赞同 (28) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽