标签: kaggle

在非超级计算机上处​​理大量数据的一般技术

我正在学习一些AI课程,并且已经学习了一些我想要实验的基本算法.通过Kaggle,我可以访问包含大量真实数据的多个数据集,Kaggle主持数据分析竞赛.

我曾尝试参加几个比赛以提高我的机器学习技能,但一直无法找到一种好方法来访问我的代码中的数据.Kaggle为csv格式的每个竞赛提供了一个50-200mb的大型数据文件.

在我的代码中加载和使用这些表的最佳方法是什么?我的第一直觉是使用数据库,所以我尝试将csv加载到sqlite中的单个数据库,但这给我的计算机带来了巨大的负担,在提交期间,我的计算机崩溃是很常见的.接下来,我尝试在共享主机上使用mysql服务器,但对它进行查询需要花费很长时间,这使得我的分析代码非常慢.另外,我恐怕会超出我的带宽.

到目前为止,在我的课程中,我的教师通常会清理数据并为我们提供可以完全加载到RAM中的可管理数据集.显然,这对我目前的兴趣是不可能的.请建议我该怎么做.我目前正在使用4GB的macbook和4gb ram以及一个双核2.1Ghz cpu.

顺便说一句,我希望在Python中进行大量的分析,因为我最了解这种语言.我想要一个允许我用这种语言完成所有或几乎所有编码的解决方案.

python database machine-learning data-analysis kaggle

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

LightGBM中的交叉验证

在阅读了LightGBM关于交叉验证的文档之后,我希望这个社区能够阐明交叉验证结果并改进我们使用LightGBM的预测.我们如何使用字典输出lightgbm.cv来改进我们的预测?

这是一个例子 - 我们使用下面的代码训练我们的cv模型:

cv_mod = lgb.cv(params, 
                d_train, 
                500, 
                nfold = 10, 
                early_stopping_rounds = 25,
                stratified = True)
Run Code Online (Sandbox Code Playgroud)

我们如何使用从上面代码的最佳迭代中找到的参数来预测输出?在这种情况下,cv_mod没有类似的"预测"方法lightgbm.train,并且字典输出lightgbm.cv在使用时会抛出错误lightgbm.train.predict(..., pred_parameters = cv_mod).

我错过了一个重要的转型步骤吗?

python machine-learning cross-validation kaggle lightgbm

13
推荐指数
2
解决办法
8546
查看次数

机器学习中的OOF方法是什么?

我已经在许多kaggle笔记本电脑中看到,人们在使用K-fold验证进行机器学习时都在谈论oof方法。什么是oof,它与k倍验证有关?您还可以建议一些有用的资源来详细了解概念吗

感谢您的帮助!

machine-learning cross-validation kaggle

12
推荐指数
1
解决办法
3040
查看次数

Caffe中的多标签回归

我按照kaggle facialkeypoints竞赛从输入图像中提取30个面部关键点(x,y).

我如何设置caffe运行回归并产生30维输出?

Input: 96x96 image
Output: 30 - (30 dimensions).
Run Code Online (Sandbox Code Playgroud)

我如何相应地设置caffe?我正在使用EUCLIDEAN_LOSS(平方和)来获得回归输出.这是一个使用caffe的简单逻辑回归模型,但它不起作用.看起来精度图层无法处理多标签输出.

I0120 17:51:27.039113  4113 net.cpp:394] accuracy <- label_fkp_1_split_1
I0120 17:51:27.039135  4113 net.cpp:356] accuracy -> accuracy
I0120 17:51:27.039158  4113 net.cpp:96] Setting up accuracy
F0120 17:51:27.039201  4113 accuracy_layer.cpp:26] Check failed: bottom[1]->channels() == 1 (30 vs. 1) 
*** Check failure stack trace: ***
    @     0x7f7c2711bdaa  (unknown)
    @     0x7f7c2711bce4  (unknown)
    @     0x7f7c2711b6e6  (unknown)
Run Code Online (Sandbox Code Playgroud)

这是图层文件:

name: "LogReg"
layers {
  name: "fkp"
  top: "data"
  top: "label"
  type: HDF5_DATA
  hdf5_data_param {
   source: "train.txt"
   batch_size: 100
  } …
Run Code Online (Sandbox Code Playgroud)

machine-learning deep-learning caffe kaggle

11
推荐指数
1
解决办法
6499
查看次数

C5.0决策树 - 名为exit的c50代码,值为1

我收到以下错误

c50代码名为exit,值为1

我在Kaggle提供的巨大数据上这样做

# Importing datasets
train <- read.csv("train.csv", sep=",")

# this is the structure
  str(train)
Run Code Online (Sandbox Code Playgroud)

输出: -

    'data.frame':   891 obs. of  12 variables:
 $ PassengerId: int  1 2 3 4 5 6 7 8 9 10 ...
 $ Survived   : int  0 1 1 1 0 0 0 0 1 1 ...
 $ Pclass     : int  3 1 3 1 3 3 1 3 3 2 ...
 $ Name       : Factor w/ 891 levels "Abbing, Mr. Anthony",..: 109 191 …
Run Code Online (Sandbox Code Playgroud)

r machine-learning decision-tree kaggle

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

错误:'utf8'编解码器无法解码位置0中的字节0x80:无效的起始字节

我正在尝试执行以下kaggle assignmnet.我使用gensim包来使用word2vec.我能够创建模型并将其存储到磁盘.但是当我尝试加载文件时,我收到以下错误.

    -HP-dx2280-MT-GR541AV:~$ python prog_w2v.py 
Traceback (most recent call last):
  File "prog_w2v.py", line 7, in <module>
    models = gensim.models.Word2Vec.load_word2vec_format('300features_40minwords_10context.txt', binary=True)
  File "/usr/local/lib/python2.7/dist-packages/gensim/models/word2vec.py", line 579, in load_word2vec_format
    header = utils.to_unicode(fin.readline())
  File "/usr/local/lib/python2.7/dist-packages/gensim/utils.py", line 190, in any2unicode
    return unicode(text, encoding, errors=errors)
  File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)

我发现了类似的问题.但我无法解决问题.我的prog_w2v.py如下.

import gensim
import time
start = time.time()    
models = gensim.models.Word2Vec.load_word2vec_format('300features_40minwords_10context.txt', binary=True) 
end = time.time()   
print …
Run Code Online (Sandbox Code Playgroud)

python character-encoding gensim word2vec kaggle

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

python中的KFold到底做了什么?

我正在看这个教程:https://www.dataquest.io/mission/74/getting-started-with-kaggle

我得到第9部分,做出预测.在那里,在一个名为titanic的数据框中有一些数据,然后使用以下方式将其分成折叠:

# Generate cross validation folds for the titanic dataset.  It return the row indices corresponding to train and test.
# We set random_state to ensure we get the same splits every time we run this.
kf = KFold(titanic.shape[0], n_folds=3, random_state=1)
Run Code Online (Sandbox Code Playgroud)

我不确定它究竟在做什么以及kf是什么样的对象.我试过阅读文档,但没有多大帮助.此外,有三个折叠(n_folds = 3),为什么以后只能访问火车和测试(我怎么知道它们被称为火车和测试)?

for train, test in kf:
Run Code Online (Sandbox Code Playgroud)

python cross-validation kaggle

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

对象可枚举但不可索引?

问题总结及疑问

我正在尝试查看可以枚举但不能索引的对象中的一些数据。我对 python 还是新手,但我不明白这是怎么可能的。

如果可以枚举它,为什么不能通过与枚举相同的方式访问索引?如果没有,有没有办法单独访问这些项目?

实际例子

import tensorflow_datasets as tfds

train_validation_split = tfds.Split.TRAIN.subsplit([6, 4])

(train_data, validation_data), test_data = tfds.load(
    name="imdb_reviews", 
    split=(train_validation_split, tfds.Split.TEST),
    as_supervised=True)

Run Code Online (Sandbox Code Playgroud)

选择数据集的一个子集

foo = train_data.take(5)
Run Code Online (Sandbox Code Playgroud)

可以foo用 enumerate迭代:

[In] for i, x in enumerate(foo):
    print(i)
Run Code Online (Sandbox Code Playgroud)

产生预期的输出:

0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试对其进行索引时,出现foo[0]此错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-44-2acbea6d9862> in <module>
----> 1 foo[0]

TypeError: 'TakeDataset' object does not support indexing
Run Code Online (Sandbox Code Playgroud)

python neural-network tensorflow kaggle

10
推荐指数
1
解决办法
1061
查看次数

在kaggle笔记本中安装谷歌驱动器

在 google colab 中,我可以轻松地安装我的 google 驱动器:

from google.colab import drive
drive.mount('/content/gdrive')
Run Code Online (Sandbox Code Playgroud)

然而,在 kaggle 的笔记本中,它给出了这个错误:

KeyError                                  Traceback (most recent call last)
<ipython-input-14-2b128295b616> in <module>
      2 # !pip install google-colab
      3 from google.colab import drive
----> 4 drive.mount('/content/gdrive')
      5 # Set your own project id here
      6 # PROJECT_ID = 'your-google-cloud-project'

/opt/conda/lib/python3.6/site-packages/google/colab/drive.py in mount(mountpoint, force_remount, timeout_ms)
     80     return
     81 
---> 82   env = _env()
     83   home = env.home
     84   root_dir = env.root_dir

/opt/conda/lib/python3.6/site-packages/google/colab/drive.py in _env()
     41   home = _os.environ['HOME']
     42   root_dir = …
Run Code Online (Sandbox Code Playgroud)

python google-drive-api jupyter-notebook kaggle google-colaboratory

10
推荐指数
2
解决办法
4836
查看次数

xgboost:AttributeError:'DMatrix'对象没有属性'handle'

这个问题真的很奇怪,因为这件事对其他数据集来说效果很好.

完整代码:

import numpy as np
import pandas as pd
import xgboost as xgb
from sklearn.cross_validation import train_test_split

# # Split the Learning Set
X_fit, X_eval, y_fit, y_eval= train_test_split(
    train, target, test_size=0.2, random_state=1
)

clf = xgb.XGBClassifier(missing=np.nan, max_depth=6, 
                        n_estimators=5, learning_rate=0.15, 
                        subsample=1, colsample_bytree=0.9, seed=1400)

# fitting
clf.fit(X_fit, y_fit, early_stopping_rounds=50, eval_metric="logloss", eval_set=[(X_eval, y_eval)])
#print y_pred
y_pred= clf.predict_proba(test)[:,1]
Run Code Online (Sandbox Code Playgroud)

最后一行导致下面的错误(提供完整输出):

Will train until validation_0 error hasn't decreased in 50 rounds.
[0] validation_0-logloss:0.554366
[1] validation_0-logloss:0.451454
[2] validation_0-logloss:0.372142
[3] validation_0-logloss:0.309450
[4] validation_0-logloss:0.259002
Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python machine-learning python-3.x xgboost kaggle

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