机器学习入门

机器学习原理

什么是机器学习?

     从广义上讲,机器学习是一种能够赋予机器学习的能力,让它以此完成直接编程无法完成的功能的方法
    从实践的意义上讲,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法
    人类的学习是一个人根据过往的经验,对一类问题形成某种认识或总结出一定的规律,然后利用这些知识来对新的问题下判断的过程同样机器学习也是类似的过程
那么机器学习如何积累经验,总结规律呢?--------->都是通过数学的方法和原理
    机器学习是指用某些算法指导计算机利用已知数据得出适当的模型,并利用此模型对新的情境给出判断的过程
    数据分析和数据挖掘 == 机器学习 == 人工智能

机器学习分类

机器学习根据所处理数据种类的不同,可以分为有监督学习,无监督学习,半监督学习和强化学习等几种类型
    实践中应用较多的也就是前两种
监督学习
    所谓监督学习,就是说数据样本会告诉计算机在该情形下的正确输出结果,希望计算机能够在面对没有见过的输入样本时也给出靠谱的输出结果,从而达到预测未知的目的X ----> y(目标值)
    就像一个学生通过做多套高考模拟卷并订正答案的方式来提高高考成绩
    在这种情形下,数据就像是监督计算机进行学习的教师,故而得名
    根据输出结果是离散值还是连续值,监督学习可以分为分类问题和回归问题两大类
    监督学习在文字、语音、图像识别,垃圾邮件分类与拦截,网页检索,股票预测等方面有着广泛应用

无监督学习
    无监督学习,是指数据样本中没有给出正确的输出结果信息。这就像做了好多套没有答案的模拟卷,最后还要去高考
    听上去是不是既惊悚又不靠谱
    但其实做没有答案的试卷也是能学到很多有价值的信息的,比方说哪些题出现频率高,那些题爱扎堆考,等等
    比如Google新闻,每天会搜集大量的新闻,然后把它们全部聚类,就会自动分成几十个不同的组(比如娱乐,科技,政治…),每个组内新闻都具有相似的内容结构
    事先没有任何训练数据样本,而直接对数据进行建模(转例:比如我们去参观一个画展,我们对艺术一无所知,但是欣赏完很多幅作品之后,我们面对一幅新的作品之后,至少可以知道这幅作品是什么派别的吧,比如更抽象一些还是更写实一点,虽然不能很清楚的了解这幅画的含义,但是至少我们可以把它分为哪一类)

机器学习的算法:
KNeighborClassifier K近邻
LinearRegression 线性回归
Logistic 逻辑斯蒂
SVM 支持向量机(support vector machine)
DecisionTree 决策树
XGboost
贝叶斯
KMeans
TensorFlow

scikit-learn学习

scikit-learn官网学习 也是谷歌的
Simple and efficient tools for predictive data analysis
Accessible to everybody, and reusable in various contexts(不同内容可复用)
Built on NumPy, SciPy, and matplotlib
Open source, commercially usable - BSD license (最宽泛的开源协议)

框架结构

安装
pip install sklearn
安装过程中,会将其他的依赖库一同安装
用python进行机器学习 数据分析和数据挖掘

六个模块:
分类模型 回归模型 聚类模型 数据降维
模型选择:(包含了参数的挑选)
      from sklearn.model_selection import train_test_split
      from sklearn.model_selection import cross_val_score
      from sklearn.model_selection import GridSearchCV
      from sklearn.metrics模型评估 import accuracy_score
      from sklearn.metrics import confusion_matrix #混淆矩阵
      from sklearn.metrics import classification_report 精确率,召回率,调和平均值
      from sklearn.model_selection import KFold划分,StratifiedKFold按比例划分
数据预处理
      from sklearn.preprocessing import MinMaxScaler,StandardScaler #缩放
      from sklearn.preprocessing import OrdinalEncoder,OneHotEncoder,LabelEncoder
第一个分类模型学习:KNN算法 下一章介绍

TensorFlow和Pytorch

官网学习
TensorFlow和Pytorch都源自于Torch,Torch起初使用一门lau语言,但是语言不好用,没有发展起来,后来又使用python重新实现了一下功能,出现了pytorch,TensorFlow是谷歌的,pytorch是Facebook的。两者都可以用python实现。

数据挖掘

机器学习原理

机器学习:机器自主获取事物的规律
要让机器可以“学习”,必须将生活中的数据(包括但不限于图像、文字、语音)数值化,将不同事物的变化和关联转化为运算。
机器学习可以成立的原因是:概念和数值、关系和运算可以相互映射

机器学习三要素

数据 也就是源数据,指还未转换为机器可以识别的数据样本
向量空间模型(VSM,Vector Space Model):
负责将格式(文字、图片、音频、视频)转化为一个个向量。
在这里插入图片描述
就像一张图片,3*3的图片,将它转化为一个{x,x,x,x,x,x,x,x,x}向量。
在这里插入图片描述
经过数据训练之后的是模型,没有训练过的是算法。
模型
1.模型如何得到
模型是机器学习的结果,而这个学习的过程称为训练(Train)
一个训练好的模型可以被理解成一个函数:y=f(x)
这个y可能是一个数值(回归),也可能是一个标签(分类)

2.什么是训练
根据已经被指定的f(x)的具体形式—模型类型,结合训练数据,计算出其中各个参数的具体取值的过程。
比如一个线性模型:y=f(x)=ax^2+bx+c
训练就是为了找到其中a、b、c的值

算法
训练过程需要依据某种章法进行运算。这个章法,就是算法。
损失函数(Loss Function):
需要用一个函数来描述y’与y之间的差别,这个函数叫做损失函数(Loss Function)
代价函数(Cost Function):
损失函数针对一个训练数据,对于所有的训练数据,我们用代价函数来描述整体的损失
目标函数:
因为代价函数表示的是整个模型付出的代价,所以代价要越小越好,因此我们就得到了一个学习目标,就是得到目标函数。
优化算法:
为了让J(0)达到最小就要使用优化算法。
在这里插入图片描述
X={x1,x2,x3…}
f(x)=w1x1+w2x2+w3x3+b(没有b其实是可以写成1b=w0x0)
WX是矩阵乘法,W的转置乘以矩阵X
在这里插入图片描述
最重要的还是数据本身,要得到高质量的模型,算法很重要,但往往(尤其是在应用经典模型时)更重要的是数据。

模型构造

数据+算法=模型
1.数据准备
数据预处理:收集数据、清洗数据、标注数据。
构建数据的向量空间模型
将构建好的向量空间模型分为训练集、验证集和测试集。
2.训练
训练的核心是算法
3.测试
测试集数据–输入–>模型(预测结果)–>将预测结果与原本的预期进行比较
4.衡量当前模型的质量
按照一定的规则计算模型质量的衡量指标(Precision、Recall、F1Score等等),根据指标的数值来衡量当前模型的质量。

训练集、验证集和测试集

  • 训练集(Train Set):用来做训练的数据的集合。
  • 验证集(Validation Set):在训练的过程中,每个训练轮次结束后用来验证当前模型性能,为进一步优化模型提供参考的数据的集合。
  • 测试机(Test Set):用来测试的数据的集合,用于检验最终得出的模型的性能。
    每个集合都应当是独立的,和另外两个没有重叠。
    其中数据量最大的是训练集,通常训练集和测试集比例为8:2或9:1或7:3。
    整体数据量不大,模型又相对简单时,验证集和测试集也可以合二为一。

训练的过程
1.编写训练程序

  • 选择模型类型;
  • 选择优化算法;
  • 根据模型类型和算法编写程序。
    2.训练->临时模型
    3.在训练集上运行临时模型,获得训练集预测结果。
    4.在验证集上运行临时模型,获得验证集预测结果。
    5.综合参照第3步和第4步的预测结果,改进模型。
    6.回到第2步,反复迭代,知道结果满意或者已经无法继续优化。

模型评估

分类模型评判指标:准确率
对于分类而言,准确率是最简单也是最常见的验证指标
准确率=预测正确的样本数/总样本数

分类模型评判指标:Precision Recall和F1Score
(T:True, F:False, P:正, N:负)
精准率:Precision=TP/(TP+FP),即在所有被预测为Class_A的测试数据中,预测正确的比率。
召回率:Recall=TP/(TP+FN),即在所有实际为Class_A的测试数据中,预测正确的比率。
F1Score=2*(Precision*Recall)/(Precision+Recall)
在这里插入图片描述
多分类模型评估
在这里插入图片描述
回归模型的偏差和过拟合
对训练集样本拟合程度的角度,可以分为两类:欠拟合(Underfitting)和过拟合(Overfitting)。
欠拟合:如果一个模型,在训练集上的预测结果就不佳,指标偏低,哪一般就是欠拟合的问题。
过拟合:如果在训练集上指标很好,而在验证/测试集上指标偏低,则很可能是过拟合问题。
在这里插入图片描述
经验误差和泛化误差
经验误差:学习器在训练集上的误差称为“训练误差”或“经验误差”
泛化误差:学习器在新样本的误差称为“泛化误差”
回归模型的评价指标MSE
MSE(Mean Squared Error)叫做均方误差
这里的y是测试集上的输出
用真实值-预测值然后平方之后求和平均。
1 m ∑ i = 1 m ( y i − y ^ i ) 2 \frac{1}{m}\sum^m_{i=1}(y_i-\hat y_i)^2 m1i=1m(yiy^i)2

模型优化

从三面来进行:数据、算法和模型
数据(特征工程)

  • 对数据进行归一化(Normalization,又译作正规化、标准化)等操作。
  • 采用Bootstrap等采样方法处理有限的训练/测试数据,以达到更好的运算效果。
  • 根据业务进行特征选取:从业务角度区分输入数据包含的特征,并理解这些特征对结果的贡献。

调参(算法参数)
我们训练模型的目的就是为了得到模型对应公式中的若干参数。这些参数是训练过程的输出,并不需要我们来调。除了这些参数外还有一类被称为超参数的参数,例如用梯度下降方法学习LR模型时的步长(Alpha),用BFGS方法学习Linear-chain CRF时的权重(w)等。

超参数是需要模型训练者自己来设置和调整的
通过调参方法来减轻调参工作量,例如 Grid Search等。
调参没有固定的规律可以遵循,往往有很多运气成分,但靠瞎猜基本不可能得出好的结果,还是要按一定的方法来做。

算法选择
1.算法选对的,别选贵的。前沿的不一定是好的。
2.数据最重要,我丑话在先

数据挖掘流程

提取、采集—清洗—数据转化、映射、二值映射—特征选择—降维—评价-
数据分析项目 立足于业务(电商(推荐、用户)、教育类、游戏类) 财务、金融尽量别碰
数据挖掘项目 kggle\天池 癌症分析(重症监护算法)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值