标签: bayesian

人工智能,文本分类器

我是AI的新手.我正在通过机器学习来处理文本分类的应用程序.应用程序需要对HTML文档的不同部分进行分类.例如,大多数网页都有头部,菜单,侧边栏,页脚,主要内容等.我想使用文本分类器对HTML文档的这些部分进行分类,并在页面上标识不同类型的表单.

  1. 如果任何人都可以提供关于这个主题的详细指导,将会非常有帮助.
  2. 类似应用的例子也会非常有帮助.

我正在寻找有关代码和实现的更多技术建议.

我可以为html标签属性分配标签,例如class或id

<div class="menu-1">
<div id="entry">
<div id="content">
<div id="footer">
<div id="comment-12">
<div id="comment-title">
Run Code Online (Sandbox Code Playgroud)

喜欢第一项:

TrainClassifier(标签:"菜单",值:"menu-1",属性:"class",position-in-string:"21%",tag:"div");

输入:

  1. "menu-1"(属性值)
  2. 项目清单
  3. "class"(属性名称)
  4. "21"(字符串中的标记位置)
  5. "div"(标签名称)

产量

  1. "菜单"(分类为标签)

什么神经网络库,可以采取上述输入,并将它们分类到标签(即菜单).

所有用户都无法创建正则表达式或xpath,他们需要更简单的方法,因此重要的是,要使软件智能化,用户可以使用webbrowser控件突出显示他/她需要的部分html文档,并训练软件直到它可以独自工作.

但我不知道如何使用AI制作软件列车,

我正在寻找的AI,就像它应该能够接受各种输入,并在此基础上进行分类,正如我已经说过AI的新内容,对它不太了解.

如果我能回答我提出的问题,比如我应该使用哪个库,以及如何实现,建议使用Xpath或Regex或其他方法的答案,那么对我来说会有所帮助.建议,但你需要的.

c# artificial-intelligence bayesian winforms neural-network

7
推荐指数
1
解决办法
2171
查看次数

实现高斯朴素贝叶斯

我试图用C#中的高斯朴素贝叶斯来实现点的分类.我已经实现了第一部分(http://www.statsoft.com/textbook/naive-bayes-classifier/)概率部分,但我不明白如何实现高斯朴素贝叶斯算法的正态模型.这是我的代码:

class NaiveBayesClassifier
    {
        private List<Point> listTrainPoints = new List<Point>();
        private int totalPoints = 0;

        public NaiveBayesClassifier(List<Point> listTrainPoints) 
        {
            this.listTrainPoints = listTrainPoints;
            this.totalPoints = this.listTrainPoints.Count;
        }

        private List<Point> vecinityPoints(Point p, double maxDist)
        {
            List<Point> listVecinityPoints = new List<Point>();
            for (int i = 0; i < listTrainPoints.Count; i++)
            {
                if (p.distance(listTrainPoints[i]) <= maxDist)
                {
                    listVecinityPoints.Add(listTrainPoints[i]);
                }
            }
            return listVecinityPoints;
        }

        public double priorProbabilityFor(double currentType)
        {
            double countCurrentType = 0;
            for (int i = 0; i < this.listTrainPoints.Count; i++)
            { …
Run Code Online (Sandbox Code Playgroud)

c# algorithm machine-learning bayesian

7
推荐指数
1
解决办法
4346
查看次数

使用Google Go的Goroutines创建贝叶斯网络

我有一个大的哲学论证数据集,每个参数都连接到其他参数作为给定语句的证明或反证.根声明可以有许多证明和反证,每个都可能有证明和反证.语句也可用于多个图形,并且可以在"给定上下文"或假设下分析图形.

我需要构建一个相关参数的贝叶斯网络,以便每个节点公平准确地传播影响它的连接参数; 我需要能够同时计算连接节点链的概率,每个节点都需要数据存储区查找,必须阻止才能获得结果; 该进程主要是I/O绑定,我的数据存储连接可以在java,go和python {google appengine}中异步运行.每次查找完成后,它会将效果传播到所有其他连接节点,直到概率增量低于不相关阈值{当前为0.1%}.进程的每个节点必须计算连接链,然后总结所有查询中的所有结果以调整有效性结果,结果向外链接到任何连接的参数.

为了避免无限重复,我想在goroutines中使用类似A*的过程将更新传播到参数映射,使用基于复合影响的启发式方法,一旦影响概率低于0.1%,就会忽略节点.我曾尝试使用SQL触发器设置计算,但它过于复杂和混乱.然后我转移到谷歌appengine利用异步nosql,它更好,但仍然太慢.我需要足够快地运行更新以获得快速的UI,因此当用户创建或投票赞成或反对证明或反证时,他们可以立即看到结果反映在UI中.

我认为Go是支持我需要的并发性的首选语言,但我愿意接受建议.客户端是一个单片的javascript应用程序,它只使用XHR和websockets实时推送和拉出参数映射{及其更新}.我有一个可以在10到15秒内计算大型链的java原型,但是对性能的监控表明我的大部分运行时都浪费在ConcurrentHashMap的同步和开销上.

如果还有其他高度并发的语言值得尝试,请告诉我.我知道java,python,go,ruby和scala,但如果它符合我的需要,它会学习任何语言.

同样,如果有大型贝叶斯网络的开源实现,请留下建议.

google-app-engine a-star bayesian go bayesian-networks

7
推荐指数
1
解决办法
672
查看次数

比较贝叶斯线性回归VS线性回归

最近我学习了贝叶斯线性回归模型,但我感到困惑的是在哪种情况下我们应该使用线性回归,何时使用贝叶斯版本.这两个表现怎么样?并且贝叶斯逻辑回归和逻辑回归是一样的吗?我读了一篇关于使用贝叶斯概率回归来预测广告点击率的论文,我只是想知道为什么要使用贝叶斯版本?

machine-learning bayesian

7
推荐指数
1
解决办法
1万
查看次数

使用PyMC 3进行Probit回归

我在这里发布了一个python笔记本:http://nbviewer.ipython.org/gist/awellis/9067358

我正在尝试使用PyMC 3创建一个probit回归模型,使用生成的数据来恢复已知参数(参见笔记本).拦截的估计几乎没有,但是斜率估计是偏离标记的.

我的模型看起来像这样:

with pm.Model() as model:

    # priors
    alpha = pm.Normal('alpha', mu=0, tau=0.001)
    beta = pm.Normal('beta', mu=0, tau=0.001)

    # linear predictor
    theta_p = (alpha + beta * x)

    # logic transform (just for comparison - this seems to work ok)
#     def invlogit(x):
#         import theano.tensor as t
#         return t.exp(x) / (1 + t.exp(x))
#     theta = invlogit(theta_p)


    # Probit transform: this doesn't work
    def phi(x):
        import theano.tensor as t
        return 0.5 * (1 …
Run Code Online (Sandbox Code Playgroud)

python bayesian pymc

7
推荐指数
1
解决办法
1874
查看次数

R中的MCMCglmm多项式模型

我正在尝试使用MCMCglmmR中的包创建模型

数据结构如下,其中二元,焦点,其他都是随机效应,预测1-2是预测变量,响应1-5是捕获不同子类型的观察行为#的结果变量:

 dyad focal other r    present  village  resp1 resp2 resp3 resp4 resp5 
 1    10101 14302 0.5  3        1        0     0     4     0     5
 2    10405 11301 0.0  5        0        0     0     1     0     1
 …
Run Code Online (Sandbox Code Playgroud)

所以只有一个结果(教学)的模型如下:

 prior_overdisp_i <- list(R=list(V=diag(2),nu=0.08,fix=2), 
 G=list(G1=list(V=1,nu=0.08), G2=list(V=1,nu=0.08), G3=list(V=1,nu=0.08), G4=list(V=1,nu=0.08)))

 m1 <- MCMCglmm(teaching ~ trait-1 + at.level(trait,1):r + at.level(trait,1):present, 
 random= ~idh(at.level(trait,1)):focal + idh(at.level(trait,1)):other + 
 idh(at.level(trait,1)):X + idh(at.level(trait,1)):village, 
 rcov=~idh(trait):units, family = "zipoisson", prior=prior_overdisp_i, 
 data = data, nitt = nitt.1, thin = 50, burnin = 15000, …
Run Code Online (Sandbox Code Playgroud)

r bayesian mcmc glm

7
推荐指数
1
解决办法
3499
查看次数

PYMC3贝叶斯预测锥

我仍在学习PYMC3,但是我在文档中找不到以下问题的任何内容。考虑这个问题的贝叶斯结构时间序列(BSTS)模型,没有季节性。可以在PYMC3中对其进行建模,如下所示:

import pymc3, numpy, matplotlib.pyplot
# generate some test data
t = numpy.linspace(0,2*numpy.pi,100)
y_full = numpy.cos(5*t)
y_train = y_full[:90]
y_test = y_full[90:]

# specify the model
with pymc3.Model() as model:
  grw = pymc3.GaussianRandomWalk('grw',mu=0,sd=1,shape=y_train.size)
  y = pymc3.Normal('y',mu=grw,sd=1,observed=y_train)
  trace = pymc3.sample(1000)
  y_mean_pred = pymc3.sample_ppc(trace,samples=1000,model=model)['y'].mean(axis=0)

  fig = matplotlib.pyplot.figure(dpi=100)
  ax = fig.add_subplot(111)
  ax.plot(t,y_full,c='b')
  ax.plot(t[:90],y_mean_pred,c='r')
  matplotlib.pyplot.show()
Run Code Online (Sandbox Code Playgroud)

现在,我想预测接下来10个时间步的行为,即y_test。我还想在此区域包括产生贝叶斯锥的可靠区域,例如,请参见此处。不幸的是,在上述连接中产生锥体的机构有点模糊。在更传统的AR模型中,人们可以学习平均回归系数并手动扩展平均曲线。但是,在此BSTS模型中,没有明显的方法来执行此操作。或者,如果存在回归变量,则可以使用theano.shared并使用更细/扩展的网格对其进行更新,以使用sample_ppc进行插补和推断,但这在此设置中并不是真正的选择。也许sample_ppc在这里是个红鲱鱼,但尚不清楚如何进行其他操作。任何帮助都将受到欢迎。

python bayesian pymc pymc3

7
推荐指数
1
解决办法
676
查看次数

如何在Scikit-learn中使用`Dirichlet Process Gaussian Mixture Model`?(n_components?)

我对"Dirichlet过程作为聚类数量的先验分布的无限混合模型"的理解是,当聚合到一定数量的聚类时,聚类的数量由数据决定.

这个R Implementation https://github.com/jacobian1980/ecostates以这种方式决定集群的数量.虽然,R implementation使用Gibbs采样器,我不确定是否会影响这一点.

令我困惑的是n_components参数.n_components: int, default 1 : Number of mixture components. 如果组件的数量由数据和Dirichlet过程确定,那么这个参数是什么?


最终,我想得到:

(1)每个样本的聚类分配;

(2)每个聚类的概率向量; 和

(3)每个样本的似然/对数似然.

看起来(1)是predict方法,(3)是score方法.但是,(1)的输出完全取决于n_components超参数.

我的道歉,如果这是一个幼稚的问题,我很新的贝叶斯编程,发现有Dirichlet ProcessScikit-learn,我想试试.


这是文档:http: //scikit-learn.org/stable/modules/generated/sklearn.mixture.DPGMM.html#sklearn.mixture.DPGMM

以下是一个使用示例:http: //scikit-learn.org/stable/auto_examples/mixture/plot_gmm.html

这是我天真的用法:

from sklearn.mixture import DPGMM
X = pd.read_table("Data/processed/data.tsv", sep="\t", index_col=0)
Mod_dpgmm = DPGMM(n_components=3)
Mod_dpgmm.fit(X)
Run Code Online (Sandbox Code Playgroud)

python statistics machine-learning bayesian scikit-learn

6
推荐指数
1
解决办法
3589
查看次数

PYMC3季节变量

我是比较新的PYMC3,我试图实现贝叶斯结构时间序列(BSTS)没有回归系数,比如模型拟合这里在R.模型如下:

模型

我可以使用GaussianRandomWalk来实现局部线性趋势,如下所示:

delta = pymc3.GaussianRandomWalk('delta',mu=0,sd=1,shape=99)
mu = pymc3.GaussianRandomWalk('mu',mu=delta,sd=1,shape=100)
Run Code Online (Sandbox Code Playgroud)

但是,我对如何在PYMC3中编码季节性变量(tau)感到困惑。我是否需要参加自定义的随机游走课程,还是有其他技巧?

python bayesian pymc pymc3

6
推荐指数
1
解决办法
578
查看次数

贝叶斯优化在 CatBoost 中的应用

这是我在 CatBoost 中应用 BayesSearch 的尝试:

from catboost import CatBoostClassifier
from skopt import BayesSearchCV
from sklearn.model_selection import StratifiedKFold


# Classifier
bayes_cv_tuner = BayesSearchCV(
estimator = CatBoostClassifier(
silent=True
),
search_spaces = {
'depth':(2,16),
'l2_leaf_reg':(1, 500),
'bagging_temperature':(1e-9, 1000, 'log-uniform'),
'border_count':(1,255),
'rsm':(0.01, 1.0, 'uniform'),
'random_strength':(1e-9, 10, 'log-uniform'),
'scale_pos_weight':(0.01, 1.0, 'uniform'),
},
scoring = 'roc_auc',
cv = StratifiedKFold(
n_splits=2,
shuffle=True,
random_state=72
),
n_jobs = 1,
n_iter = 100,
verbose = 1,
refit = True,
random_state = 72
)
Run Code Online (Sandbox Code Playgroud)

跟踪结果:

def status_print(optim_result):
"""Status callback durring bayesian …
Run Code Online (Sandbox Code Playgroud)

python bayesian python-3.x pandas catboost

6
推荐指数
1
解决办法
2904
查看次数