{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"collapsed":true},"cell_type":"code","source":"%matplotlib inline\nimport os\nimport gc\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nfrom tqdm import tqdm\n\nDATA_DIR = '../input/'\ntarget_col = 'deal_probability'","execution_count":5,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","collapsed":true,"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"top_cats = ['image_top_1', 'city', 'region', 'param_1']\ntrain = pd.read_csv(DATA_DIR+'train.csv', usecols=top_cats+['price'])\ntest = pd.read_csv(DATA_DIR+'test.csv', usecols=top_cats+['price'])\ny = pd.read_csv(DATA_DIR+'train.csv', usecols=[target_col]).values.ravel()","execution_count":15,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"da99bde9bd34804fbf9ea78cf6796bfadb8a3205"},"cell_type":"code","source":"df = pd.concat([train, test], ignore_index=True)\nfor c in ['city', 'region', 'param_1']:\n    df[c] = pd.factorize(df[c])[0]\nfor top_cat in top_cats:\n    null_cls = int(df[top_cat].max())+1\n    print('fill {} with {}'.format(top_cat, null_cls))\n    df[top_cat].fillna(null_cls, inplace=True)\ndf['price'].fillna(df['price'].median(), inplace=True)\ndf['price'] = np.log1p(df['price'])\n\ntrain_num = len(y)\ntrain = df[:train_num]\ntest =  df[train_num:]\ndel df; gc.collect();\nn_samples = 5000\ntr_sp = train.sample(n_samples)\nte_sp = test.sample(n_samples)\ny_sp = y[tr_sp.index]\ntr_sp = tr_sp.reset_index(drop=True)\nte_sp = te_sp.reset_index(drop=True)","execution_count":16,"outputs":[]},{"metadata":{"_uuid":"d61642b8ec217487a24fe0ff58805da630110d13"},"cell_type":"markdown","source":"### From sklearn manifold learning tutorial:\n- http://scikit-learn.org/stable/auto_examples/manifold/plot_compare_methods.html#sphx-glr-auto-examples-manifold-plot-compare-methods-py\n\n### Original t-SNE implementation\n- https://lvdmaaten.github.io/tsne/"},{"metadata":{"trusted":true,"_uuid":"50bb721fc337f413b755a5b41bd36e043b6545a2"},"cell_type":"code","source":"from time import time\n\nimport matplotlib.pyplot as plt\nfrom mpl_toolkits.mplot3d import Axes3D\nfrom matplotlib.ticker import NullFormatter\nfrom sklearn import manifold\n\nAxes3D\n\nn_points = n_samples\n#X, color = datasets.samples_generator.make_s_curve(n_points, random_state=0)\nX, color = tr_sp.values, y_sp\nn_neighbors = 20\nn_components = 2\n\nfig = plt.figure(figsize=(27, 15))\nplt.suptitle(\"Manifold Learning with %i points, %i neighbors\"\n             % (n_points, n_neighbors), fontsize=15)\n\nax = fig.add_subplot(251, projection='3d')\nax.scatter(X[:, 0], X[:, 1], X[:, 2], c=color, cmap=plt.cm.Spectral)\nax.view_init(4, -72)\n\nmethods = ['standard', 'ltsa', 'hessian', 'modified']\nlabels = ['LLE', 'LTSA', 'Hessian LLE', 'Modified LLE']\n\nfor i, method in enumerate(methods):\n    t0 = time()\n    Y = manifold.LocallyLinearEmbedding(n_neighbors, n_components,\n                                        eigen_solver='dense',#'auto',\n                                        method=method).fit_transform(X)\n    t1 = time()\n    print(\"%s: %.2g sec\" % (methods[i], t1 - t0))\n\n    ax = fig.add_subplot(252 + i)\n    plt.scatter(Y[:, 0], Y[:, 1], c=color, cmap=plt.cm.Spectral)\n    plt.title(\"%s (%.2g sec)\" % (labels[i], t1 - t0))\n    ax.xaxis.set_major_formatter(NullFormatter())\n    ax.yaxis.set_major_formatter(NullFormatter())\n    plt.axis('tight')\n\nt0 = time()\nY = manifold.Isomap(n_neighbors, n_components).fit_transform(X)\nt1 = time()\nprint(\"Isomap: %.2g sec\" % (t1 - t0))\nax = fig.add_subplot(257)\nplt.scatter(Y[:, 0], Y[:, 1], c=color, cmap=plt.cm.Spectral)\nplt.title(\"Isomap (%.2g sec)\" % (t1 - t0))\nax.xaxis.set_major_formatter(NullFormatter())\nax.yaxis.set_major_formatter(NullFormatter())\nplt.axis('tight')\n\nt0 = time()\nmds = manifold.MDS(n_components, max_iter=100, n_init=1)\nY = mds.fit_transform(X)\nt1 = time()\nprint(\"MDS: %.2g sec\" % (t1 - t0))\nax = fig.add_subplot(258)\nplt.scatter(Y[:, 0], Y[:, 1], c=color, cmap=plt.cm.Spectral)\nplt.title(\"MDS (%.2g sec)\" % (t1 - t0))\nax.xaxis.set_major_formatter(NullFormatter())\nax.yaxis.set_major_formatter(NullFormatter())\nplt.axis('tight')\n\n\nt0 = time()\nse = manifold.SpectralEmbedding(n_components=n_components,\n                                n_neighbors=n_neighbors)\nY = se.fit_transform(X)\nt1 = time()\nprint(\"SpectralEmbedding: %.2g sec\" % (t1 - t0))\nax = fig.add_subplot(259)\nplt.scatter(Y[:, 0], Y[:, 1], c=color, cmap=plt.cm.Spectral)\nplt.title(\"SpectralEmbedding (%.2g sec)\" % (t1 - t0))\nax.xaxis.set_major_formatter(NullFormatter())\nax.yaxis.set_major_formatter(NullFormatter())\nplt.axis('tight')\n\nt0 = time()\ntsne = manifold.TSNE(n_components=n_components, init='pca', random_state=0)\nY = tsne.fit_transform(X)\nt1 = time()\nprint(\"t-SNE: %.2g sec\" % (t1 - t0))\nax = fig.add_subplot(2, 5, 10)\nplt.scatter(Y[:, 0], Y[:, 1], c=color, cmap=plt.cm.Spectral)\nplt.title(\"t-SNE (%.2g sec)\" % (t1 - t0))\nax.xaxis.set_major_formatter(NullFormatter())\nax.yaxis.set_major_formatter(NullFormatter())\nplt.axis('tight')\n\nplt.show()","execution_count":17,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.5","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}