{"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":"# 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\nfor 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 20GB 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","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-11-09T01:04:39.119019Z","iopub.execute_input":"2022-11-09T01:04:39.119784Z","iopub.status.idle":"2022-11-09T01:04:46.71891Z","shell.execute_reply.started":"2022-11-09T01:04:39.119746Z","shell.execute_reply":"2022-11-09T01:04:46.717974Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import pandas as pd \nimport numpy as np\nimport seaborn as sns \nimport matplotlib.pyplot as plt\nfrom sklearn import *\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.preprocessing import StandardScaler, MinMaxScaler\nfrom sklearn.metrics import *\nfrom sklearn.model_selection import *\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.ensemble import *\n\n\n#chaque fichier contient 10 minutes d'enregistrement qui sont détaillées en \n#60 000 lignes de valeurs, donc actualisation chaque centième de seconde\n#on réduit l'actualisation à chaque seconde\n#df = df.drop([k for k in range(a) if k%100 != 0], axis = 0)\nerupt = pd.read_csv('train.csv')\nerupt = erupt.rename(columns = {'segment_id' : 'ID', \n                                'time_to_eruption' : 'T_attente'})\n\nID = erupt['ID'] #on crée le tableau des ID\nTemps = erupt['T_attente'] #on crée le tableau des temps d'attente\ndef recenseur():\n    L = []\n    T = [] \n    for k in range(len(ID)):\n        if ID[k] <= 248492902 or ID[k] >= 1944127807:\n            L.append(ID[k])\n            T.append(Temps[k]) \n    return L,T\n\n#On a récupéré les ID et les temps d'attente des data que l'on a copié\n    \ndf_présents, temps = recenseur()\n#d =pd.read_csv('%s.csv' %L[0]) le test est concluant\n\n#X = [pd.read_csv('%s.csv' %k)for k in df_présents] \ndfp = np.sort(df_présents) \n\ndef indmin(l):\n    ind = 0\n    min = l[0]\n    for k in range(1,len(l)):\n        if l[k]<min:\n            min=l[k]\n            ind=k\n    return ind, min\n\ndef indmax(l):\n    ind=0\n    max=l[0]\n    for k in range(1, len(l)):\n        if l[k]>max:\n            max=l[k]\n            ind=k\n        return ind, max\n\n   \n\nmean_sensor1=[]\nmean_sensor2=[]\nmean_sensor3=[]\nmean_sensor4=[]\nmean_sensor5=[]\nmean_sensor6=[]\nmean_sensor7=[]\nmean_sensor8=[]\nmean_sensor9=[]\nmean_sensor10=[]\ndef affiche(): #permet d'afficher les graphes du capteur 1 pour les n premières éruptions \n    L=[]\n    for i in range(10):\n        L.append(pd.read_csv('%s.csv' %df_présents[i]))   \n    for k in L:\n        k=k.drop([k for k in range(60001) if k%100 != 0], axis = 0)\n        mean_sensor1.append(k.dropna().describe()['sensor_1'].loc['mean'])\n        mean_sensor2.append(k.dropna().describe()['sensor_2'].loc['mean'])\n        mean_sensor3.append(k.dropna().describe()['sensor_3'].loc['mean'])\n        mean_sensor4.append(k.dropna().describe()['sensor_4'].loc['mean'])\n        mean_sensor5.append(k.dropna().describe()['sensor_5'].loc['mean'])\n        mean_sensor6.append(k.dropna().describe()['sensor_6'].loc['mean'])\n        mean_sensor7.append(k.dropna().describe()['sensor_7'].loc['mean'])\n        mean_sensor8.append(k.dropna().describe()['sensor_8'].loc['mean'])\n        mean_sensor9.append(k.dropna().describe()['sensor_9'].loc['mean'])\n        mean_sensor10.append(k.dropna().describe()['sensor_10'].loc['mean'])\n\n    \naffiche()\n\ndff=pd.DataFrame({'ID':df_présents[0:100], 'mean_sensor1':mean_sensor1, \n                  'mean_sensor2':mean_sensor2, 'mean_sensor3':mean_sensor3,\n                  'mean_sensor4':mean_sensor4, 'mean_sensor5':mean_sensor5,\n                  'mean_sensor6':mean_sensor6,\n                  'mean_sensor7':mean_sensor7, 'mean_sensor8':mean_sensor8, \n                  'mean_sensor9':mean_sensor9,\n                  'mean_sensor10':mean_sensor10, \n                  'temps':temps[0:100]}).dropna() \n\ny=dff['temps']\nX=dff.drop(['temps'], axis = 1)      \nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)       \nmodel = LogisticRegression(solver='liblinear')\nmodel2 = DecisionTreeClassifier()\nmodel3 = RandomForestClassifier()\n\nmodel3.fit(X_train,y_train)\ny_hat = model3.predict(X_test)\n#l'accuracy score est égal à 0, à cause du fait que l'algo cherche à prédire\n#le temps d'attente exact ? Il donnerait donc une valeur toujours au moins\n#un peu différente de celle renseignée dans le tableau ?\n\n\n#On crée des classes\nclasses = [10000, 30000, 50000, 100000, 300000, 500000, 900000,\n           2000000, 10000000, 'above']\ndff=dff.insert(13, 'classes', [])\n","metadata":{"execution":{"iopub.status.busy":"2022-11-09T04:55:24.215718Z","iopub.execute_input":"2022-11-09T04:55:24.216086Z","iopub.status.idle":"2022-11-09T04:55:24.254727Z","shell.execute_reply.started":"2022-11-09T04:55:24.216054Z","shell.execute_reply":"2022-11-09T04:55:24.253299Z"},"trusted":true},"execution_count":null,"outputs":[]}]}