{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"%matplotlib inline\nimport numpy as np\nimport pandas as pd \nfrom subprocess import check_output\n#print(check_output([\"ls\", \"../input\"]).decode(\"utf8\"))\nimport datetime\nimport time"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"import matplotlib.pyplot as plt"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"from sklearn.cluster import MiniBatchKMeans, KMeans"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"from sklearn.metrics.pairwise import pairwise_distances_argmin\nfrom sklearn.datasets.samples_generator import make_blobs"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"train1 = pd.read_csv(\"../input/train.csv\", parse_dates=['date_time'], nrows=10000)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"train = pd.read_csv(\"../input/train.csv\", parse_dates=['date_time'], nrows=1000000)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"test = pd.read_csv(\"../input/test.csv\", parse_dates=['date_time'], nrows=1000000)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"train_bookings = train[train['is_booking'] == 1].drop('is_booking', axis=1)\ntrain_clicks = train[train['is_booking'] == 0].drop('is_booking', axis=1)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"train_bookingsz = train_bookings.drop(['date_time','srch_ci','srch_co'], axis=1)\ntrain_bookingszna = train_bookingsz.fillna(0)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"c = train_bookingszna.ix[4000:5000]"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"test_bookingsz = test.drop(['date_time','srch_ci','srch_co'], axis=1)\ntest_bookingszna = test_bookingsz.fillna(0)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"b1 = train_bookingszna.hotel_cluster.unique()"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"n_clusters = 100\nk_means = KMeans(init='k-means++', n_clusters=100, n_init=10)\nt0 = time.time()\nk_means.fit(train_bookingszna)\nt_batch = time.time() - t0\nk_means_labels = k_means.labels_\nk_means_cluster_centers = k_means.cluster_centers_\nk_means_labels_unique = np.unique(k_means_labels)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"k_means.fit(train_bookingszna)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"test_bookingszna['diff_A_B'] = test_bookingszna['srch_adults_cnt'] - test_bookingszna['srch_children_cnt']"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"a = k_means.predict(test_bookingszna)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"a[0:80]"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"np.unique(k_means_labels)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"np.unique(k_means.cluster_centers_)"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":"# Plot result\n\nfig = plt.figure(figsize=(60, 40))\n\n#fig.subplots_adjust(left=0.02, right=0.98, bottom=0.05, top=0.9)\n# MiniBatchKMeans and the KMeans algorithm. Let's pair the cluster centers per\n# closest one.\n\n\n# KMeans\nax = fig.add_subplot(1, 1, 1)\nfor k in range(n_clusters):\n    my_members = k_means_labels == k\n    cluster_center = k_means_cluster_centers[k]\n    #ax.plot(train_bookingszna[my_members, 0], train_bookingszna[my_members, 1], 'w', marker='.')\n    ax.plot(cluster_center[0], cluster_center[1], 'o', markeredgecolor='k', markersize=6)\nax.set_title('KMeans')\nax.set_xticks(())\nax.set_yticks(())\nplt.text(-3.5, 1.8,  'train time: %.2fs\\ninertia: %f' % (\n    t_batch, k_means.inertia_))\nplt.show()"},{"cell_type":"code","execution_count":null,"metadata":{"collapsed":false},"outputs":[],"source":""}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":0}