
机器学习
zhuzuwei
这个作者很懒,什么都没留下…
展开
-
机器学习笔记5:机器学习策略之方差和偏差
本文主要参考吴恩达的机器学习课程。 一、机器学习中的各种策略: 开发 一个完整的机器学习项目要经历:使用训练集训练模型--->开发集调整模型参数--->测试集测试模型效果--->上线实际使用。 1. 如果模型在训练集上表现不好,可采取的策略有: 选择更大的神经网络(即更复杂的模型),使用AdamOptimizer等替代随机梯度下降法来...原创 2018-07-13 15:17:50 · 354 阅读 · 0 评论 -
机器学习笔记2:AdaBoost算法原理和推导详解
1. 相关概念:(1)集成算法(ensemble)或元算法(meta-algorithm): 是对其他算法进行组合的一种方式;可以是不同的算法集成,也 可以是同一算法在不同设置下的集成,还可以是数据集不同部分分配给不同分类器之后的集成。(2) 弱分类器:”弱“意味着分类器的性能比随机猜测要好,但是也不会好太多。(3) 错误率 ε: ε = 未被正确分类的样本数目 / 所有样本数目2....原创 2018-06-01 20:13:23 · 10854 阅读 · 1 评论 -
机器学习笔记1:过拟合和正则化的理解
1. 过拟合 :过多地学习数据,千方百计想拟合训练数据。(1)回归任务中的过拟合:(2)分类任务中的过拟合2. 解决过拟合的方法:可通过减少特征数量、增加数据集、实施正则化、模型训练早停等。3. 回归中的正则化:以L2正则化为例 右下图中的蓝线明显过拟合,当在损失函数中添加1000*(θ3**2)+ 1000*(θ4**2)时,由于要最小化损失函数,这会使θ3和 θ4趋...原创 2018-05-31 20:05:38 · 508 阅读 · 0 评论 -
机器学习笔记4:隐马尔科夫模型HMM(二)使用Viterbi算法推断出最有可能的隐变量的状态
本文转自 http://www.cnblogs.com/pinard/p/6991852.html1. HMM最可能隐藏状态序列求解概述2. Viterbi算法概述3. Viterbi算法流程总结4. 求解实例:5. 自己的理解:补充...转载 2018-06-03 20:22:59 · 589 阅读 · 0 评论 -
第一次实现单层神经网络
看了吴恩达的课程,按他的公式做了一下编程练习。题目是训练209*64*64*3的209张图片,再预测50*64*64*3的50张图片。代码如下:import numpy as npimport h5py #加载数据集def load_dataset(): train_dataset = h5py.File('datasets/train_catvnonca原创 2017-09-12 22:02:19 · 6275 阅读 · 6 评论 -
机器学习笔记3:隐马尔科夫模型HMM(一)简介及使用前向算法求观测序列的概率
1. 模型简介 隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,主要用于时序数据建模,它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。(1)状态变量 {y1,y2, ... ,yn},其中yi 属于 Y,表示第i个时刻的系统变量。 状态变量通常是隐藏的,不可被观测的,所以也称为隐变量。 设每个时刻可能有N种状态,取值范围是...原创 2018-06-02 17:19:03 · 5498 阅读 · 0 评论 -
Kaggle入门赛BagofWordsMeetsBagsofPopcorn(一)数据预处理
1.re.sub(pattern,repl,string,count=0)letters_only= re.sub("[^a-zA-Z]", " ", review_text)将文本中非字母的字符替换为空格pattern,表示正则中的模式字符串repl,就是replacement,被替换,的字符串的意思。repl可以是字符串,也可以是函数string,即表示要被处理,要被替换的那...原创 2018-01-08 13:24:22 · 1045 阅读 · 0 评论 -
Kaggle入门赛BagofWordsMeetsBagsofPopcorn(二)gensim word2vec
1. makeFeatureVec是建立特征向量2. getAvgFeatureVecs给定一组评论(每一个单词列表),计算每个的平均特征向量,并返回一个二维numpy数组3. 训练一个100个estimator的随机森林模型,用于预测测试数据 from gensim.models import Word2Vecfrom sklearn.cluster import KMean...原创 2018-01-08 17:49:42 · 1832 阅读 · 0 评论 -
文本分析(一)nltk 和 gensim word2vec
1. 加载punkt tokenizer用于分句 tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')raw_sentences = tokenizer.tokenize(review.strip())2. 训练word2vec模型from gensim.models import word2vecmod...原创 2018-01-08 17:41:09 · 5266 阅读 · 0 评论 -
sklearn文本特征提取CountVectorizer 和 TfidfVectorizer
fromsklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer1. CountVectorizervectorizer=CountVectorizer(analyzer = "word", \ tokenizer =None, \原创 2018-01-08 13:05:35 · 5676 阅读 · 0 评论 -
tensorflow和Keras 实现kaggle手写识别Digit Recognizer(三)卷积神经网络
继续Kaggle手写识别的改进使用Keras能简化代码和提升效率,Keras的序贯模型参考我的另一篇文章 Keras学习笔记四:序贯模型(Sequential)。一、 使用的模型是三个卷积层+2个全连接层二、使用np_utils.to_categorical()函数将标签进行one-hot编码。三、 在训练模型即运行fit()函数之前必须要先compile编译模型,否则会出错,原作转载 2018-01-07 08:41:20 · 972 阅读 · 0 评论 -
tensorflow 实现kaggle手写识别Digit Recognizer(二)卷积神经网络
1. 先将42000条训练数据分为训练集(40000条)和开发集(2000条),使用训练集训练出一个卷积神经网络模型,使用开发集测试模型性能,准确率达到98%2. 将所有的训练数据作为训练集来训练该卷积神经网络模型,再预测28000条待测试的数据,上传后准确率达到0.979853.训练过程中,使用tf.train.Saver类保存模型参数,再在预测时加载模型import原创 2018-01-06 16:36:04 · 1926 阅读 · 0 评论 -
tensorflow实现kaggle手写识别Digit Recognizer(一)
先尝试建一个单层的神经网络,最终上传kaggle的评估准确率是91.8%.效果不佳,因为单词神经网络丢失了手写图片的二维结构。后续将尝试卷积神经网络以提升预测准确率。import pandas as pdimport numpy as npimport tensorflow as tf#1 加载数据集,把对输入和结果分开train = pd.read_csv('D原创 2018-01-05 17:55:58 · 1455 阅读 · 0 评论 -
机器学习之PCA降维理论推导
1. PCA降维后的超平面大概具有这样的性质(1)最近重构性:样本点到这个超平面的距离的足够近(2)最大可分性:样本点在这个超平面的投影尽可能分开2. 依据最近重构性推导: 假定数据样本进行了中心化,再假设投影变换后得到的新坐标系为W ={W1,W2,...,Wd},其中Wi是标准正交基向量, ||Wi||2 = 1, Wi.T*Wj = 0(i != j)。若丢弃新坐原创 2017-12-14 18:36:51 · 1509 阅读 · 1 评论 -
机器学习SVM之SMO方法α,ω和b迭代公式的推导过程
在机器学习实战中,看到了Platt的SMO算法实现,故去下载了原论文看看,忍不住对α,ω和b的迭代公式进行了推导,如有错误,欢迎交流指正。1. SVM算法可以改写为:s.t (1) 2. 此处SVM算法的推导过程省略,直接列出以下几个简单结论:原创 2017-08-30 14:01:18 · 2343 阅读 · 0 评论