标签: machine-learning

感知器学习算法不收敛到0

这是我在ANSI C中的感知器实现:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float randomFloat()
{
    srand(time(NULL));
    float r = (float)rand() / (float)RAND_MAX;
    return r;
}

int calculateOutput(float weights[], float x, float y)
{
    float sum = x * weights[0] + y * weights[1];
    return (sum >= 0) ? 1 : -1;
}

int main(int argc, char *argv[])
{
    // X, Y coordinates of the training set.
    float x[208], y[208];

    // Training set outputs.
    int outputs[208];

    int i = 0; // iterator

    FILE *fp;

    if …
Run Code Online (Sandbox Code Playgroud)

c algorithm machine-learning perceptron neural-network

62
推荐指数
2
解决办法
2万
查看次数

在OCaml或Haskell中进行机器学习?

我希望在一个新项目中使用Haskell或OCaml,因为R太慢了.我需要能够使用支持vectory机器,理想情况下将每个执行分开并行运行.我想使用一种函数式语言,我觉得这两者在性能和优雅方面都是最好的(我喜欢Clojure,但它在短期测试中并不那么快).我倾向于OCaml,因为似乎有更多支持与其他语言的集成,所以从长远来看它可能更适合(例如OCaml-R).

有没有人知道在Haskell或OCaml中进行这种分析或代码示例的好教程?

ocaml haskell machine-learning

62
推荐指数
8
解决办法
3万
查看次数

开源神经网络库

我正在寻找一个开源神经网络库.到目前为止,我已经看过FANN,WEKA和OpenNN.我应该看看其他人吗?当然,标准是文档,示例和易用性.

artificial-intelligence machine-learning neural-network

62
推荐指数
2
解决办法
5万
查看次数

scikit .predict()默认阈值

我正在研究不平衡类(5%1)的分类问题.我想预测班级,而不是概率.

在二进制分类问题中,scikit 默认classifier.predict()使用0.5?如果没有,那么默认方法是什么?如果是,我该如何更改?

在scikit中,一些分类器可以class_weight='auto'选择,但并非所有分类器都可以.有class_weight='auto',会.predict()用实际人口比例作为门槛吗?

在像MultinomialNB这样的分类器中不支持的方法是class_weight什么?除了使用predict_proba()然后自己计算类.

python classification machine-learning scikit-learn

62
推荐指数
5
解决办法
5万
查看次数

了解scikit CountVectorizer中的min_df和max_df

我有五个文本文件,我输入到CountVectorizer.将min_df和max_df指定给CountVectorizer实例时,min/max文档频率的确切含义是什么?它是特定文本文件中单词的频率,还是整个语料库中单词的频率(5个txt文件)?

当min_df和max_df以整数或浮点数形式提供时,它有何不同?

该文档似乎没有提供详尽的解释,也没有提供示例来演示min_df和/或max_df的使用.有人可以提供演示min_df或max_df的解释或示例.

python nlp machine-learning scikit-learn

62
推荐指数
4
解决办法
4万
查看次数

TensorFlow - L2丢失正则化,如何应用于所有权重,而不仅仅是最后一个?

我正在玩一个ANN,这是Udacity DeepLearning课程的一部分.

我有一个任务,涉及使用L2丢失将一个隐藏的ReLU层引入网络.我想知道如何正确地引入它,以便所有权重都受到惩罚,而不仅仅是输出层的权重.

没有概括的网络代码位于帖子的底部(实际运行培训的代码超出了问题的范围).

引入L2的明显方法是用这样的方法替换损失计算(如果beta为0.01):

loss = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits(out_layer, tf_train_labels) + 0.01*tf.nn.l2_loss(out_weights))
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,它会考虑输出层权重的值.我不确定,我们如何正确地惩罚进入隐藏的ReLU层的权重.是否需要它或引入输出层的惩罚将以某种方式保持隐藏的权重也检查?

#some importing
from __future__ import print_function
import numpy as np
import tensorflow as tf
from six.moves import cPickle as pickle
from six.moves import range

#loading data
pickle_file = '/home/maxkhk/Documents/Udacity/DeepLearningCourse/SourceCode/tensorflow/examples/udacity/notMNIST.pickle'

with open(pickle_file, 'rb') as f:
  save = pickle.load(f)
  train_dataset = save['train_dataset']
  train_labels = save['train_labels']
  valid_dataset = save['valid_dataset']
  valid_labels = save['valid_labels']
  test_dataset = save['test_dataset']
  test_labels = save['test_labels']
  del save  # hint to help gc free up memory
  print('Training …
Run Code Online (Sandbox Code Playgroud)

machine-learning neural-network regularized deep-learning tensorflow

62
推荐指数
3
解决办法
6万
查看次数

用强化学习训练神经网络

我知道前馈神经网络的基础知识,以及如何使用反向传播算法对它们进行训练,但我正在寻找一种算法,而不是我可以用来通过强化学习在线训练ANN.

例如,推车杆摆动问题是我想用ANN解决的问题.在那种情况下,我不知道应该怎样做才能控制钟摆,我只知道我与理想位置有多接近.我需要根据奖励和惩罚来学习ANN.因此,监督学习不是一种选择.

另一种情况是蛇游戏,其中反馈被延迟,并且仅限于目标和反目标,而不是奖励.

我可以为第一种情况考虑一些算法,比如爬山或遗传算法,但我猜它们都会很慢.它们也可能适用于第二种情况,但速度极慢,不利于在线学习.

我的问题很简单:是否有一种简单的算法来训练具有强化学习的人工神经网络?我主要对实时奖励情况感兴趣,但如果基于目标的情境的算法可用,甚至更好.

language-agnostic algorithm machine-learning reinforcement-learning neural-network

61
推荐指数
2
解决办法
3万
查看次数

使用sklearn在PCA中恢复explain_variance_ratio_的功能名称

我正在尝试从使用scikit-learn完成的PCA中恢复,这些功能被选为相关的.

IRIS数据集的典型示例.

import pandas as pd
import pylab as pl
from sklearn import datasets
from sklearn.decomposition import PCA

# load dataset
iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)

# normalize data
df_norm = (df - df.mean()) / df.std()

# PCA
pca = PCA(n_components=2)
pca.fit_transform(df_norm.values)
print pca.explained_variance_ratio_
Run Code Online (Sandbox Code Playgroud)

这回来了

In [42]: pca.explained_variance_ratio_
Out[42]: array([ 0.72770452,  0.23030523])
Run Code Online (Sandbox Code Playgroud)

如何恢复哪两个特征允许数据集中这两个解释的方差? 不同地说,如何在iris.feature_names中获取此功能的索引?

In [47]: print iris.feature_names
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

python machine-learning pca scikit-learn

61
推荐指数
5
解决办法
4万
查看次数

是否有可能在OpenAI中创建一个新的健身房环境?

我有一个任务,要制作一个AI代理,学习使用ML玩视频游戏.我想在OpenAI中创建一个新环境,因为我不想在现有环境中工作.如何创建新环境.另外,有没有其他方法可以让我开始让AI Agent在没有OpenAI帮助的情况下玩特定的视频游戏?我是这方面的初学者,所以任何一种帮助/起跑方向都将受到赞赏.

artificial-intelligence machine-learning openai-gym

59
推荐指数
2
解决办法
4万
查看次数

python脚本中的错误"预期的2D数组,改为获得1D数组:"?

我正在按照本教程进行ML预测:

链接教程

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style

style.use("ggplot")
from sklearn import svm

x = [1, 5, 1.5, 8, 1, 9]
y = [2, 8, 1.8, 8, 0.6, 11]

plt.scatter(x,y)
plt.show()

X = np.array([[1,2],
             [5,8],
             [1.5,1.8],
             [8,8],
             [1,0.6],
             [9,11]])

y = [0,1,0,1,0,1]
X.reshape(1, -1)

clf = svm.SVC(kernel='linear', C = 1.0)
clf.fit(X,y)

print(clf.predict([0.58,0.76]))
Run Code Online (Sandbox Code Playgroud)

我使用Python 3.6,我得到错误"预期的2D阵列,而不是1D阵列:"我认为该脚本适用于旧版本,但我不知道如何将其转换为3.6版本.

已经尝试过:

X.reshape(1, -1)
Run Code Online (Sandbox Code Playgroud)

python machine-learning predict python-3.x

58
推荐指数
4
解决办法
13万
查看次数