{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\n#from sklearn.ensemble import RandomForestClassifier\nfrom sklearn.ensemble import RandomForestRegressor\n\nimport warnings\n\nwarnings.filterwarnings('ignore')\n\nimport os\nprint(os.listdir(\"../input\"))\n","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"Ntrain = pd.read_csv('../input/train_V2.csv')\ntest = pd.read_csv('../input/test_V2.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":false,"_uuid":"c6bdc17c5eb2035c0b95eac92aead6ae2ae3da3c"},"cell_type":"code","source":"Ntrain.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"90f78e66f112298fee8f5936226cbcf28eeb772f"},"cell_type":"markdown","source":"## delete NAN"},{"metadata":{"trusted":true,"_uuid":"4810a1d8b7cf28295784646068f1b5c9a84eb190"},"cell_type":"code","source":"Ntrain[Ntrain['winPlacePerc'].isnull()]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0416fc60f96d6aff15cdce79dcde426b7e6822ed"},"cell_type":"code","source":"Ntrain.drop(2744604,inplace = True)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"e59be867c74685b7420ab6bfb56b259199ecbe25"},"cell_type":"markdown","source":"## normolizing"},{"metadata":{"_uuid":"fd84965be8e8ff20cf8ce2403c19b032999b7162"},"cell_type":"markdown","source":"* ###  player-joined number for each game"},{"metadata":{"trusted":true,"_uuid":"5c3255ef58d19762c51b2795d08d308735171b40"},"cell_type":"code","source":"Ntrain['playerJoined'] = Ntrain.groupby('matchId')['matchId'].transform('count')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":false,"_uuid":"e6cd9da70040361da6096a0c90c1f2d4a81a1a4b"},"cell_type":"code","source":"plt.figure(figsize = (15,10))\nsns.countplot(Ntrain[Ntrain['playerJoined']>= 60]['playerJoined'])\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2339c8f5d95d0442997bb98368d18cac60fbaf31"},"cell_type":"code","source":"Ntrain['killsNorm'] = Ntrain['kills']*((Ntrain['playerJoined'] - 1)/(100-1))\n#maxPlaceNorm\n#damageDealtNorm\nNtrain['damageDealtNorm'] = Ntrain['damageDealt'] * ((Ntrain['playerJoined'] - 1)/99)\n#matchDurationNorm","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true,"_uuid":"c70251b9fa8a44909054b2d6f34dff52f7091c35"},"cell_type":"code","source":"Ntrain[['kills','killsNorm','damageDealt','damageDealtNorm','playerJoined']][:11]","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"3bb2b3a2e24e6236e426d97ecf06c2c64a2a96d4"},"cell_type":"markdown","source":"* ### totalDistance"},{"metadata":{"trusted":true,"_uuid":"6bb416bfc2bb1c3f86527a2a1b3708c8e6fefb66"},"cell_type":"code","source":"Ntrain['totalDistance'] = Ntrain['rideDistance'] + Ntrain['swimDistance'] + Ntrain['walkDistance']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true,"_uuid":"ae087f6570b5ef471cd3287ae03d4fc565809ffe"},"cell_type":"code","source":"Ntrain['totalDistance'].head(11)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"5b620a651c2e03e24b1b985ff20fd0c523f8b9c6"},"cell_type":"markdown","source":"* ### find the cheaters that kill without move a inch,and drop them"},{"metadata":{"trusted":true,"scrolled":true,"_uuid":"92897290332620d801d8c07f94e2e0a1d5dbafd3"},"cell_type":"code","source":"Ntrain['killWithoutMove'] = ((Ntrain['kills'] > 0) & (Ntrain['totalDistance'] == 0))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e065b97c3da6b2479fff4dcda38903d5e5c8bf6e"},"cell_type":"code","source":"np.shape(Ntrain[Ntrain['killWithoutMove'] == True])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"24977f66493d9df6e5f1dd1872c8a2f7ab572d17"},"cell_type":"code","source":"Ntrain.drop(Ntrain[Ntrain['killWithoutMove'] == True].index,inplace = True)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"966e292375b420e85430f930ced9fb3be6333a0f"},"cell_type":"markdown","source":"##  boosts"},{"metadata":{"trusted":true,"_uuid":"7542f936ae4dc645414386334b9f7cf54b65cdb6"},"cell_type":"code","source":"plt.figure(figsize=(12,4))\nsns.distplot(Ntrain['boosts'], bins=10)\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"140e609bf310072f9af20135eed60e6ebf7bedce"},"cell_type":"code","source":"print(np.shape(Ntrain))\nNtrain.drop(Ntrain[Ntrain['boosts'] >11].index,inplace = True)\nprint(np.shape(Ntrain))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"928b13813ed4bd76ed738665572718651ae3bc20"},"cell_type":"markdown","source":"## weaponsAcquired"},{"metadata":{"trusted":true,"scrolled":true,"_uuid":"bdec016aa823ee325a9aabad1611fae9fddfc19e"},"cell_type":"code","source":"plt.figure(figsize=(12,4))\nsns.distplot(Ntrain['weaponsAcquired'], bins=10)\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"393e0293a5f7329e173c1530652507135b3cfb5b"},"cell_type":"code","source":"print(np.shape(Ntrain))\nNtrain.drop(Ntrain[Ntrain['weaponsAcquired'] >20].index,inplace = True)\nprint(np.shape(Ntrain))","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"bb0ef935cd90513497160909aa11d350b2266e6f"},"cell_type":"markdown","source":"## 200000 for training"},{"metadata":{"trusted":true,"_uuid":"a410e73e3200f22cb81c2ee2a14aa54d085e56a6","scrolled":false},"cell_type":"code","source":"train = Ntrain[:200000]\nnp.shape(train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e39e03409d335d72811455c6485041f1cfe203e9"},"cell_type":"code","source":"train.head(10)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"bd04682fe87bc85bf2c9be9ed5e1a543ec7b39ad"},"cell_type":"markdown","source":"* ### clear the data"},{"metadata":{"trusted":true,"_uuid":"55ffe2ffa95973122e608e1dfb11ec2833068512"},"cell_type":"code","source":"train = train.drop(['Id','groupId','matchId','matchType','killWithoutMove','kills','damageDealt','numGroups','swimDistance','playerJoined'],axis = 1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5ac2a8963275a5c64a1a694468037597b5153301"},"cell_type":"code","source":"Y_train = train['winPlacePerc']\nX_train = train.drop(['winPlacePerc'],axis = 1)\nX_train.head(21)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d3ca6790b06ed27be9a2dca305125c3c3787f4ed"},"cell_type":"code","source":"Y_train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"36511a76894810da406526878d44b6d74fa3abe2","scrolled":true},"cell_type":"code","source":"X_train.shape,Y_train.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e91d8315dbb9ac72247e41f25e3110cd055d26e6"},"cell_type":"code","source":"# Metric used for the PUBG competition (Mean Absolute Error (MAE))\nfrom sklearn.metrics import mean_absolute_error","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true,"_uuid":"832bf10eb04915c6e39b80117aef325d6b389486"},"cell_type":"code","source":"m1 = RandomForestRegressor(n_estimators=80, min_samples_leaf=3, max_features=0.5,\n                          n_jobs=-1)\nm1.fit(X_train, Y_train)\nmean_absolute_error(m1.predict(X_train), Y_train)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"a47631d19dd74dfdb493bb19194f3e00a095e514"},"cell_type":"markdown","source":" ## preparation for test"},{"metadata":{"trusted":true,"_uuid":"fecb7d27e03915b016d9ce6513e7497825d4059a"},"cell_type":"code","source":"X_test = test.copy()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9d6e66f00100c49671376b9164c101dd50f34198"},"cell_type":"code","source":"X_test.head(11)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1f28a9475da9dd843861a361adb414b7d6d72306"},"cell_type":"code","source":"X_test['playerJoined'] = X_test.groupby('matchId')['matchId'].transform('count')\nX_test['killsNorm'] = X_test['kills']*((X_test['playerJoined'] - 1)/(100-1))\n#maxPlaceNorm\n#damageDealtNorm\nX_test['damageDealtNorm'] = X_test['damageDealt'] * ((X_test['playerJoined'] - 1)/99)\nX_test['totalDistance'] = X_test['rideDistance'] + X_test['swimDistance'] + X_test['walkDistance']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"83f1453b7df705e98024a99318fdc06e567fa13e"},"cell_type":"code","source":"X_test.head(11)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e3ca1e0b47e5ecbc99affe15499d6bdd4b99f120"},"cell_type":"code","source":"X_test = X_test.drop(['Id','groupId','matchId','matchType','kills','damageDealt','numGroups','swimDistance','playerJoined'],axis = 1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"fc0c5792932ea6091f7b208a5043a78e43d05ec3"},"cell_type":"code","source":"X_test.head(11)\nnp.shape(X_test),np.shape(test[\"Id\"])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1e119108cacc388446164f51df655e2984dac879","scrolled":true},"cell_type":"code","source":"I = np.clip(a = m1.predict(X_test), a_min = 0.0, a_max = 1.0)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bb92a73fd50d2b0f03cf744e1857c9e6a0cd5c92","scrolled":true},"cell_type":"code","source":"I.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"35ecc5949e514af95a3ee3c8fef919abf72f8b58"},"cell_type":"code","source":"submission = pd.DataFrame({\n        \"Id\": test[\"Id\"],\n        \"winPlacePerc\": I\n    })\nsubmission.to_csv('submission.csv', index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"899f72a07f646cff493b7310f91a637258389476"},"cell_type":"code","source":" submission.head(10)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"455022abb496ea948914c70e612f13e4fe0659ad"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3dd18c34d734f207db481827dd014cd595a35cd9"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"429817a9270af7d6392f21978fc8e1c4ea5ebfbb"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}