一、word2vec调参
 
./word2vec -train resultbig.txt -output vectors.bin -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1

  

一般来说,比较喜欢用cbow ,因为模型中 cbow有向量相加的运算。##保留意见

 
-cbow 0表示不使用cbow模型,默认为Skip-Gram模型
-size 表示词向量维数:经验是不超过1000,超过1000基本都没有效果,我感觉是可以取  sqrt(dict_size)/2 的样子,不过最好多试几个
-window 上下文窗口,是训练词向量的时候,取上下文的大小,感觉这个一般都是5比较好
 
-sample 表示采样参数,是一个经验忽视掉频率过高的词的参数,一般也用默认的就行。
-sampe指的是采样的阈值,如果一个词语在训练样本中出现的频率越大,那么就越会被采样。
 
-negative 表示负采样参数,每有一个正样本,选择几个负样本的参数,一般也是用默认的。
-binary为1指的是结果二进制存储,为0以文本形式进行存储。
上面这两个参数试过很多个,感觉就是默认的比较好用。

-hs 做不做层次的softmax,是1的时候效果比较好,但是训练会慢一点
-min-count 控制词典大小的参数,如果只想要高频词的话就设置高一点。

 

    架构:skip-gram(慢、对罕见字有利)vs CBOW(快)

·         训练算法:分层softmax(对罕见字有利)vs 负采样(对常见词和低纬向量有利)

·         欠采样频繁词:可以提高结果的准确性和速度(适用范围1e-3到1e-5)

·         文本(window)大小:skip-gram通常在10附近,CBOW通常在5附近

二、LDA调参

1.文章

http://jmlr.org/proceedings/papers/v32/tang14.pdf

2.思路

1)lda模型(latent dirichlet distribution)调优,比如曾经有研究表明,直接把短文档(比如一个微博,一个查询)作为输入,不如先做预处理把这些短文章聚合成一些长文章(比如把同一作者的微博合一块)。

2)当我们选择的主题数目k和真实主题数目k’ 一致,或者主题-词分布区分度够高(欧式距离衡量下)的情况下,假如我们还满足文档长度的限制,log d 《= n 的, 那么, 随着n 和 d 增长,后验分布和真实分布之间的误差正比于 logn / n +logd / d。

3)当我们选择的主题数目k 大于真实主题数目k‘时,如果我们仍然满足 d》= log n, 那么误差正比于 (log n / n + logd / d) ^ (1/(2k –1))

4)

    1. 文档长度不能太短,至少是文档数目的log,所以对于太短的文档,我们必须把他们聚合

    2. 为了满足log d 《= n, 还有一个方法是降低d,但很可惜,最终误差大小正比于d,所以文档数量最好也多一点。

    3. 当我们选择的topic 数目k 大大超出于真实topic 数目 k‘ 时,可以从(5)的结果看到,也会减慢收敛速度,所以应该从比较小的topic数目开始,慢慢增加。

    4. 最好当然是我们能知道真正的主题数目k,这样可以避开上面的试探过程,但现实很难,另外一个可能的条件是topic之间差异大,比如每个文档可能的topic少,或者每个topic有一些特殊的词,比如一个topic是自然语言处理,另一个topic是图像处理,两个各有自己独特的词,如像素,语法树等等,这样我们就可以不用太担心试探过程。

    5. 当上面两种情况发生时,可以考虑设置小一点的alpha 和beta, 以减少迭代。

 

word2vec参数调整 及lda调参的更多相关文章

  1. xgboost的sklearn接口和原生接口参数详细说明及调参指点

    from xgboost import XGBClassifier XGBClassifier(max_depth=3,learning_rate=0.1,n_estimators=100,silen ...

  2. lightgbm的sklearn接口和原生接口参数详细说明及调参指点

    class lightgbm.LGBMClassifier(boosting_type='gbdt', num_leaves=31, max_depth=-1, learning_rate=0.1, ...

  3. DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化

    DeepMind提出新型超参数最优化方法:性能超越手动调参和贝叶斯优化 2017年11月29日 06:40:37 机器之心V 阅读数 2183   版权声明:本文为博主原创文章,遵循CC 4.0 BY ...

  4. scikit-learn随机森林调参小结

    在Bagging与随机森林算法原理小结中,我们对随机森林(Random Forest, 以下简称RF)的原理做了总结.本文就从实践的角度对RF做一个总结.重点讲述scikit-learn中RF的调参注 ...

  5. rf调参小结

    转自http://www.cnblogs.com/pinard/p/6160412.html 1. scikit-learn随机森林类库概述 在scikit-learn中,RF的分类类是RandomF ...

  6. gbdt调参的小结

    关键部分转自http://www.cnblogs.com/pinard/p/6143927.html 第一次知道网格搜索这个方法,不知道在工业中是不是用这种方式 1.首先从步长和迭代次数入手,选择一个 ...

  7. 100天搞定机器学习|Day56 随机森林工作原理及调参实战(信用卡欺诈预测)

    本文是对100天搞定机器学习|Day33-34 随机森林的补充 前文对随机森林的概念.工作原理.使用方法做了简单介绍,并提供了分类和回归的实例. 本期我们重点讲一下: 1.集成学习.Bagging和随 ...

  8. XGBoost和LightGBM的参数以及调参

    一.XGBoost参数解释 XGBoost的参数一共分为三类: 通用参数:宏观函数控制. Booster参数:控制每一步的booster(tree/regression).booster参数一般可以调 ...

  9. XGBoost 重要参数(调参使用)

    XGBoost 重要参数(调参使用) 数据比赛Kaggle,天池中最常见的就是XGBoost和LightGBM. 模型是在数据比赛中尤为重要的,但是实际上,在比赛的过程中,大部分朋友在模型上花的时间却 ...

随机推荐

  1. MySQL 临时表

    MySQL 临时表在我们需要保存一些临时数据时是非常有用的.临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间. 临时表在MySQL 3.23版本中添加,如果你的MySQL版本 ...

  2. Python学习笔记7-高级迭代器

    将任何字符串作为python表达式求值: eval()方法: eval(source[, globals[, locals]]) -> value Evaluate the source in ...

  3. 2-部署phpmyadmin

    软件下载地址:https://files.phpmyadmin.net/phpMyAdmin/4.5.5.1/phpMyAdmin-4.5.5.1-all-languages.zip 解压软件 [ro ...

  4. Bootsrap基本应用

    Bootsrap 用法: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  5. Key words

    Key words ACL - Access Control List IDS - Intrusion Dection Systems ASLR - Address-Space Layout Rand ...

  6. jpa+springdata

    学习爱酷学习网尚硅谷springdata笔记: 1.在 Spring 配置文件 <?xml version="1.0" encoding="UTF-8"? ...

  7. mac下搭建redis环境

    一.redis简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...

  8. C#进阶系列——WebApi 跨域问题解决方案:CORS

    前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨域问题一些细节. WebApi系列文章 C#进阶系列— ...

  9. Binding笔记

    Binding基础  绑定某个对象的属性值到控制上,写法如下: public class Order : INotifyPropertyChanged//只要实现此接口 { public event ...

  10. selector 使用说明

    android:state_pressed=["true" | "false"]//是否触摸 android:state_focused=["true ...