{"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_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"#!/usr/bin/env/python\n# CS3310, Spring 2021\n# Homework 5 - Device Profiling\n# 'Alejandro', aka 0xB0BAFE77\n\n# Imports\nimport pandas as pd\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.ensemble import GradientBoostingClassifier\nfrom sklearn.experimental import enable_hist_gradient_boosting\nfrom sklearn.ensemble import HistGradientBoostingClassifier\n\n\n# Read in data, set up variables.\n# Training Data\ndf_train = pd.read_hdf('./train.h5', index_col='os_family')\nstd_scaler = StandardScaler()\nstd_scaler_array = std_scaler.fit_transform(df_train)\ndf_train.loc[:,:] = std_scaler_array\nX_train = df_train.values\ny_train = df_train.index.values\n\n# Testing Data\ndf_test = pd.read_hdf('./test.h5', index_col='os_family')\nstd_scaler = StandardScaler()\nstd_scaler_array_test = std_scaler.fit_transform(df_test)\ndf_test.loc[:,:] = std_scaler_array_test\nX_test = df_test.values\ny_test = df_test.index.values\n\n# Methodology: HistGradientBoostingClassifier\n# https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingClassifier.html\nhgbc = HistGradientBoostingClassifier(\n    l2_regularization=0.52,\n    learning_rate=0.03,\n    max_depth=6,\n    max_iter=10000,\n    max_leaf_nodes=11,\n    min_samples_leaf=66,\n    random_state=42)\nhgbc_model = hgbc.fit(X_train, y_train)\n\n# # Predict\ny_pred = hgbc.predict(X_test)\n\n# # Make a new pandas dataframe and save to *.csv\ndf_preds = pd.DataFrame(\n    y_pred, index=df_test.index, columns=['os_family'])\ndf_preds.to_csv('device_predictions.csv')\n\n","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]}]}