{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"506dcae9-f137-77de-6922-bf1c4d3816a9"},"outputs":[],"source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nfrom subprocess import check_output\nprint(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))\n\n# Any results you write to the current directory are saved as output."},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"d75a0267-4bd6-9cfc-23f1-31ffe46403a4"},"outputs":[],"source":"print('Importing libraries...')\nimport os\n#import numpy as np\n#import pandas as pd \nimport multiprocessing\nfrom scipy.misc import imread, imresize\nfrom sklearn.tree import DecisionTreeClassifier \nfrom sklearn.cross_validation import cross_val_score\n\nlabels = 'c0,c1,c2,c3,c4,c5,c6,c7,c8,c9'.split(',')\nprint('Defining data...')\ndef get_train():\n    one_up = os.path.dirname(os.getcwd())\n    labels = [i for i in os.listdir(os.path.join(one_up, 'input', 'train')) if 'c' in i]\n    labels.sort()\n    data = []\n    \n    for lab in labels:\n        paths = os.listdir(os.path.join('..', 'input','train', lab))\n        X = [(os.path.join(one_up, 'input', 'train', lab, i), lab) for i in paths]\n        data.extend(X)\n    import random\n    random.shuffle(data) # since labels were sorted\n    df = pd.DataFrame({'paths': [i[0] for i in data],\n                       'target': [i[1] for i in data]})\n\n    for cl in labels:\n        df[cl] = df.target == cl\n    df.drop('target', 1, inplace=True)\n    return df\n\ntrain = get_train().sample(2000)\n"},{"cell_type":"code","execution_count":null,"metadata":{"_cell_guid":"8b9259b2-fd4e-d1ba-7a52-239e0beba407"},"outputs":[],"source":"print('Importing libraries...')\nimport os\nimport numpy as np\nimport pandas as pd \nimport multiprocessing\nfrom scipy.misc import imread, imresize\nfrom sklearn.tree import DecisionTreeClassifier \nfrom sklearn.cross_validation import cross_val_score\n\nlabels = 'c0,c1,c2,c3,c4,c5,c6,c7,c8,c9'.split(',')\n\nprint('Defining data...')\ndef get_train():\n    one_up = os.path.dirname(os.getcwd())\n    labels = [i for i in os.listdir(os.path.join(one_up, 'input', 'train')) if 'c' in i]\n    labels.sort()\n    data = []\n    \n    for lab in labels:\n        paths = os.listdir(os.path.join('..', 'input','train', lab))\n        X = [(os.path.join(one_up, 'input', 'train', lab, i), lab) for i in paths]\n        data.extend(X)\n    import random\n    random.shuffle(data) # since labels were sorted\n    df = pd.DataFrame({'paths': [i[0] for i in data],\n                       'target': [i[1] for i in data]})\n\n    for cl in labels:\n        df[cl] = df.target == cl\n    df.drop('target', 1, inplace=True)\n    return df\n\ntrain = get_train().sample(2000)\n#print(train.shape)\n#print(get_train())\nprint(train[\"paths\"])\n\ndef _apply_df(args):\n    df, func, kwargs = args\n    return df.apply(func, **kwargs)\n\ndef apply_by_multiprocessing(df, func, **kwargs):\n    workers = multiprocessing.cpu_count()\n    pool = multiprocessing.Pool(processes=workers)\n    result = pool.map(_apply_df, [(d, func, kwargs)\n            for d in np.array_split(df, workers)])\n    pool.close()\n    return pd.concat(list(result))\n\ndef getimage(x):\n    return imresize(imread(x, 'L'), (100, 100)).flatten()\n\nprint('Loading training data...')\ntrain['images'] = apply_by_multiprocessing(train.paths, getimage) \nX = np.array([i for i in train.images])\n\nprint('Training classifiers...')\nclassifiers = [DecisionTreeClassifier(max_depth=10) for i in labels]\ntargets = [train[i] for i in labels]\n\n#print(X.shape)\n#print(targets)\n"}],"metadata":{"_change_revision":0,"_is_fork":false,"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.6.0"}},"nbformat":4,"nbformat_minor":0}