- 博客(76)
- 资源 (1)
- 收藏
- 关注
原创 深度学习的优化
一些符号:θt\theta _{t}θt:模型参数:时间步长▽L(θt)\bigtriangledown L(\theta _{t})▽L(θt)或者gtg _{t}gt:θt\theta _{t}θt的梯度,用于计算θt+1\theta _{t+1}θt+1mt+1m_{t+1}mt+1:动量从0到t累积,用于计算θt+1\theta _{t+1}θt+1,记录前面时刻的梯度如上图所示:xtx_{t}xt:输入θt\theta _{t}θt:时刻t的模型参数yty_{t}
2020-11-26 20:59:42
192
原创 回归
目标:预测宝可梦的CP值根据已有的宝可梦进化前后的信息,预测宝可梦进化后的CP值方案:确定 Senario、Task和ModelSenario根据已有的数据确定Senario,有用宝可梦进化前后CP值的数据,输入是进化前的宝可梦(包括它的各种属性),输出是进化后的宝可梦的CP值,因此数据是有标记的,使用的Senario是有监督学习。Task根据想要的函数输出类型,确定Task,此任务中预期得到宝可梦进化之后的CP值,是一个数列,因此使用的Task是回归。model模型的选择多样,此处选择非线
2020-11-23 20:42:06
336
原创 ensemble(集成)
集成框架(framework of ensemble)集合一系列分类器:f1(x),f2(x),f3(x),...f_{1}(x),f_{2}(x),f_{3}(x),...f1(x),f2(x),f3(x),...把这些分类器用有效的方法集合在一起1、Bagging当模型比较复杂,担心过拟合的时候,可以采用此方法创造出不同的数据集,然后去训练不同的模型怎么创造数据集:假设有N笔训练集,从这N笔训练集里面,抽取N‘笔数据作为新的数据集,接下来用几个不同的复杂模型对数据进行训练,产生四个
2020-11-20 15:04:13
988
原创 循环神经网络(Recurrent Neural Network)
RNN是最常用的LSTM(LSTM由RNN转化而来)一般般用于记住之前的状态,以供后续神经网络的判断,它由input gate 、forget gate 、output gate 、和cell memory组成,每个LSTM本质上就是一个神经元,特殊之处在于有4个输入:zzz和三个门控制信号zi,zf,zoz^{i},z^{f},z^{o}zi,zf,zo 组成 ,每个时间点的输入都是由当前输入值+上一个时间点的输出值+上一个时间点cell值来组成槽填充在智能客服、智能订票系统中,往往需要槽填充技术,他
2020-11-17 21:45:48
633
原创 迁移学习
迁移学习迁移学习,transfer learning,旨在利用一些不直接相关的数据对完成目标任务做出贡献。不直接相关指的是:领域相同,任务不同/任务相同,领域不同迁移学习是很多方法的集合:Target Data:和task直接相关的数据Source Data:和task没有直接关系的数据按照有标签数据和无标签数据又可以划分为四种:1、target data和source data都带标签的情况:target data:(xt,yt)\left ( x^{t},y^{t} \right )
2020-11-16 21:15:04
213
原创 矩阵分解
有时候存在两种对象,他们之间会受到某种共同潜在因素的操控,如果找出这些潜在因素,就可以对用户行为进行预测,这是推荐系统常用方法之一。假设我们现在去调查每个人购买的公仔数目,ABCDE代表5个人,每个人或者每个公仔实际上都是有着傲娇的属性或天然呆的属性我们可以用vector去描述人和公仔的属性,如果某个人的属性和某个公仔的属性是match的,即他们背后的向量很像(内积值很大),这个人就会偏向于拥有更多这种类型的公仔矩阵表达式但是,我们没有办法直接观察某个人背后这些潜在的属性,也不会有人在意一个肥宅心
2020-11-13 15:14:59
84
原创 无监督学习-2-PCA
PCA算法认为降维就是一个简单的线性函数,它的输入xxx和输出zzz之间是线性变换,即z=Wxz = Wxz=Wx,PCA要做的就是根据xxx把www找出来(zzz未知)。一维空间为了简化问题,假设z是一维的向量,也就是把x投影到一维空间,此时w是一个行向量z1=w1⋅xz_{1} = w^{1}\cdot xz1=w1⋅x,其中w1w^{1}w1的长度为1,即∥w1∥2=1\left \| w^{1} \right \|_{2}=1∥∥w1∥∥2=1,此时z1z_{1}z1 就是xxx在w1
2020-11-12 19:43:55
95
原创 无监督学习(1)
无监督学习(Unsupervised Learning)可以分为两种:化繁为简1、聚类2、降维无中生有对于无监督学习(unsupervised learning)来说,通常我们会知道(x,y^)(x,\hat{y})(x,y^)中的xxx或者y^\hat{y}y^,其中:化繁为简就是把复杂的输入变成比较简单的输出,比如把一些没有打标签的树的图片变成一颗抽象的树,此时训练数据就只有输入xxx,而没有输出y^\hat{y}y^。无中生有就是随机给函数一个数字,他就会生成不同的图像,此时训练数
2020-11-11 20:40:17
234
原创 半监督学习
介绍监督学习:训练数据中,每一组数据输入xrx^{r}xr都有对应的输出yry^{r}yr相对应。半监督学习:训练数据中,部分数据没有标签,只有输入xrx^{r}xr。通常情况下无标签的数据量远大于有标签的数据量。半监督学习可以分为两种情况:1、传导性学习(Transductive Learning):未标记的数据是测试数据。即把测试数据当作无标签的训练数据使用,适用于实现已经知道测试数据的情况。这种方法使用的仅仅是测试数据的特征,不是标签,因此不会出现直接对测试数据做训练而产生作弊的效果。
2020-11-10 22:37:48
314
原创 为什么要用深度学习
深度越深越好?深度学习适用于很多场景,越深的网络一般来说表现越好。网络的层数越多,参数就越多,这个模型就越复杂,它的bias就越小,而使用大量的数据可以降低模型的variance,所以模型表现就会更好。如下图所示,随着层数1-7,得到的错误率逐渐下降。如果仅是因为大量的数据加上足够多参数的模型就可以表现较好,那为什么要用深度神经网络,可以用神经元数目足够多的网络替代吗?深度和宽度?深度和宽度两种结构的表现是不同的“:右侧表示的是deep network的情况,左侧表示的是shallow ne
2020-11-10 17:20:06
1023
原创 Recipe of deep learning
深度学习的三个步骤:如果要想得到一个更好的神经网络应该怎么做:1、提高模型在训练集上的正确率深度学习并不会像K近邻等方法,一次训练就得到较好的正确率,他可能在训练集上没办法得到较好的正确率,这个时候就需要回头检查前面的步骤里需要修改的部分,如何使得训练集得到较高的正确率。2、提高模型在测试集上的正确率如果已经在训练集上取得好的效果,这时就需要考虑在测试集上的正确率,假如结果不好,这个情况是过拟合,需要回头解决过拟合问题。3、并不是所有不好的情况都是过拟合如图所示,横坐标是模型做梯度下降所更
2020-11-09 20:52:30
181
原创 keras的使用
如何用keras构建网络模型:以手写数字为例,假设输入图片,可以看出输入是28X28的向量。输出是10维的(数字0-9)中间有两个隐层,每个隐层有500个神经元。用keras的做法:第一步网络构造1、定义一个模型(此处简单结构模型(定义模型的方法之一),按顺序一层一层训练,没有环形结构)model = Sequential()2、加第一个隐层(add)model.add(Dense(input_dim = 28*28,units = 500,activation = 'relu'))2、
2020-11-09 16:53:04
197
原创 反向传播
作用反向传播的作用就是计算网络的参数w∗,b∗w^{*} ,b^{*}w∗,b∗反向传播并不是和梯度下降不同的训练方法,他与梯度下降相同,但是在计算梯度向量的时候更加高效。链式法则对整个网络有,其损失函数为:L(θ)=∑n=1Nln(θ)L(\theta ) = \sum_{n=1}^{N}l^{n}(\theta )L(θ)=∑n=1Nln(θ),他是所有训练数据的损失之和。把训练数据里的任意一个样本点输入xnx^{n}xn到神经网络中,它会输出一个yny^{n}yn,把这个输出yny^{n
2020-11-09 15:26:39
243
原创 Deep learning深度学习
深度学习的步骤与机器学习一致:深度学习第一步里定义的函数,就是神经网络。定义把多个逻辑回归前后连接在一起,然后把连接好的里面的一个逻辑回归成为神经元 ,整体称为神经网络。我们可以用不同的方法连接这些neuron,就可以得到不同的structure,neural network里的每一个Logistic Regression都有自己的weight和bias,这些weight和bias集合起来,就是这个network的参数,我们用θ来描述。如何连接,可以自己设计,常见的连接方式:Fully Co
2020-11-06 18:58:20
814
原创 logistic 回归
机器学习的步骤:1、函数的建立/模型的建立以逻辑回归为例2、模型的判定假设N个训练数据每一个都由后验概率产生,即w,b决定了这个后验概率,我们需要找到一组,w,b使得概率最大化的产生这N个训练数据,利用极大似然估计,最好的那组参数就是最可能产生当前N个训练数据分布的w和b。似然函数将每一个点产生的概率相乘。由于L(w,b)是乘积项的形式,为了方便计算,我们将上式做个变换:为了统一格式,将logistic Regression里所有训练数据都打上0,1的标签,即y^\hat{y}y^ =
2020-11-06 16:26:25
237
原创 分类模型
分类模型:概率生成模型概念分类是寻找一个函数,当输入一个对象,输出为该对象所属的类别。输入数值化对于分类问题来说,要把一个对象当作一个函数的输入,则需要对对象进行数值化操作。特征数值化:用以组数字来描述一个对象的属性。分类问题和回归问题(为什么回归问题不适合做分类)二元分类:在训练时让输入为类别1的输出为1,类别2的输出为-1,在测试的时候回归的输出是一个数值,我们可以将接近1的归为类别1,将接近-1的归为类别2.如图所示:当样本比较集中的时候,即图1,绿色线是最好的模型分界线。对于样本不
2020-11-05 14:53:16
4795
原创 机器学习5-梯度下降
目的:找出最优解 方法:梯度下降法需要注意的内容:1、学习率的选择学习率过小会使得在迭代更新权值的过程中,梯度下降过程缓慢。设置过大容易使得训练模型跨过最优值,从而导致过拟合。2、自适应学习率的调节开始时,离目标值很大可以设置较大的学习率,然后逐渐的减少学习率。不同的参数应该设置不同的学习率,以达到最好的效果。(因材施教)自适应梯度调节总结g:梯度;η:学习率梯度越大,离远点越远,跨出去的步伐越大。在有多个参数的时候,上述的结论有可能是不成立的。随机梯度下降随
2020-11-01 18:12:02
408
原创 机器学习4-模型的误差来源以及减少误差的方法
误差来源的两个方面:bias(偏差):度量了某种学习算法的平均估计结果所逼近的学习目标的程度。variance(方差):度量了在面对同样规模的不同训练集时分散的程度。高的bias表示离目标值远,低bias表示离靶心近;高的variance表示多次学习的结果越分散,低的variance表示多次学习的结果越集中。区别variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度。先看没有bias存在的情况
2020-11-01 13:18:26
2983
原创 天池工业蒸汽量预测
天池工业蒸汽量import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns#画图from sklearn.linear_model import LinearRegression,Lasso,Ridge,ElasticNetfrom sklearn.neighbors import KNeighborsRegressorfrom sklearn.ensemble impor
2020-10-30 17:53:27
575
原创 lightGBM
from lightgbm import LGBMRegressorfrom xgboost import XGBRegressorimport numpy as npimport pandas as pdtrain = pd.read_csv('./zhengqi_train.txt',sep = '\t')test = pd.read_csv('./zhengqi_test.txt',sep = '\t')X_train = train.iloc[:,:-1]y_train = tra
2020-10-25 21:29:23
70
原创 logistic回归
过程1、找到一个合适的预测函数,一般表示为h函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程非常关键,需要对数据有一定的了解或分析,知道或者猜测预测函数的“大概形式”,比如是线性函数还是非线性函数。2、构造一个Cost函数(损失函数),该函数表示预测的输出(h)与训练数据类别(y)之间的偏差,可以是二者之间的差(h-y)或者是其他形式。综合考虑所有训练数据的“损失”,将cost求和或者求平均,记为J(w)函数,表示所有训练数据预测值与实际类别的偏差。3、J(w)函数值越小表
2020-10-18 20:04:20
131
原创 手写线性回归
import matplotlib.pyplot as plt%matplotlib inlineimport numpy as npfrom sklearn.linear_model import LinearRegression#一元二次#f(x) = w1*x**2 + w2*x +b#二元一次#f(x1,x2) = w1*x1 + w2*x2 +bX = np.linspace(0,10,50).reshape(-1,1)X = np.concatenate([X**2,X],a
2020-10-13 17:58:48
152
原创 预测销售量
前提#认为天猫销量和年份之间存在一定函数关系导包import numpy as npimport matplotlib.pyplot as plt%matplotlib inline对年份进行处理years = np.arange(2009,2020)yearssales = np.array([0.5,9.36,52,191,352,571,912,1207,1682.69,2135,2684])salesplt.scatter(years,sales,c = 'red',
2020-10-12 18:37:24
879
原创 Adaboost
bagging:套袋法boosting:提升算法bagging(套袋法)在bagging中,通过对训练样本重采样的方法得到不同的训练样本集,在这些新的训练样本集上分别训练学习器,最终合并每一个学习器的结果,作为最终的修恶习结果,bagging方法的具体过程为:在bagging方法中,b个 学习器之间彼此是相互独立的,这样的特点使得Bagging方法更容易并行。Boosting(梯度提升树)与Bagging方法不同,在Boosting算法中,学习器之间是存在先后顺序的,同时 ,每一个样本是有权.
2020-10-10 18:41:37
292
原创 算法
算法使用:创建参说调节cross_val_score:求单一参数最合适的值(KNN)GridSearchCV网络搜索:多参数组合最优的值标准:准确率,精确率,召回率,F1-score数据清洗操作数据库(数据清洗)数据分析,可视化(Excel可视化的表)算法原理梯度提升二分类树...
2020-10-07 18:32:46
58
原创 极限森林
极限森林from sklearn.ensemble import ExtraTreesClassifier,RandomForestClassifierfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.model_selection import cross_val_scorefrom sklearn import datasetsimport numpy as npimport matplotlib.pyplot as pl
2020-10-06 20:14:35
182
原创 决策树
决策树的使用#%%import numpy as npfrom sklearn.tree import DecisionTreeClassifierfrom sklearn import datasetsimport matplotlib.pyplot as plt%matplotlib inlinefrom sklearn import treefrom sklearn.model_selection import train_test_split#%%X,y = datasets.
2020-10-05 22:30:36
83
原创 KNN鸢尾花
KNN分类import matplotlib.pylab as pyb%matplotlib inlinefrom sklearn.neighbors import KNeighborsClassifierfrom sklearn import datasetsX,y = datasets.load_iris(True)#:True的意思是仅仅返回X,Y#4个属性,4维空间,X.shape#150代表样本数量#降维,切片法X= X[:,:2]X.shapepyb.scatte
2020-09-25 21:35:05
203
原创 KNN算法
1、KNN算法预测电影类别import numpy as npfrom sklearn.neighbors import KNeighborsClassifierimport pandas as pd#分类,电影类别#动作#爱情#量化,数量化,数字化movie = pd.read_excel(r'D:\ML\4168_Sklearn_v2\4168_Sklearn_v2\V2-sklearn第一节资料\day01代码\movies.xlsx',sheet_name=1)#sheet n
2020-09-23 19:21:51
152
原创 回归
1、回归算法:线性回归分析2、线性回归实例3、回归性能评估4、分类算法-逻辑回归5、逻辑回归实例6、聚类算法-kmeans7、k-means实例求标准差MSE:拟解决问题:训练数据训练效果很好,误差不大,但是在测试集上有问题。欠拟合原因以及解决办法:原因:学习到的数据的特征不够解决办法:增加数据的特征数量过拟合原因以及解决办法:原因:原始特征过多、存在一些嘈杂特征,模型过于复杂是因为模型尝试去兼顾各个测试数据点。、解决办法:1、进行特征选择,消除关联性大的特征(难以实
2020-09-22 15:23:36
50
原创 决策树
决策树的优缺点:优点:简单的理解和解释,树木可视化需要很少的数据准备,其他技术通常需要数据归一化。缺点:决策树学习者可以创建不能很好地推广数据的过于复杂的树,称为过拟合。改进:剪枝或随机森林集成学习方法:随机森林集成学习通过建立几个模型组合来解决单一预测问题。他的原理是生成多个分类器/模型,各自独立的学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。随机森林:在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。1、..
2020-09-21 15:36:28
79
原创 机器学习
机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测。数据集的构成(文件)特征值+目标值MySQL瓶颈(不适用机器学习的原因):1.性能瓶颈,读取速度慢。2.格式不太符合特征工程特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性。数据的特征抽取:对文本等数据进行特征值化sklearn特征抽取的API:sklearn.feature_extraction字典数据抽取:把字典中一些类别数据,分别进行转换成特征TF-IDF:
2020-09-14 15:15:12
264
原创 隐马尔可夫模型
隐马尔可夫模型(HMM)主要内容隐马尔可夫模型概率计算参数估计模型预测中文分词算法实践HMM定义隐马尔可夫模型(HMM,Hidden Markov Model)可用标注问题,在语音识别,NLP,生物信息,模式识别等领域被实践证明是有效的算法。HMM是关于时序的概率模型,描述由一个隐藏的马尔科夫链生成不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。隐马尔可夫模型随机生成的状态随机序列,称为状态序列:每个状态生成一个观测,由此产生的观测随机序列,称为观测序列。序列的每个位置可看
2020-09-07 18:22:29
100
原创 主题模型实践附录
卷积网络的特点:局部连接共享权值kernel/stride/padding最大池化(Max pooling)卷积网络的一般架构卷积网络:规则化:白化、去均值卷积:维度提升、过完备基非线性映射:稀疏化、边界消除pooling:特征聚集、降维、光滑LeNet网络AlexNet网络VGGNet损失函数:可以自定义正则化防止过拟合:Dropout层的作用Dropout和朴素贝叶斯BP算法,反向传播支持向量网SVN(可以看作一个CNN)...
2020-09-03 11:42:25
58
原创 主题模型
LDA隐Dirichlet分布Latent Dirichient Allocation先验分布–共轭分布Beta分布–Dirichlet分布、三层贝叶斯网络模型LDAGibbs采样和更新规则LDA的应用方向信息提取和搜索语义分析文档分类/聚类,文章摘要,社区挖掘基于内容的图像聚类,目标识别以及其他计算机视觉的应用生物信息数据的应用...
2020-08-28 09:48:47
55
原创 贝叶斯网络实践
主要内容:朴素贝叶斯的推导和应用使用马尔可夫模型计算临近点概率文本数据的处理流程使用TF-IDF得到文本特征Word2vec的使用朴素贝叶斯进行鸢尾花分类#!/usr/bin/python# -*- coding:utf-8 -*-import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport matplotlib as mplfrom sklearn.preprocessing import
2020-08-26 22:13:30
354
原创 贝叶斯网络
贝叶斯网络主要内容:1、复习本次用到的知识相对熵、互信息(信息增益)2、朴素贝叶斯3、贝叶斯网络的表达条件概率表参数个数分析马尔科夫模型4、D-separation条件独立的三种模型Markov Blanket5、网络的构建流程混合(离散+连续)网络:线性高斯模型6、Chow-Liu算法:最大权生成树MSWT复习:相对熵相对熵,又称为互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度等。设p(x),q(x)是X中取值的两个概率分布,则p对q的相对熵
2020-08-26 12:01:32
278
原创 EM实践
案例:混合高斯分布EM算法男女均属于高斯分布,绿色男性,红色女性看情况选择不同方差,如:防止过拟合、提高准确率等鸢尾花聚类进行分类:1.构造混合高斯分布进行分类# !/usr/bin/python# -*- coding:utf-8 -*-import numpy as npfrom scipy.stats import multivariate_normalfrom sklearn.mixture import GaussianMixturefrom mpl_tool
2020-08-24 15:58:47
209
python第二天笔记.docx
2020-06-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人