{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","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\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 read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\n# for dirname, _, filenames in os.walk('/kaggle/input'):\n#     for filename in filenames:\n#         print(os.path.join(dirname, filename))\n\n# You can write up to 5GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"# import packages\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# loading data\ntrain_data = pd.read_csv('/kaggle/input/osic-pulmonary-fibrosis-progression/train.csv')\ntest_data = pd.read_csv('/kaggle/input/osic-pulmonary-fibrosis-progression/test.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_data.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test_data","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_data.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_data.isna().sum()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_data.columns","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_data = train_data.drop(columns= ['Patient'], axis = 1)\ntrain_data.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# for getting unique values from data\nfor i in list(train_data.select_dtypes(include= np.object).columns):\n    print(train_data[i].unique(), '\\n')","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Data distributions","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"plt.style.use('seaborn')\ntrain_data.select_dtypes(include= [np.int64, np.float64]).hist(figsize= (10,10))\nplt.tight_layout()\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sns.pairplot(train_data[list(train_data.columns)[:-1]], hue= 'Sex')\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_cols = list(train_data.columns)\ntrain_cols.remove('Sex')\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_cols","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sns.pairplot(train_data[train_cols], hue= 'SmokingStatus')\nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# get dummies for training data \ntrain_data_final = pd.get_dummies(train_data, columns=['Sex', 'SmokingStatus'], drop_first= True)\ntrain_data_final.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_data = train_data_final.drop(columns= 'FVC', axis = 1)\ny_data = train_data_final['FVC']","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X = X_data.iloc[:, ].values\ny = y_data.iloc[:, ].values","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 10)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train[:, :3]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.preprocessing import StandardScaler\nsc = StandardScaler()\nX_train[:, :3] = sc.fit_transform(X_train[:, :3])\nX_test[:, :3] = sc.transform(X_test[:, :3])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X_train","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import xgboost as xgb\nxgb_model = xgb.XGBRFRegressor()\nxgb_model.fit(X_train, y_train)\nprint('training score: {}'.format(xgb_model.score(X_train, y_train)))\nprint('testing score: {}'.format(xgb_model.score(X_test, y_test)))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Working with images","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"import pydicom","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# check how many images in out train and test folders\nimport os\nprint('training image folders : {}'.format(len(list(os.listdir('/kaggle/input/osic-pulmonary-fibrosis-progression/train')))))\nprint('training image folders : {}'.format(len(list(os.listdir('/kaggle/input/osic-pulmonary-fibrosis-progression/test')))))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# to check individual patient DICOMs\nimg_dir = '../input/osic-pulmonary-fibrosis-progression/train/ID00012637202177665765362'\nprint('Patient ID : ID00012637202177665765362 , images found: {}'.format(len(list(os.listdir(img_dir)))))\n\n# visualizations of DICOM\n\nfig = plt.figure(figsize=(12, 12))\ncolumns = 4\nrows = 5\nfor i in range(1, columns*rows +1):\n    filename = img_dir + \"/\" + str(i) + \".dcm\"\n    ds = pydicom.dcmread(filename)\n    fig.add_subplot(rows, columns, i)\n    plt.imshow(ds.pixel_array, cmap='gray')\nplt.tight_layout()    \nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# to check individual patient DICOMs\nimg_dir = '../input/osic-pulmonary-fibrosis-progression/train/ID00012637202177665765362'\nprint('Patient ID : ID00012637202177665765362 , images found: {}'.format(len(list(os.listdir(img_dir)))))\n\n# visualizations of DICOM\n# official documentation for cmap colors : https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html\n\n\nfig = plt.figure(figsize=(12, 12))\ncolumns = 4\nrows = 5\nfor i in range(1, columns*rows +1):\n    filename = img_dir + \"/\" + str(i) + \".dcm\"\n    ds = pydicom.dcmread(filename)\n    fig.add_subplot(rows, columns, i)\n    plt.imshow(ds.pixel_array, cmap='terrain')\nplt.tight_layout()    \nplt.show()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# credits : https://www.kaggle.com/piantic/osic-pulmonary-fibrosis-progression-basic-eda\n\ndef plot_pixel_array(dataset, figsize=(5,5)):\n    plt.figure(figsize=figsize)\n    plt.grid(False)\n    plt.imshow(dataset.pixel_array, cmap='gray') # cmap=plt.cm.bone)\n    plt.show()\n    \ndef show_dcm_info(dataset):\n    print(\"Filename.........:\", file_path)\n\n    pat_name = dataset.PatientName\n    display_name = pat_name.family_name + \", \" + pat_name.given_name\n    print(\"Patient's name......:\", display_name)\n    \n    print(dataset.data_element(\"ImageOrientationPatient\"))\n    print(dataset.data_element(\"ImagePositionPatient\"))\n    print(dataset.data_element(\"PatientID\"))\n    print(dataset.data_element(\"PatientName\"))\n    print(dataset.data_element(\"PatientSex\"))\n   \n    \n    if 'PixelData' in dataset:\n        rows = int(dataset.Rows)\n        cols = int(dataset.Columns)\n        print(\"Image size.......: {rows:d} x {cols:d}, {size:d} bytes\".format(\n            rows=rows, cols=cols, size=len(dataset.PixelData)))\n        if 'PixelSpacing' in dataset:\n            print(\"Pixel spacing....:\", dataset.PixelSpacing)    \n            \n#------------------\n\ni = 1\nnum_to_plot = 2\nfor folder_name in os.listdir('../input/osic-pulmonary-fibrosis-progression/train/'):\n        patient_path = os.path.join('../input/osic-pulmonary-fibrosis-progression/train/',folder_name)\n        \n        for i in range(1, num_to_plot+1):     \n            file_path = os.path.join(patient_path, str(i) + '.dcm')\n\n            dataset = pydicom.dcmread(file_path)\n            show_dcm_info(dataset)\n            plot_pixel_array(dataset)\n\n        break\n    ","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Note: Still need to work....please suggest and leave a comment once you read my workbook","execution_count":null},{"metadata":{},"cell_type":"markdown","source":"","execution_count":null},{"metadata":{"trusted":true},"cell_type":"code","source":"# checking each indiviual training images length\nimg_dir = '../input/osic-pulmonary-fibrosis-progression/train/'\nprint('training image folders : {}'.format(len(list(os.listdir('/kaggle/input/osic-pulmonary-fibrosis-progression/train')))))\n\nfor i in list(os.listdir(img_dir)):\n    print('patient ID: {}, length is :{}'.format(i, len(list(os.listdir(img_dir + i)))))\n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","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}