{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\n%matplotlib inline\nimport seaborn as sns","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"*Loading Dataset*"},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.read_csv('../input/osic-pulmonary-fibrosis-progression/train.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test = pd.read_csv('../input/osic-pulmonary-fibrosis-progression/test.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Data Cleaning**"},{"metadata":{"trusted":true},"cell_type":"code","source":"train.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"print(train.isnull().sum())\nprint(test.isnull().sum())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.describe()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Visualisation**"},{"metadata":{"trusted":true},"cell_type":"code","source":"train.groupby('SmokingStatus').count()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Never smoked 429\nEx-smoker    1038 \n"},{"metadata":{"trusted":true},"cell_type":"code","source":"train.groupby('Sex').count()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train['Sex'] = train['Sex'].map({'Male':0,'Female':1})","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test['Sex'] = test['Sex'].map({'Male':0,'Female':1})","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = pd.get_dummies(train,columns=['SmokingStatus'],drop_first=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test = pd.get_dummies(test,columns=['SmokingStatus'],drop_first=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sns.pairplot(train)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sns.heatmap(train.corr(),cmap = 'RdYlBu_r')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Data has a correlation with Sex vs SmokingStatus  and Percentage vs FVC"},{"metadata":{"trusted":true},"cell_type":"code","source":"cat_cols =[col for col in train.columns if train[col].dtype==object]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"cat_cols","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.preprocessing import LabelEncoder\ncat_encs = []\nfor col in cat_cols:\n    le = LabelEncoder()\n    train[col] = le.fit_transform(train[col])\n    cat_encs.append([col,le])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"cat_encs","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"cat_test = []\nfor col in cat_cols:\n    le = LabelEncoder()\n    test[col] = le.fit_transform(test[col])\n    cat_test.append([col,le])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"cat_test","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X =train.drop('Patient',axis=1)\ny= train['Patient']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y.shape","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"        **Decision Tree Classifier**"},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn import tree\nmodel = tree.DecisionTreeClassifier()\nmodel.fit(X,y)\ny_predict=model.predict(X)\nfrom sklearn.metrics import accuracy_score\naccuracy_score(y,y_predict)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn import svm, tree, linear_model, neighbors, naive_bayes, ensemble, discriminant_analysis, gaussian_process\nclf_rf = ensemble.RandomForestClassifier(random_state=1)\nparameters = { \n    'n_estimators': [100, 400],\n    'criterion' : ['gini', 'entropy'],\n    'max_depth' : [2, 4, 6]    \n}\n\nfrom sklearn.model_selection import GridSearchCV, cross_val_score\n\ncv_rf = GridSearchCV(estimator = clf_rf, param_grid = parameters, cv=5, n_jobs=-1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test = test\n\nclf = cv_rf.fit(X, y)\n\npredictions = clf.predict(X_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_test.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"output = pd.DataFrame({'Patient': test.Patient, 'FVC': predictions})\noutput.to_csv('submission.csv', index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}