├── README.md
├── WindTurbine_demo.py
├── WindTurbine.py
└── WindTurbine_fvsff_MIQ-10_cv1-run1.ipynb
/README.md:
--------------------------------------------------------------------------------
1 | # Wind_Turbine
2 | Import, clean, and prepare data and conduct machine learning classification for fault detection in a wind turbine
3 |
4 |
5 | The results are published in a peer-reviewed article.
6 |
7 |
--------------------------------------------------------------------------------
/WindTurbine_demo.py:
--------------------------------------------------------------------------------
1 | import WindTurbine as wt
2 | # Initiate the instance
3 | edata = wt.EnerconWindTurbineData()
4 | edata.import_data()
5 | edata.clean_data()
6 | edata.create_new_features()
7 | edata.create_lagged_features(6)
8 | edata.create_mean_std_features()
9 | edata.derived_features = pd.concat([edata.new_features, edata.lagged_features, edata.mean_std], axis=1, join='inner')
10 | # To save memory, delete the redundant dataframes
11 | edata.derived_features.dropna(inplace=True)
12 | edata.xdata = pd.concat([edata.derived_features, edata.scada_data], axis=1, join='inner')
13 | edata.xdata.to_pickle('xdata_all_unscaled.p')
--------------------------------------------------------------------------------
/WindTurbine.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import datetime as dt
3 | import pandas as pd
4 |
5 | class EnerconWindTurbineData(object):
6 | """
7 | Imports the data and returns arrays of SCADA & status data by
8 | calling import_data().
9 |
10 | Parameters
11 | ----------
12 | scada_data_file: str, optional
13 | The raw SCADA data csv file.
14 | status_data_wec_file: str, optional
15 | The status/fault csv file for the WEC
16 | status_data_rtu_file: str, optional
17 | The status/fault csv file for the RTU
18 | warning_data_wec_file: str, optional
19 | The warning/information csv file for the WEC
20 | warning_data_rtu_file: str, optional
21 | The warning/information csv file for the RTU
22 |
23 | Notes
24 | -----
25 | Both status_data_wec.csv & status_data_rtu.csv originally come from
26 | pes_extrainfo.csv, filtered according to their plant number.
27 | SCADA_data.csv contains the wsd, 03d and 04d data files all
28 | combined together.
29 | """
30 |
31 | def __init__(
32 | self,
33 | scada_data_file='../Data/Source Data/SCADA_data.csv',
34 | status_data_wec_file='../Data/Source Data/status_data_wec.csv',
35 | status_data_rtu_file='../Data/Source Data/status_data_rtu.csv',
36 | warning_data_wec_file='../Data/Source Data/warning_data_wec.csv',
37 | warning_data_rtu_file='../Data/Source Data/warning_data_rtu.csv'):
38 |
39 | self.scada_data_file = scada_data_file
40 | self.status_data_wec_file = status_data_wec_file
41 | self.status_data_rtu_file = status_data_rtu_file
42 | self.warning_data_wec_file = warning_data_wec_file
43 | self.warning_data_rtu_file = warning_data_rtu_file
44 |
45 | # Pandas dataframe of the above
46 | self.status_data_wec = []
47 |
48 | # Pandas dataframe of all the scada data
49 | self.scada_data = []
50 | # Pandas dataframe of all the new features
51 | self.new_features = []
52 | # Pandas Series of labels
53 | self.ylabels = []
54 |
55 | """
56 | This imports the data, and returns arrays of SCADA, status &
57 | warning data. Dates are converted to unix time, and strings are
58 | encoded in the correct format (unicode). Two new fields,
59 | "Inverter_averages" and "Inverter_std_dev", are also added to
60 | the SCADA data. These are the average and standard deviation of
61 | all Inverter Temperature fields.
62 |
63 | WARNING: The data is not every 10 minutes. There are errors,
64 | large gaps in data, some values in between 10 minutes, and double values
65 | for the same time
66 |
67 | Set's the following fields
68 | -------
69 | self.scada_data: ndarray
70 | The imported and correctly formatted SCADA data
71 | self.status_data_wec: ndarray
72 | The imported and correctly formatted WEC status data
73 | self.status_data_rtu: ndarray
74 | The imported and correctly formatted RTU status data
75 | self.warning_data_wec: ndarray
76 | The imported and correctly formatted WEC warning data
77 | self.warning_data_rtu: ndarray
78 | The imported and correctly formatted RTU warning data
79 | """
80 | def import_data(self):
81 |
82 | self.scada_data = np.genfromtxt(
83 | open(self.scada_data_file, 'rb'), dtype=(
84 | ' 1:
187 | average = self.scada_data.iloc[start_of_dupes:i].mean()
188 | self.scada_data.iloc[start_of_dupes] = average
189 | start_of_dupes = i
190 | self.scada_data["___INDEX___"] = self.scada_data.index
191 | self.scada_data.drop_duplicates(subset="___INDEX___", keep="first", inplace=True)
192 | self.scada_data.drop("___INDEX___", axis=1, inplace=True)
193 |
194 | # Remove the faulty blade temps
195 | self.scada_data.drop(['CS101__Blade_A_temp', 'CS101__Blade_B_temp', 'CS101__Blade_C_temp'], axis=1, inplace=True)
196 |
197 | # Remove the faulty inverters
198 | self.scada_data.drop([ 'CS101__Sys_2_inverter_5_cabinet_temp', 'CS101__Sys_2_inverter_6_cabinet_temp','CS101__Sys_2_inverter_7_cabinet_temp'], axis=1, inplace=True)
199 | self.scada_data.drop(['WEC_Operating_Hours', 'WEC_Production_kWh', 'WEC_Production_minutes'], axis=1, inplace=True)
200 | self.scada_data.drop(['Error'], axis=1, inplace=True)
201 |
202 | '''
203 | Create new engineering features from the scada_data
204 | '''
205 | def create_new_features(self):
206 | # Create new dataframe for new features
207 | self.new_features = pd.DataFrame(index=self.scada_data.index)
208 |
209 | # Calculate averages
210 | self.new_features['Avg_Sys_1_inverters_cabinet_temp'] = self.scada_data[['CS101__Sys_1_inverter_1_cabinet_temp',
211 | 'CS101__Sys_1_inverter_2_cabinet_temp',
212 | 'CS101__Sys_1_inverter_3_cabinet_temp',
213 | 'CS101__Sys_1_inverter_4_cabinet_temp',
214 | 'CS101__Sys_1_inverter_5_cabinet_temp',
215 | 'CS101__Sys_1_inverter_6_cabinet_temp',
216 | 'CS101__Sys_1_inverter_7_cabinet_temp']].mean(axis=1)
217 |
218 | self.new_features['Avg_Sys_2_inverters_cabinet_temp'] = self.scada_data[['CS101__Sys_2_inverter_1_cabinet_temp',
219 | 'CS101__Sys_2_inverter_2_cabinet_temp',
220 | 'CS101__Sys_2_inverter_3_cabinet_temp',
221 | 'CS101__Sys_2_inverter_4_cabinet_temp']].mean(axis=1)
222 |
223 | self.new_features['Avg_bearing_temp'] = self.scada_data[['CS101__Front_bearing_temp', 'CS101__Rear_bearing_temp',]].mean(axis=1)
224 |
225 | self.new_features['Avg_pitch_cabinet_blade_temp'] = self.scada_data[['CS101__Pitch_cabinet_blade_A_temp',
226 | 'CS101__Pitch_cabinet_blade_B_temp',
227 | 'CS101__Pitch_cabinet_blade_C_temp',]].mean(axis=1)
228 |
229 | self.new_features['Avg_rotor_temp'] = self.scada_data[[ 'CS101__Rotor_temp_1',
230 | 'CS101__Rotor_temp_2']].mean(axis=1)
231 |
232 | self.new_features['Avg_stator_temp'] = self.scada_data[['CS101__Stator_temp_1', 'CS101__Stator_temp_2',]].mean(axis=1)
233 |
234 | self.new_features['Avg_nacelle_ambient_temp'] = self.scada_data[['CS101__Nacelle_ambient_temp_1',
235 | 'CS101__Nacelle_ambient_temp_2']].mean(axis=1)
236 |
237 | # Create features based on differences
238 |
239 | # Max and Min of (wind speed, rotation, power, reactive power)
240 | self.new_features['Dif_max_min_windspeed'] = self.scada_data['WEC__max_windspeed'] - self.scada_data['WEC__min_windspeed']
241 | self.new_features['Dif_max_min_rotation'] = self.scada_data['WEC_max_Rotation'] - self.scada_data['WEC_min_Rotation']
242 | self.new_features['Dif_max_min_Power'] = self.scada_data['WEC_max_Power'] - self.scada_data['WEC_min_Power']
243 | self.new_features['Dif_max_min_reactive_Power'] = self.scada_data['WEC_max_reactive_Power'] - self.scada_data['WEC_min_reactive_Power']
244 |
245 | # Max and Average of (wind speed, rotation, power, reactive power)
246 | self.new_features['Dif_max_avg_windspeed'] = self.scada_data['WEC__max_windspeed'] - self.scada_data['WEC_ava_windspeed']
247 | self.new_features['Dif_max_avg_rotation'] = self.scada_data['WEC_max_Rotation'] - self.scada_data['WEC_ava_Rotation']
248 | self.new_features['Dif_max_avg_Power'] = self.scada_data['WEC_max_Power'] - self.scada_data['WEC_ava_Power']
249 | self.new_features['Dif_max_avg_reactive_Power'] = self.scada_data['WEC_max_reactive_Power'] - self.scada_data['WEC_ava_reactive_Power']
250 |
251 | # Min and Average of (wind speed, rotation, power, reactive power)\\
252 | self.new_features['Dif_avg_min_windspeed'] = self.scada_data['WEC_ava_windspeed'] - self.scada_data['WEC__min_windspeed']
253 | self.new_features['Dif_avg_min_rotation'] = self.scada_data['WEC_ava_Rotation'] - self.scada_data['WEC_min_Rotation']
254 | self.new_features['Dif_avg_min_Power'] = self.scada_data['WEC_ava_Power'] - self.scada_data['WEC_min_Power']
255 | self.new_features['Dif_avg_min_reactive_Power'] = self.scada_data['WEC_ava_reactive_Power'] - self.scada_data['WEC_min_reactive_Power']
256 |
257 | # Available Power (from wind, technical reasons, force majeure reasons, force external reasons)\\
258 | self.new_features['Diff_P_wind_P_technical'] = self.scada_data['WEC_ava_available_P_from_wind'] - self.scada_data['WEC_ava_available_P_technical_reasons']
259 | self.new_features['Diff_P_wind_P_majeure'] = self.scada_data['WEC_ava_available_P_from_wind'] - self.scada_data['WEC_ava_Available_P_force_majeure_reasons']
260 | self.new_features['Diff_P_wind_P_technical'] = self.scada_data['WEC_ava_available_P_from_wind'] - self.scada_data['WEC_ava_Available_P_force_external_reasons']
261 | self.new_features['Diff_P_technical_P_majeure'] = self.scada_data['WEC_ava_available_P_technical_reasons'] - self.scada_data['WEC_ava_Available_P_force_majeure_reasons']
262 | self.new_features['Diff_P_technical_P_external'] = self.scada_data['WEC_ava_available_P_technical_reasons'] - self.scada_data['WEC_ava_Available_P_force_external_reasons']
263 | self.new_features['Diff_P_majeure_P_external'] = self.scada_data['WEC_ava_Available_P_force_majeure_reasons'] - self.scada_data['WEC_ava_Available_P_force_external_reasons']
264 |
265 | # Average Power and Available power (from wind, technical reasons, force majeure reasons, force external reasons)\\
266 | self.new_features['Diff_avg_Power_P_wind'] = self.scada_data['WEC_ava_Power'] - self.scada_data['WEC_ava_available_P_from_wind']
267 | self.new_features['Diff_avg_Power_P_wind'] = self.scada_data['WEC_ava_Power'] - self.scada_data['WEC_ava_available_P_technical_reasons']
268 | self.new_features['Diff_avg_Power_P_wind'] = self.scada_data['WEC_ava_Power'] - self.scada_data['WEC_ava_Available_P_force_majeure_reasons']
269 | self.new_features['Diff_avg_Power_P_wind'] = self.scada_data['WEC_ava_Power'] - self.scada_data['WEC_ava_Available_P_force_external_reasons']
270 |
271 | # Inverter Cabinet Temperatures
272 | # Inverter Cabinet Temperatures and Average Inverter Cabinet Temperature by system
273 | self.new_features['Diff_Avg_Sys_1_inverter_1'] = self.scada_data['CS101__Sys_1_inverter_1_cabinet_temp'] - self.new_features['Avg_Sys_1_inverters_cabinet_temp']
274 | self.new_features['Diff_Avg_Sys_1_inverter_2'] = self.scada_data['CS101__Sys_1_inverter_2_cabinet_temp'] - self.new_features['Avg_Sys_1_inverters_cabinet_temp']
275 | self.new_features['Diff_Avg_Sys_1_inverter_3'] = self.scada_data['CS101__Sys_1_inverter_3_cabinet_temp'] - self.new_features['Avg_Sys_1_inverters_cabinet_temp']
276 | self.new_features['Diff_Avg_Sys_1_inverter_4'] = self.scada_data['CS101__Sys_1_inverter_4_cabinet_temp'] - self.new_features['Avg_Sys_1_inverters_cabinet_temp']
277 | self.new_features['Diff_Avg_Sys_1_inverter_5'] = self.scada_data['CS101__Sys_1_inverter_5_cabinet_temp'] - self.new_features['Avg_Sys_1_inverters_cabinet_temp']
278 | self.new_features['Diff_Avg_Sys_1_inverter_6'] = self.scada_data['CS101__Sys_1_inverter_6_cabinet_temp'] - self.new_features['Avg_Sys_1_inverters_cabinet_temp']
279 | self.new_features['Diff_Avg_Sys_1_inverter_7'] = self.scada_data['CS101__Sys_1_inverter_7_cabinet_temp'] - self.new_features['Avg_Sys_1_inverters_cabinet_temp']
280 |
281 | self.new_features['Diff_Avg_Sys_2_inverter_1'] = self.scada_data['CS101__Sys_2_inverter_1_cabinet_temp'] - self.new_features['Avg_Sys_2_inverters_cabinet_temp']
282 | self.new_features['Diff_Avg_Sys_2_inverter_2'] = self.scada_data['CS101__Sys_2_inverter_2_cabinet_temp'] - self.new_features['Avg_Sys_2_inverters_cabinet_temp']
283 | self.new_features['Diff_Avg_Sys_2_inverter_3'] = self.scada_data['CS101__Sys_2_inverter_3_cabinet_temp'] - self.new_features['Avg_Sys_2_inverters_cabinet_temp']
284 | self.new_features['Diff_Avg_Sys_2_inverter_4'] = self.scada_data['CS101__Sys_2_inverter_4_cabinet_temp'] - self.new_features['Avg_Sys_2_inverters_cabinet_temp']
285 |
286 | # Front and Rear Bearing Temperature
287 | self.new_features['Diff_font_rear_bearing'] = self.scada_data['CS101__Front_bearing_temp'] - self.scada_data['CS101__Rear_bearing_temp']
288 |
289 | # Average Bearing Temperature and (Front and Rear Bearing Temperature)
290 | self.new_features['Diff_font_avg_bearing'] = self.scada_data['CS101__Front_bearing_temp'] - self.new_features['Avg_bearing_temp']
291 | self.new_features['Diff_rear_avg_bearing'] = self.scada_data['CS101__Rear_bearing_temp'] - self.new_features['Avg_bearing_temp']
292 |
293 | # Pitch Cabinet Blade Temperatures
294 | self.new_features['Diff_cabinet_A_B_temp']= self.scada_data['CS101__Pitch_cabinet_blade_A_temp'] - self.scada_data['CS101__Pitch_cabinet_blade_B_temp']
295 | self.new_features['Diff_cabinet_A_C_temp']= self.scada_data['CS101__Pitch_cabinet_blade_A_temp'] - self.scada_data['CS101__Pitch_cabinet_blade_C_temp']
296 | self.new_features['Diff_cabinet_B_C_temp']= self.scada_data['CS101__Pitch_cabinet_blade_B_temp'] - self.scada_data['CS101__Pitch_cabinet_blade_C_temp']
297 |
298 | # Average Pitch Cabinet Blade Temperature and Pitch Cabinet Blade Temperatures
299 | self.new_features['Diff_cabinet_A_avg_temp'] = self.scada_data['CS101__Pitch_cabinet_blade_A_temp'] - self.new_features['Avg_pitch_cabinet_blade_temp']
300 | self.new_features['Diff_cabinet_B_avg_temp'] = self.scada_data['CS101__Pitch_cabinet_blade_B_temp'] - self.new_features['Avg_pitch_cabinet_blade_temp']
301 | self.new_features['Diff_cabinet_C_avg_temp'] = self.scada_data['CS101__Pitch_cabinet_blade_C_temp'] - self.new_features['Avg_pitch_cabinet_blade_temp']
302 |
303 | # Rotor Temperatures
304 | self.new_features['Diff_rotor_temps'] = self.scada_data['CS101__Rotor_temp_1'] - self.scada_data['CS101__Rotor_temp_2']
305 |
306 | # Average Rotor Temperature and Rotor Temperatures
307 | self.new_features['Dif_rotor_1_avg_temps'] = self.scada_data['CS101__Rotor_temp_1'] - self.new_features['Avg_rotor_temp']
308 | self.new_features['Dif_rotor_2_avg_temps'] = self.scada_data['CS101__Rotor_temp_2'] - self.new_features['Avg_rotor_temp']
309 |
310 | # Stator Temperatures
311 | self.new_features['Diff_stator_temps'] = self.scada_data['CS101__Stator_temp_1'] - self.scada_data['CS101__Stator_temp_2']
312 |
313 | # Average Stator Temperature and Stator Temperatures
314 | self.new_features['Diff_stator_1_avg_temps'] = self.scada_data['CS101__Stator_temp_1'] - self.new_features['Avg_stator_temp']
315 | self.new_features['Diff_stator_2_avg_temps'] = self.scada_data['CS101__Stator_temp_2'] - self.new_features['Avg_stator_temp']
316 |
317 | # Nacelle Ambient Temperatures
318 | self.new_features['Diff_nacelle_ambient_temps'] = self.scada_data['CS101__Nacelle_ambient_temp_1'] - self.scada_data['CS101__Nacelle_ambient_temp_2']
319 |
320 | # Average Nacelle Ambient Temperatures and Nacelle Temperatures
321 | self.new_features['Diff_avg_nacelle_ambient_temp'] = self.scada_data['CS101__Nacelle_ambient_temp_1'] - self.new_features['Avg_nacelle_ambient_temp']
322 | self.new_features['Diff_avg_nacelle_ambient_temp'] = self.scada_data['CS101__Nacelle_ambient_temp_2'] - self.new_features['Avg_nacelle_ambient_temp']
323 |
324 | # Nacelle Temperature and Nacelle Cabinet Temperature
325 | self.new_features['Diff_nacelle_cabinet_temp'] = self.scada_data['CS101__Nacelle_temp'] - self.scada_data['CS101__Nacelle_cabinet_temp']
326 |
327 | # Ambient Temperature and (Nacelle Temperature, Nacelle Cabinet Temperatures, Main Carrier Temperature, Rectifier Temperature, Inverter Cabinet Temperature, Tower Temperature, Control Cabinet Temperature, Transformer Temperature)
328 | self.new_features['Diff_ambient_nacelle_temp'] = self.scada_data['CS101__Ambient_temp'] - self.scada_data['CS101__Nacelle_temp']
329 | self.new_features['Diff_ambient_nacelle_cabinet_temp'] = self.scada_data['CS101__Ambient_temp'] - self.scada_data['CS101__Nacelle_cabinet_temp']
330 | self.new_features['Diff_ambient_rectifier_temp'] = self.scada_data['CS101__Ambient_temp'] - self.scada_data['CS101__Rectifier_cabinet_temp']
331 | self.new_features['Diff_ambient_main_carrier_temp'] = self.scada_data['CS101__Ambient_temp'] - self.scada_data['CS101__Main_carrier_temp']
332 | self.new_features['Diff_ambient_yaw_inverter_cabinet_temp'] = self.scada_data['CS101__Ambient_temp'] - self.scada_data['CS101__Yaw_inverter_cabinet_temp']
333 | self.new_features['Diff_ambient_fan_inverter_cabinet_temp'] = self.scada_data['CS101__Ambient_temp'] - self.scada_data['CS101__Fan_inverter_cabinet_temp']
334 | self.new_features['Diff_ambient_tower_temp'] = self.scada_data['CS101__Ambient_temp'] - self.scada_data['CS101__Tower_temp']
335 | self.new_features['Diff_ambient_control_cabinet_temp'] = self.scada_data['CS101__Ambient_temp'] - self.scada_data['CS101__Control_cabinet_temp']
336 | self.new_features['Diff_ambient_transformer_temp'] = self.scada_data['CS101__Ambient_temp'] - self.scada_data['CS101__Transformer_temp']
337 |
338 | # Generator Temperature and Nacelle Temperature
339 | self.new_features['Diff_nacelle_stator_1_temp'] = self.scada_data['CS101__Nacelle_temp'] - self.scada_data['CS101__Stator_temp_1']
340 | self.new_features['Diff_nacelle_stator_2_temp'] = self.scada_data['CS101__Nacelle_temp'] - self.scada_data['CS101__Stator_temp_2']
341 | self.new_features['Diff_nacelle_rotor_1_temp'] = self.scada_data['CS101__Nacelle_temp'] - self.scada_data['CS101__Rotor_temp_1']
342 | self.new_features['Diff_nacelle_rotor_2_temp'] = self.scada_data['CS101__Nacelle_temp'] - self.scada_data['CS101__Rotor_temp_2']
343 |
344 | '''
345 | Create the mean and standard deviation features.
346 | These calculations take a long time
347 | '''
348 | def create_mean_std_features(self):
349 | """
350 | Calculate the 2hr mean and standard deviation for self.scada_data
351 | Saves the new features in self.mean_std
352 | """
353 | # Make a temporary new dataframe
354 | self.mean_std = pd.DataFrame(index=self.scada_data.index)
355 | temp_features = self.scada_data.copy()
356 | temp_features[:] = np.nan
357 | for time in self.scada_data.index: # Calculate the 2 hr average for the column
358 | if len(self.scada_data.loc[time-pd.Timedelta('2hr'):time])== 13:
359 | temp_features.loc[time] = self.scada_data.loc[time-pd.Timedelta('2hr'):time].mean(axis=0)
360 | # Rename the new columns
361 | new_column_names = []
362 | for name in self.scada_data.columns.values:
363 | if len(self.scada_data.loc[time-pd.Timedelta('2hr'):time])== 13:
364 | new_column_names.append("2hr_mean_" + name)
365 | temp_features.columns = new_column_names # Rename the columns
366 | # Join the temporary features with the new one
367 | self.mean_std = pd.concat([temp_features, self.mean_std], axis=1)
368 |
369 | # Make a temporary new dataframe
370 | temp_features = self.scada_data.copy()
371 | temp_features[:] = np.nan
372 | for time in self.scada_data.index: # Calculate the 2 hr average for the column
373 | temp_features.loc[time] = self.scada_data.loc[time-pd.Timedelta('2hr'):time].std()
374 | # Rename the new columns
375 | new_column_names = []
376 | for name in self.scada_data.columns.values:
377 | new_column_names.append("2hr_std_" + name)
378 | temp_features.columns = new_column_names # Rename the columns
379 | # Join the temporary features with the new one
380 | self.mean_std = pd.concat([temp_features, self.mean_std], axis=1)
381 |
382 | '''
383 | Include lagged variables of self.scada_data
384 | New features are saved in self.lagged_features
385 | '''
386 | def create_lagged_features(self, n):
387 |
388 | self.lagged_features = pd.DataFrame(index=self.scada_data.index)
389 |
390 | for i in range(1, n+1):
391 | self.temp_lagged_features = self.scada_data.copy()
392 |
393 | # Introduce the delay or lagged features
394 | self.temp_lagged_features.index = self.temp_lagged_features.index +pd.Timedelta(str(i*10) + 'm')
395 |
396 | # Rename the new columns
397 | new_column_names = []
398 | for name in self.scada_data.columns.values:
399 | new_column_names.append(str(name) + '_t-' + str(i*10) + 'min')
400 | self.temp_lagged_features.columns = new_column_names # Rename the columns
401 |
402 | self.lagged_features = pd.concat([self.lagged_features, self.temp_lagged_features], axis=1, join='inner')
403 |
404 | '''
405 | Creates a new pandas.Series with the same index as self.scada_data called self.ylabels
406 | self.ylabels = 0 except for the 5 main faults, whereby self.ylabels = Main Status
407 |
408 | Creates:
409 | self.ylabels
410 | '''
411 | def create_labels(self):
412 |
413 | fault_main_statuses = (80, 62, 228, 60, 9)
414 | self.ylabels = pd.Series(index = self.derived_features.index)
415 | self.ylabels[:] = 0
416 | for i in range(0, len(self.status_data_wec)):
417 | current_status = self.status_data_wec.iloc[i]['Main_Status']
418 | if current_status in fault_main_statuses:
419 | start_time = self.status_data_wec.iloc[i]['Time']
420 | if i == (len(self.status_data_wec)-1):
421 | self.ylabels[self.ylabels.index > start_time] = current_status
422 | else:
423 | end_time = self.status_data_wec.iloc[i+1]['Time']
424 | self.ylabels[(self.ylabels.index > start_time) & (self.ylabels.index < end_time)] = current_status
425 |
426 |
--------------------------------------------------------------------------------
/WindTurbine_fvsff_MIQ-10_cv1-run1.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {
7 | "collapsed": true
8 | },
9 | "outputs": [],
10 | "source": [
11 | "import pandas as pd\n",
12 | "import numpy as np\n",
13 | "import matplotlib.pyplot as plt\n",
14 | "% matplotlib inline\n",
15 | "import os\n",
16 | "\n",
17 | "from sklearn import cross_validation as cval\n",
18 | "#from sklearn import utils\n",
19 | "from sklearn.grid_search import GridSearchCV, RandomizedSearchCV\n",
20 | "from sklearn.metrics import classification_report, confusion_matrix\n",
21 | "from sklearn.svm import SVC\n",
22 | "import pickle"
23 | ]
24 | },
25 | {
26 | "cell_type": "code",
27 | "execution_count": 2,
28 | "metadata": {
29 | "collapsed": true
30 | },
31 | "outputs": [],
32 | "source": [
33 | "# Manipulated Variables\n",
34 | "num_features = 10\n",
35 | "selection_method = 'MIQ'\n",
36 | "CV_test_number = 1\n",
37 | "run_num = 1\n",
38 | "output_filename = 'WindTurbine_fvsff_MIQ-' + str(num_features) + '_cv' + str(CV_test_number) + '-run' + str(run_num)"
39 | ]
40 | },
41 | {
42 | "cell_type": "code",
43 | "execution_count": 3,
44 | "metadata": {
45 | "collapsed": false
46 | },
47 | "outputs": [],
48 | "source": [
49 | "# Import training data\n",
50 | "train_filename = '../Data/PickleFiles/3_labels_cv/training_data_cv' + str(CV_test_number) + '.p'\n",
51 | "x_train = pd.read_pickle(train_filename)\n",
52 | "\n",
53 | "train_filename = '../Data//PickleFiles/3_labels_cv/training_data_cv' + str(CV_test_number) + 'labelweights.p'\n",
54 | "labelsweights = pd.read_pickle(train_filename)\n",
55 | "x_train['__weight__'] = labelsweights['__weight__']\n",
56 | "x_train['__label__'] = labelsweights['__label__']\n",
57 | "\n",
58 | "# Shuffle the data\n",
59 | "x_train = x_train.sample(frac=1, random_state=324351369)\n",
60 | "\n",
61 | "# Remove out the labels, weights, and x_train data\n",
62 | "y_train = x_train['__label__'].copy()\n",
63 | "x_train_sample_weights = x_train['__weight__'].copy()\n",
64 | "x_train.drop(['__label__', '__weight__'], 1, inplace=True)\n",
65 | "\n",
66 | "# Import testing data\n",
67 | "test_filename = '../Data/PickleFiles/3_labels_cv/testing_data_cv' + str(CV_test_number) + '.p'\n",
68 | "x_test = pd.read_pickle(test_filename)\n",
69 | "\n",
70 | "test_filename = '../Data/PickleFiles/3_labels_cv/testing_data_cv' + str(CV_test_number) + 'labelweights.p'\n",
71 | "labelsweights = pd.read_pickle(test_filename)\n",
72 | "y_test = labelsweights['__label__'].copy()\n",
73 | "\n",
74 | "del labelsweights\n",
75 | "\n",
76 | "# Import the feature rankings\n",
77 | "feature_filepath = '../Code-WindTurbine2/windturbine_fvsff_' + 'MIQ-first100.txt'\n",
78 | "features = pd.read_csv(feature_filepath, delimiter=' \t ', header=2, engine='python')['Name']"
79 | ]
80 | },
81 | {
82 | "cell_type": "code",
83 | "execution_count": 4,
84 | "metadata": {
85 | "collapsed": false
86 | },
87 | "outputs": [
88 | {
89 | "name": "stdout",
90 | "output_type": "stream",
91 | "text": [
92 | "train_filename is: \n",
93 | "../Data//PickleFiles/3_labels_cv/training_data_cv1labelweights.p\n",
94 | "\n",
95 | "test_filename is: \n",
96 | "../Data/PickleFiles/3_labels_cv/testing_data_cv1labelweights.p\n",
97 | "\n",
98 | "output_filename is: \n",
99 | "WindTurbine_fvsff_MIQ-10_cv1-run1\n",
100 | "\n"
101 | ]
102 | }
103 | ],
104 | "source": [
105 | "print(\"train_filename is: \\n%s\\n\" % train_filename)\n",
106 | "print(\"test_filename is: \\n%s\\n\" % test_filename)\n",
107 | "print(\"output_filename is: \\n%s\\n\" % output_filename)"
108 | ]
109 | },
110 | {
111 | "cell_type": "code",
112 | "execution_count": 7,
113 | "metadata": {
114 | "collapsed": false
115 | },
116 | "outputs": [],
117 | "source": [
118 | "def CVTrainAndScore(X_train, y_train, X_test, y_test, weights, output_filename, search_type=RandomizedSearchCV,\n",
119 | " tuned_parameters={\n",
120 | " 'kernel': ['linear', 'poly', 'rbf', 'sigmoid'], 'gamma': ['auto', 1e-3, 1e-4],\n",
121 | " 'C': [0.01, .1, 1, 10, 100, 1000]},\n",
122 | " #'class_weight':['balanced'],\n",
123 | " scores=['f1']):\n",
124 | " \n",
125 | " for score in scores:\n",
126 | " print(\"# Tuning hyper-parameters for %s \\n\" % score)\n",
127 | "\n",
128 | " # Find the hyperparameters\n",
129 | " clf = search_type(SVC(), tuned_parameters, fit_params={\"sample_weight\":weights}, cv=10, scoring='%s_weighted' % score, verbose=200)\n",
130 | " \n",
131 | " # Train the SVM\n",
132 | " clf.fit(X_train, y_train)\n",
133 | "\n",
134 | " print(\"\\nBest parameters set found on development set: \\n\")\n",
135 | " print(clf.best_params_)\n",
136 | "\n",
137 | " print(\"\\nGrid scores on development set:\\n\")\n",
138 | " for params, mean_score, scores in clf.grid_scores_:\n",
139 | " print(\"%0.3f (+/-%0.03f) for %r\"\n",
140 | " % (mean_score, scores.std() * 2, params))\n",
141 | "\n",
142 | " print(\"\\nDetailed classification report:\\n\")\n",
143 | "\n",
144 | "\n",
145 | " # Make the predictions on training set\n",
146 | " y_true, y_pred = y_train, clf.predict(X_train)\n",
147 | " print('Report on Training Set')\n",
148 | " print(classification_report(y_true, y_pred))\n",
149 | " print()\n",
150 | " # Evaluate the SVM using Confusion Matrix\n",
151 | " cm = confusion_matrix(y_true, y_pred)\n",
152 | " print(cm)\n",
153 | " cm_normalized = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
154 | " # Also print specificity metric\n",
155 | " print(\"Specificity:\", cm[0, 0] / (cm[0, 1] + cm[0, 0]))\n",
156 | "\n",
157 | " # Make the predictions on the test set\n",
158 | " y_true, y_pred = y_test, clf.predict(X_test)\n",
159 | " print('Report on Test Set\\n')\n",
160 | " print(classification_report(y_true, y_pred))\n",
161 | " print()\n",
162 | " # Evaluate the SVM using Confusion Matrix\n",
163 | " cm = confusion_matrix(y_true, y_pred)\n",
164 | " print(cm)\n",
165 | " cm_normalized = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
166 | " # Also print specificity metric\n",
167 | " print(\"Specificity:\", cm[0, 0] / (cm[0, 1] + cm[0, 0]))\n",
168 | " \n",
169 | " # plot the confusion matrices\n",
170 | " plot = plot_confusion_matrix(cm_normalized)\n",
171 | " \n",
172 | " print(clf.best_params_)\n",
173 | " f=open(output_filename+score+'.p', 'wb')\n",
174 | " pickle.dump(clf, f)\n",
175 | " f.close()\n",
176 | " \n",
177 | " \n",
178 | "def plot_confusion_matrix(cm):\n",
179 | " title='Confusion matrix',\n",
180 | " cmap=plt.cm.Blues\n",
181 | " labels=['No-Fault', 'Fault']\n",
182 | " \n",
183 | " plot = plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
184 | " plt.title(title)\n",
185 | " plt.colorbar()\n",
186 | " tick_marks = np.arange(len(labels))\n",
187 | " plt.xticks(tick_marks, labels, rotation=45)\n",
188 | " plt.yticks(tick_marks, labels)\n",
189 | " # plt.tight_layout()\n",
190 | " plt.ylabel('True label')\n",
191 | " plt.xlabel('Predicted label')\n",
192 | " plt.show()"
193 | ]
194 | },
195 | {
196 | "cell_type": "code",
197 | "execution_count": 8,
198 | "metadata": {
199 | "collapsed": false
200 | },
201 | "outputs": [
202 | {
203 | "name": "stdout",
204 | "output_type": "stream",
205 | "text": [
206 | "# Tuning hyper-parameters for f1 \n",
207 | "\n",
208 | "Fitting 10 folds for each of 10 candidates, totalling 100 fits\n",
209 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n",
210 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=0.996327 - 0.0s\n",
211 | "[Parallel(n_jobs=1)]: Done 1 tasks | elapsed: 0.0s\n",
212 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n",
213 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=0.997961 - 0.0s\n",
214 | "[Parallel(n_jobs=1)]: Done 2 tasks | elapsed: 0.1s\n",
215 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n",
216 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=0.994839 - 0.0s\n",
217 | "[Parallel(n_jobs=1)]: Done 3 tasks | elapsed: 0.1s\n",
218 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n",
219 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=0.997956 - 0.0s\n",
220 | "[Parallel(n_jobs=1)]: Done 4 tasks | elapsed: 0.2s\n",
221 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n"
222 | ]
223 | },
224 | {
225 | "name": "stderr",
226 | "output_type": "stream",
227 | "text": [
228 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/cross_validation.py:516: Warning: The least populated class in y has only 6 members, which is too few. The minimum number of labels for any class cannot be less than n_folds=10.\n",
229 | " % (min_labels, self.n_folds)), Warning)\n"
230 | ]
231 | },
232 | {
233 | "name": "stdout",
234 | "output_type": "stream",
235 | "text": [
236 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=0.997956 - 0.0s\n",
237 | "[Parallel(n_jobs=1)]: Done 5 tasks | elapsed: 0.2s\n",
238 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n",
239 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=1.000000 - 0.0s\n",
240 | "[Parallel(n_jobs=1)]: Done 6 tasks | elapsed: 0.2s\n",
241 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n",
242 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=0.996301 - 0.0s\n",
243 | "[Parallel(n_jobs=1)]: Done 7 tasks | elapsed: 0.3s\n",
244 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n",
245 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=0.996301 - 0.0s\n",
246 | "[Parallel(n_jobs=1)]: Done 8 tasks | elapsed: 0.3s\n",
247 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n",
248 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=1.000000 - 0.0s\n",
249 | "[Parallel(n_jobs=1)]: Done 9 tasks | elapsed: 0.4s\n",
250 | "[CV] gamma=auto, kernel=rbf, C=10 ....................................\n",
251 | "[CV] ........... gamma=auto, kernel=rbf, C=10, score=0.993820 - 0.0s\n",
252 | "[Parallel(n_jobs=1)]: Done 10 tasks | elapsed: 0.4s\n",
253 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
254 | ]
255 | },
256 | {
257 | "name": "stderr",
258 | "output_type": "stream",
259 | "text": [
260 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
261 | " 'recall', 'true', average, warn_for)\n",
262 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
263 | " 'recall', 'true', average, warn_for)\n",
264 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
265 | " 'recall', 'true', average, warn_for)\n",
266 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
267 | " 'precision', 'predicted', average, warn_for)\n"
268 | ]
269 | },
270 | {
271 | "name": "stdout",
272 | "output_type": "stream",
273 | "text": [
274 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.996334 - 0.5s\n",
275 | "[Parallel(n_jobs=1)]: Done 11 tasks | elapsed: 0.9s\n",
276 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
277 | ]
278 | },
279 | {
280 | "name": "stderr",
281 | "output_type": "stream",
282 | "text": [
283 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
284 | " 'precision', 'predicted', average, warn_for)\n"
285 | ]
286 | },
287 | {
288 | "name": "stdout",
289 | "output_type": "stream",
290 | "text": [
291 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.996334 - 0.5s\n",
292 | "[Parallel(n_jobs=1)]: Done 12 tasks | elapsed: 1.5s\n",
293 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
294 | ]
295 | },
296 | {
297 | "name": "stderr",
298 | "output_type": "stream",
299 | "text": [
300 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
301 | " 'precision', 'predicted', average, warn_for)\n"
302 | ]
303 | },
304 | {
305 | "name": "stdout",
306 | "output_type": "stream",
307 | "text": [
308 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.996325 - 0.5s\n",
309 | "[Parallel(n_jobs=1)]: Done 13 tasks | elapsed: 2.0s\n",
310 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
311 | ]
312 | },
313 | {
314 | "name": "stderr",
315 | "output_type": "stream",
316 | "text": [
317 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
318 | " 'precision', 'predicted', average, warn_for)\n"
319 | ]
320 | },
321 | {
322 | "name": "stdout",
323 | "output_type": "stream",
324 | "text": [
325 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.996325 - 0.5s\n",
326 | "[Parallel(n_jobs=1)]: Done 14 tasks | elapsed: 2.6s\n",
327 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
328 | ]
329 | },
330 | {
331 | "name": "stderr",
332 | "output_type": "stream",
333 | "text": [
334 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
335 | " 'precision', 'predicted', average, warn_for)\n"
336 | ]
337 | },
338 | {
339 | "name": "stdout",
340 | "output_type": "stream",
341 | "text": [
342 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.996325 - 0.5s\n",
343 | "[Parallel(n_jobs=1)]: Done 15 tasks | elapsed: 3.1s\n",
344 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
345 | ]
346 | },
347 | {
348 | "name": "stderr",
349 | "output_type": "stream",
350 | "text": [
351 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
352 | " 'precision', 'predicted', average, warn_for)\n"
353 | ]
354 | },
355 | {
356 | "name": "stdout",
357 | "output_type": "stream",
358 | "text": [
359 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.996325 - 0.5s\n",
360 | "[Parallel(n_jobs=1)]: Done 16 tasks | elapsed: 3.6s\n",
361 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
362 | ]
363 | },
364 | {
365 | "name": "stderr",
366 | "output_type": "stream",
367 | "text": [
368 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
369 | " 'precision', 'predicted', average, warn_for)\n",
370 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
371 | " 'recall', 'true', average, warn_for)\n"
372 | ]
373 | },
374 | {
375 | "name": "stdout",
376 | "output_type": "stream",
377 | "text": [
378 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.000000 - 0.6s\n",
379 | "[Parallel(n_jobs=1)]: Done 17 tasks | elapsed: 4.2s\n",
380 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
381 | ]
382 | },
383 | {
384 | "name": "stderr",
385 | "output_type": "stream",
386 | "text": [
387 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
388 | " 'precision', 'predicted', average, warn_for)\n",
389 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
390 | " 'recall', 'true', average, warn_for)\n"
391 | ]
392 | },
393 | {
394 | "name": "stdout",
395 | "output_type": "stream",
396 | "text": [
397 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.000000 - 0.6s\n",
398 | "[Parallel(n_jobs=1)]: Done 18 tasks | elapsed: 4.7s\n",
399 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
400 | ]
401 | },
402 | {
403 | "name": "stderr",
404 | "output_type": "stream",
405 | "text": [
406 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
407 | " 'precision', 'predicted', average, warn_for)\n",
408 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
409 | " 'recall', 'true', average, warn_for)\n"
410 | ]
411 | },
412 | {
413 | "name": "stdout",
414 | "output_type": "stream",
415 | "text": [
416 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.000000 - 0.6s\n",
417 | "[Parallel(n_jobs=1)]: Done 19 tasks | elapsed: 5.3s\n",
418 | "[CV] gamma=auto, kernel=sigmoid, C=1 .................................\n"
419 | ]
420 | },
421 | {
422 | "name": "stderr",
423 | "output_type": "stream",
424 | "text": [
425 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
426 | " 'precision', 'predicted', average, warn_for)\n",
427 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
428 | " 'recall', 'true', average, warn_for)\n"
429 | ]
430 | },
431 | {
432 | "name": "stdout",
433 | "output_type": "stream",
434 | "text": [
435 | "[CV] ........ gamma=auto, kernel=sigmoid, C=1, score=0.000000 - 0.6s\n",
436 | "[Parallel(n_jobs=1)]: Done 20 tasks | elapsed: 5.8s\n",
437 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n",
438 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.520482 - 1.0s\n",
439 | "[Parallel(n_jobs=1)]: Done 21 tasks | elapsed: 6.9s\n",
440 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n",
441 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.520482 - 1.0s\n",
442 | "[Parallel(n_jobs=1)]: Done 22 tasks | elapsed: 7.9s\n",
443 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n",
444 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.529404 - 1.0s\n",
445 | "[Parallel(n_jobs=1)]: Done 23 tasks | elapsed: 8.9s\n",
446 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n",
447 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.474507 - 1.0s\n",
448 | "[Parallel(n_jobs=1)]: Done 24 tasks | elapsed: 9.9s\n",
449 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n",
450 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.507928 - 1.0s\n",
451 | "[Parallel(n_jobs=1)]: Done 25 tasks | elapsed: 10.9s\n",
452 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n",
453 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.499711 - 1.0s\n",
454 | "[Parallel(n_jobs=1)]: Done 26 tasks | elapsed: 12.0s\n",
455 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n"
456 | ]
457 | },
458 | {
459 | "name": "stderr",
460 | "output_type": "stream",
461 | "text": [
462 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
463 | " 'recall', 'true', average, warn_for)\n"
464 | ]
465 | },
466 | {
467 | "name": "stdout",
468 | "output_type": "stream",
469 | "text": [
470 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.511883 - 1.0s\n",
471 | "[Parallel(n_jobs=1)]: Done 27 tasks | elapsed: 13.0s\n",
472 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n"
473 | ]
474 | },
475 | {
476 | "name": "stderr",
477 | "output_type": "stream",
478 | "text": [
479 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
480 | " 'recall', 'true', average, warn_for)\n"
481 | ]
482 | },
483 | {
484 | "name": "stdout",
485 | "output_type": "stream",
486 | "text": [
487 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.492593 - 0.9s\n",
488 | "[Parallel(n_jobs=1)]: Done 28 tasks | elapsed: 13.9s\n",
489 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n"
490 | ]
491 | },
492 | {
493 | "name": "stderr",
494 | "output_type": "stream",
495 | "text": [
496 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
497 | " 'recall', 'true', average, warn_for)\n"
498 | ]
499 | },
500 | {
501 | "name": "stdout",
502 | "output_type": "stream",
503 | "text": [
504 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.530686 - 1.0s\n",
505 | "[Parallel(n_jobs=1)]: Done 29 tasks | elapsed: 14.9s\n",
506 | "[CV] gamma=0.001, kernel=rbf, C=0.1 ..................................\n"
507 | ]
508 | },
509 | {
510 | "name": "stderr",
511 | "output_type": "stream",
512 | "text": [
513 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
514 | " 'recall', 'true', average, warn_for)\n"
515 | ]
516 | },
517 | {
518 | "name": "stdout",
519 | "output_type": "stream",
520 | "text": [
521 | "[CV] ......... gamma=0.001, kernel=rbf, C=0.1, score=0.535971 - 1.0s\n",
522 | "[Parallel(n_jobs=1)]: Done 30 tasks | elapsed: 15.9s\n",
523 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n",
524 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.994852 - 0.2s\n",
525 | "[Parallel(n_jobs=1)]: Done 31 tasks | elapsed: 16.0s\n",
526 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n",
527 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.993456 - 0.1s\n",
528 | "[Parallel(n_jobs=1)]: Done 32 tasks | elapsed: 16.2s\n",
529 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n",
530 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.996317 - 0.1s\n",
531 | "[Parallel(n_jobs=1)]: Done 33 tasks | elapsed: 16.3s\n",
532 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n",
533 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.993440 - 0.1s\n",
534 | "[Parallel(n_jobs=1)]: Done 34 tasks | elapsed: 16.5s\n",
535 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n",
536 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.996317 - 0.1s\n",
537 | "[Parallel(n_jobs=1)]: Done 35 tasks | elapsed: 16.6s\n",
538 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n",
539 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.996317 - 0.1s\n",
540 | "[Parallel(n_jobs=1)]: Done 36 tasks | elapsed: 16.7s\n",
541 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n",
542 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.996301 - 0.2s\n",
543 | "[Parallel(n_jobs=1)]: Done 37 tasks | elapsed: 16.9s\n",
544 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n"
545 | ]
546 | },
547 | {
548 | "name": "stderr",
549 | "output_type": "stream",
550 | "text": [
551 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
552 | " 'recall', 'true', average, warn_for)\n",
553 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
554 | " 'recall', 'true', average, warn_for)\n"
555 | ]
556 | },
557 | {
558 | "name": "stdout",
559 | "output_type": "stream",
560 | "text": [
561 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.992574 - 0.2s\n",
562 | "[Parallel(n_jobs=1)]: Done 38 tasks | elapsed: 17.1s\n",
563 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n",
564 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.995062 - 0.1s\n",
565 | "[Parallel(n_jobs=1)]: Done 39 tasks | elapsed: 17.3s\n",
566 | "[CV] gamma=0.001, kernel=linear, C=1000 ..............................\n"
567 | ]
568 | },
569 | {
570 | "name": "stderr",
571 | "output_type": "stream",
572 | "text": [
573 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
574 | " 'recall', 'true', average, warn_for)\n",
575 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
576 | " 'recall', 'true', average, warn_for)\n"
577 | ]
578 | },
579 | {
580 | "name": "stdout",
581 | "output_type": "stream",
582 | "text": [
583 | "[CV] ..... gamma=0.001, kernel=linear, C=1000, score=0.992574 - 0.1s\n",
584 | "[Parallel(n_jobs=1)]: Done 40 tasks | elapsed: 17.4s\n",
585 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n",
586 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.980447 - 0.1s\n",
587 | "[Parallel(n_jobs=1)]: Done 41 tasks | elapsed: 17.5s\n",
588 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n",
589 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.985586 - 0.1s\n",
590 | "[Parallel(n_jobs=1)]: Done 42 tasks | elapsed: 17.6s\n",
591 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n",
592 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.984261 - 0.1s\n",
593 | "[Parallel(n_jobs=1)]: Done 43 tasks | elapsed: 17.8s\n",
594 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n",
595 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.985550 - 0.1s\n",
596 | "[Parallel(n_jobs=1)]: Done 44 tasks | elapsed: 17.9s\n",
597 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n",
598 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.982973 - 0.1s\n",
599 | "[Parallel(n_jobs=1)]: Done 45 tasks | elapsed: 18.0s\n",
600 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n",
601 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.980398 - 0.1s\n",
602 | "[Parallel(n_jobs=1)]: Done 46 tasks | elapsed: 18.1s\n",
603 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n",
604 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.985037 - 0.1s\n",
605 | "[Parallel(n_jobs=1)]: Done 47 tasks | elapsed: 18.3s\n",
606 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n"
607 | ]
608 | },
609 | {
610 | "name": "stderr",
611 | "output_type": "stream",
612 | "text": [
613 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
614 | " 'recall', 'true', average, warn_for)\n",
615 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
616 | " 'recall', 'true', average, warn_for)\n"
617 | ]
618 | },
619 | {
620 | "name": "stdout",
621 | "output_type": "stream",
622 | "text": [
623 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.973518 - 0.1s\n",
624 | "[Parallel(n_jobs=1)]: Done 48 tasks | elapsed: 18.4s\n",
625 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n",
626 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.985037 - 0.1s\n",
627 | "[Parallel(n_jobs=1)]: Done 49 tasks | elapsed: 18.5s\n",
628 | "[CV] gamma=0.001, kernel=sigmoid, C=100 ..............................\n"
629 | ]
630 | },
631 | {
632 | "name": "stderr",
633 | "output_type": "stream",
634 | "text": [
635 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
636 | " 'recall', 'true', average, warn_for)\n",
637 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
638 | " 'recall', 'true', average, warn_for)\n"
639 | ]
640 | },
641 | {
642 | "name": "stdout",
643 | "output_type": "stream",
644 | "text": [
645 | "[CV] ..... gamma=0.001, kernel=sigmoid, C=100, score=0.976101 - 0.1s\n",
646 | "[Parallel(n_jobs=1)]: Done 50 tasks | elapsed: 18.6s\n",
647 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
648 | ]
649 | },
650 | {
651 | "name": "stderr",
652 | "output_type": "stream",
653 | "text": [
654 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
655 | " 'precision', 'predicted', average, warn_for)\n"
656 | ]
657 | },
658 | {
659 | "name": "stdout",
660 | "output_type": "stream",
661 | "text": [
662 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.996334 - 1.0s\n",
663 | "[Parallel(n_jobs=1)]: Done 51 tasks | elapsed: 19.7s\n",
664 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
665 | ]
666 | },
667 | {
668 | "name": "stderr",
669 | "output_type": "stream",
670 | "text": [
671 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
672 | " 'precision', 'predicted', average, warn_for)\n"
673 | ]
674 | },
675 | {
676 | "name": "stdout",
677 | "output_type": "stream",
678 | "text": [
679 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.996334 - 1.0s\n",
680 | "[Parallel(n_jobs=1)]: Done 52 tasks | elapsed: 20.7s\n",
681 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
682 | ]
683 | },
684 | {
685 | "name": "stderr",
686 | "output_type": "stream",
687 | "text": [
688 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
689 | " 'precision', 'predicted', average, warn_for)\n"
690 | ]
691 | },
692 | {
693 | "name": "stdout",
694 | "output_type": "stream",
695 | "text": [
696 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.996325 - 1.0s\n",
697 | "[Parallel(n_jobs=1)]: Done 53 tasks | elapsed: 21.8s\n",
698 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
699 | ]
700 | },
701 | {
702 | "name": "stderr",
703 | "output_type": "stream",
704 | "text": [
705 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
706 | " 'precision', 'predicted', average, warn_for)\n"
707 | ]
708 | },
709 | {
710 | "name": "stdout",
711 | "output_type": "stream",
712 | "text": [
713 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.996325 - 1.0s\n",
714 | "[Parallel(n_jobs=1)]: Done 54 tasks | elapsed: 22.8s\n",
715 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
716 | ]
717 | },
718 | {
719 | "name": "stderr",
720 | "output_type": "stream",
721 | "text": [
722 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
723 | " 'precision', 'predicted', average, warn_for)\n"
724 | ]
725 | },
726 | {
727 | "name": "stdout",
728 | "output_type": "stream",
729 | "text": [
730 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.996325 - 1.0s\n",
731 | "[Parallel(n_jobs=1)]: Done 55 tasks | elapsed: 23.8s\n",
732 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
733 | ]
734 | },
735 | {
736 | "name": "stderr",
737 | "output_type": "stream",
738 | "text": [
739 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
740 | " 'precision', 'predicted', average, warn_for)\n"
741 | ]
742 | },
743 | {
744 | "name": "stdout",
745 | "output_type": "stream",
746 | "text": [
747 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.996325 - 1.0s\n",
748 | "[Parallel(n_jobs=1)]: Done 56 tasks | elapsed: 24.9s\n",
749 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
750 | ]
751 | },
752 | {
753 | "name": "stderr",
754 | "output_type": "stream",
755 | "text": [
756 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
757 | " 'precision', 'predicted', average, warn_for)\n",
758 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
759 | " 'recall', 'true', average, warn_for)\n"
760 | ]
761 | },
762 | {
763 | "name": "stdout",
764 | "output_type": "stream",
765 | "text": [
766 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.000000 - 1.1s\n",
767 | "[Parallel(n_jobs=1)]: Done 57 tasks | elapsed: 26.0s\n",
768 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
769 | ]
770 | },
771 | {
772 | "name": "stderr",
773 | "output_type": "stream",
774 | "text": [
775 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
776 | " 'precision', 'predicted', average, warn_for)\n",
777 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
778 | " 'recall', 'true', average, warn_for)\n"
779 | ]
780 | },
781 | {
782 | "name": "stdout",
783 | "output_type": "stream",
784 | "text": [
785 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.000000 - 1.1s\n",
786 | "[Parallel(n_jobs=1)]: Done 58 tasks | elapsed: 27.1s\n",
787 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
788 | ]
789 | },
790 | {
791 | "name": "stderr",
792 | "output_type": "stream",
793 | "text": [
794 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
795 | " 'precision', 'predicted', average, warn_for)\n",
796 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
797 | " 'recall', 'true', average, warn_for)\n"
798 | ]
799 | },
800 | {
801 | "name": "stdout",
802 | "output_type": "stream",
803 | "text": [
804 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.000000 - 1.1s\n",
805 | "[Parallel(n_jobs=1)]: Done 59 tasks | elapsed: 28.2s\n",
806 | "[CV] gamma=0.0001, kernel=rbf, C=0.1 .................................\n"
807 | ]
808 | },
809 | {
810 | "name": "stderr",
811 | "output_type": "stream",
812 | "text": [
813 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1074: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
814 | " 'precision', 'predicted', average, warn_for)\n",
815 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
816 | " 'recall', 'true', average, warn_for)\n"
817 | ]
818 | },
819 | {
820 | "name": "stdout",
821 | "output_type": "stream",
822 | "text": [
823 | "[CV] ........ gamma=0.0001, kernel=rbf, C=0.1, score=0.000000 - 1.1s\n",
824 | "[Parallel(n_jobs=1)]: Done 60 tasks | elapsed: 29.3s\n",
825 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n",
826 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.992103 - 0.0s\n",
827 | "[Parallel(n_jobs=1)]: Done 61 tasks | elapsed: 29.4s\n",
828 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n",
829 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.993456 - 0.0s\n",
830 | "[Parallel(n_jobs=1)]: Done 62 tasks | elapsed: 29.4s\n",
831 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n",
832 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.996317 - 0.0s\n",
833 | "[Parallel(n_jobs=1)]: Done 63 tasks | elapsed: 29.5s\n",
834 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n",
835 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.990754 - 0.0s\n",
836 | "[Parallel(n_jobs=1)]: Done 64 tasks | elapsed: 29.5s\n",
837 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n",
838 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.993440 - 0.0s\n",
839 | "[Parallel(n_jobs=1)]: Done 65 tasks | elapsed: 29.6s\n",
840 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n",
841 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.994839 - 0.0s\n",
842 | "[Parallel(n_jobs=1)]: Done 66 tasks | elapsed: 29.6s\n",
843 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n",
844 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.996301 - 0.0s\n",
845 | "[Parallel(n_jobs=1)]: Done 67 tasks | elapsed: 29.7s\n",
846 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n"
847 | ]
848 | },
849 | {
850 | "name": "stderr",
851 | "output_type": "stream",
852 | "text": [
853 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
854 | " 'recall', 'true', average, warn_for)\n",
855 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
856 | " 'recall', 'true', average, warn_for)\n",
857 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
858 | " 'recall', 'true', average, warn_for)\n",
859 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
860 | " 'recall', 'true', average, warn_for)\n"
861 | ]
862 | },
863 | {
864 | "name": "stdout",
865 | "output_type": "stream",
866 | "text": [
867 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.991326 - 0.0s\n",
868 | "[Parallel(n_jobs=1)]: Done 68 tasks | elapsed: 29.7s\n",
869 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n",
870 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.995062 - 0.0s\n",
871 | "[Parallel(n_jobs=1)]: Done 69 tasks | elapsed: 29.8s\n",
872 | "[CV] gamma=0.001, kernel=linear, C=10 ................................\n",
873 | "[CV] ....... gamma=0.001, kernel=linear, C=10, score=0.992574 - 0.0s\n",
874 | "[Parallel(n_jobs=1)]: Done 70 tasks | elapsed: 29.8s\n",
875 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n",
876 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.980447 - 0.1s\n",
877 | "[Parallel(n_jobs=1)]: Done 71 tasks | elapsed: 29.9s\n",
878 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n",
879 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.988167 - 0.1s\n",
880 | "[Parallel(n_jobs=1)]: Done 72 tasks | elapsed: 30.0s\n",
881 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n",
882 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.988138 - 0.1s\n",
883 | "[Parallel(n_jobs=1)]: Done 73 tasks | elapsed: 30.1s\n",
884 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n",
885 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.985550 - 0.1s\n",
886 | "[Parallel(n_jobs=1)]: Done 74 tasks | elapsed: 30.2s\n",
887 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n",
888 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.984261 - 0.1s\n",
889 | "[Parallel(n_jobs=1)]: Done 75 tasks | elapsed: 30.3s\n",
890 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n",
891 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.984261 - 0.1s\n",
892 | "[Parallel(n_jobs=1)]: Done 76 tasks | elapsed: 30.4s\n",
893 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n"
894 | ]
895 | },
896 | {
897 | "name": "stderr",
898 | "output_type": "stream",
899 | "text": [
900 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
901 | " 'recall', 'true', average, warn_for)\n",
902 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
903 | " 'recall', 'true', average, warn_for)\n",
904 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
905 | " 'recall', 'true', average, warn_for)\n"
906 | ]
907 | },
908 | {
909 | "name": "stdout",
910 | "output_type": "stream",
911 | "text": [
912 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.985037 - 0.1s\n",
913 | "[Parallel(n_jobs=1)]: Done 77 tasks | elapsed: 30.5s\n",
914 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n",
915 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.978670 - 0.1s\n",
916 | "[Parallel(n_jobs=1)]: Done 78 tasks | elapsed: 30.6s\n",
917 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n",
918 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.991326 - 0.1s\n",
919 | "[Parallel(n_jobs=1)]: Done 79 tasks | elapsed: 30.7s\n",
920 | "[CV] gamma=0.001, kernel=rbf, C=100 ..................................\n"
921 | ]
922 | },
923 | {
924 | "name": "stderr",
925 | "output_type": "stream",
926 | "text": [
927 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
928 | " 'recall', 'true', average, warn_for)\n"
929 | ]
930 | },
931 | {
932 | "name": "stdout",
933 | "output_type": "stream",
934 | "text": [
935 | "[CV] ......... gamma=0.001, kernel=rbf, C=100, score=0.985037 - 0.1s\n",
936 | "[Parallel(n_jobs=1)]: Done 80 tasks | elapsed: 30.8s\n",
937 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n",
938 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.869290 - 0.7s\n",
939 | "[Parallel(n_jobs=1)]: Done 81 tasks | elapsed: 31.5s\n",
940 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n",
941 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.877026 - 0.7s\n",
942 | "[Parallel(n_jobs=1)]: Done 82 tasks | elapsed: 32.2s\n",
943 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n",
944 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.875145 - 0.7s\n",
945 | "[Parallel(n_jobs=1)]: Done 83 tasks | elapsed: 32.9s\n",
946 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n",
947 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.861062 - 0.7s\n",
948 | "[Parallel(n_jobs=1)]: Done 84 tasks | elapsed: 33.6s\n",
949 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n",
950 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.891892 - 0.7s\n",
951 | "[Parallel(n_jobs=1)]: Done 85 tasks | elapsed: 34.3s\n",
952 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n",
953 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.873598 - 0.7s\n",
954 | "[Parallel(n_jobs=1)]: Done 86 tasks | elapsed: 35.0s\n",
955 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n"
956 | ]
957 | },
958 | {
959 | "name": "stderr",
960 | "output_type": "stream",
961 | "text": [
962 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
963 | " 'recall', 'true', average, warn_for)\n"
964 | ]
965 | },
966 | {
967 | "name": "stdout",
968 | "output_type": "stream",
969 | "text": [
970 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.874136 - 0.7s\n",
971 | "[Parallel(n_jobs=1)]: Done 87 tasks | elapsed: 35.7s\n",
972 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n"
973 | ]
974 | },
975 | {
976 | "name": "stderr",
977 | "output_type": "stream",
978 | "text": [
979 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
980 | " 'recall', 'true', average, warn_for)\n"
981 | ]
982 | },
983 | {
984 | "name": "stdout",
985 | "output_type": "stream",
986 | "text": [
987 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.858345 - 0.7s\n",
988 | "[Parallel(n_jobs=1)]: Done 88 tasks | elapsed: 36.5s\n",
989 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n"
990 | ]
991 | },
992 | {
993 | "name": "stderr",
994 | "output_type": "stream",
995 | "text": [
996 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
997 | " 'recall', 'true', average, warn_for)\n"
998 | ]
999 | },
1000 | {
1001 | "name": "stdout",
1002 | "output_type": "stream",
1003 | "text": [
1004 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.858345 - 0.7s\n",
1005 | "[Parallel(n_jobs=1)]: Done 89 tasks | elapsed: 37.2s\n",
1006 | "[CV] gamma=0.0001, kernel=sigmoid, C=10 ..............................\n"
1007 | ]
1008 | },
1009 | {
1010 | "name": "stderr",
1011 | "output_type": "stream",
1012 | "text": [
1013 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
1014 | " 'recall', 'true', average, warn_for)\n"
1015 | ]
1016 | },
1017 | {
1018 | "name": "stdout",
1019 | "output_type": "stream",
1020 | "text": [
1021 | "[CV] ..... gamma=0.0001, kernel=sigmoid, C=10, score=0.886457 - 0.7s\n",
1022 | "[Parallel(n_jobs=1)]: Done 90 tasks | elapsed: 37.9s\n",
1023 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n",
1024 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.967514 - 0.2s\n",
1025 | "[Parallel(n_jobs=1)]: Done 91 tasks | elapsed: 38.1s\n",
1026 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n",
1027 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.972713 - 0.2s\n",
1028 | "[Parallel(n_jobs=1)]: Done 92 tasks | elapsed: 38.3s\n",
1029 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n",
1030 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.967432 - 0.2s\n",
1031 | "[Parallel(n_jobs=1)]: Done 93 tasks | elapsed: 38.5s\n",
1032 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n",
1033 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.972645 - 0.2s\n",
1034 | "[Parallel(n_jobs=1)]: Done 94 tasks | elapsed: 38.7s\n",
1035 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n",
1036 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.968739 - 0.2s\n",
1037 | "[Parallel(n_jobs=1)]: Done 95 tasks | elapsed: 38.9s\n",
1038 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n",
1039 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.960855 - 0.2s\n",
1040 | "[Parallel(n_jobs=1)]: Done 96 tasks | elapsed: 39.1s\n",
1041 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n"
1042 | ]
1043 | },
1044 | {
1045 | "name": "stderr",
1046 | "output_type": "stream",
1047 | "text": [
1048 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
1049 | " 'recall', 'true', average, warn_for)\n"
1050 | ]
1051 | },
1052 | {
1053 | "name": "stdout",
1054 | "output_type": "stream",
1055 | "text": [
1056 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.964377 - 0.2s\n",
1057 | "[Parallel(n_jobs=1)]: Done 97 tasks | elapsed: 39.3s\n",
1058 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n"
1059 | ]
1060 | },
1061 | {
1062 | "name": "stderr",
1063 | "output_type": "stream",
1064 | "text": [
1065 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
1066 | " 'recall', 'true', average, warn_for)\n"
1067 | ]
1068 | },
1069 | {
1070 | "name": "stdout",
1071 | "output_type": "stream",
1072 | "text": [
1073 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.961735 - 0.2s\n",
1074 | "[Parallel(n_jobs=1)]: Done 98 tasks | elapsed: 39.5s\n",
1075 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n",
1076 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.968314 - 0.2s\n",
1077 | "[Parallel(n_jobs=1)]: Done 99 tasks | elapsed: 39.7s\n",
1078 | "[CV] gamma=0.0001, kernel=rbf, C=100 .................................\n"
1079 | ]
1080 | },
1081 | {
1082 | "name": "stderr",
1083 | "output_type": "stream",
1084 | "text": [
1085 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
1086 | " 'recall', 'true', average, warn_for)\n",
1087 | "/home/lhu/.local/lib/python3.5/site-packages/sklearn/metrics/classification.py:1076: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true samples.\n",
1088 | " 'recall', 'true', average, warn_for)\n"
1089 | ]
1090 | },
1091 | {
1092 | "name": "stdout",
1093 | "output_type": "stream",
1094 | "text": [
1095 | "[CV] ........ gamma=0.0001, kernel=rbf, C=100, score=0.964377 - 0.2s\n",
1096 | "[Parallel(n_jobs=1)]: Done 100 tasks | elapsed: 40.0s\n",
1097 | "[Parallel(n_jobs=1)]: Done 100 out of 100 | elapsed: 40.0s finished\n",
1098 | "\n",
1099 | "Best parameters set found on development set: \n",
1100 | "\n",
1101 | "{'gamma': 'auto', 'kernel': 'rbf', 'C': 10}\n",
1102 | "\n",
1103 | "Grid scores on development set:\n",
1104 | "\n",
1105 | "0.997 (+/-0.004) for {'gamma': 'auto', 'kernel': 'rbf', 'C': 10}\n",
1106 | "0.599 (+/-0.976) for {'gamma': 'auto', 'kernel': 'sigmoid', 'C': 1}\n",
1107 | "0.512 (+/-0.036) for {'gamma': 0.001, 'kernel': 'rbf', 'C': 0.1}\n",
1108 | "0.995 (+/-0.003) for {'gamma': 0.001, 'kernel': 'linear', 'C': 1000}\n",
1109 | "0.982 (+/-0.008) for {'gamma': 0.001, 'kernel': 'sigmoid', 'C': 100}\n",
1110 | "0.599 (+/-0.976) for {'gamma': 0.0001, 'kernel': 'rbf', 'C': 0.1}\n",
1111 | "0.994 (+/-0.004) for {'gamma': 0.001, 'kernel': 'linear', 'C': 10}\n",
1112 | "0.985 (+/-0.007) for {'gamma': 0.001, 'kernel': 'rbf', 'C': 100}\n",
1113 | "0.873 (+/-0.021) for {'gamma': 0.0001, 'kernel': 'sigmoid', 'C': 10}\n",
1114 | "0.967 (+/-0.008) for {'gamma': 0.0001, 'kernel': 'rbf', 'C': 100}\n",
1115 | "\n",
1116 | "Detailed classification report:\n",
1117 | "\n",
1118 | "Report on Training Set\n",
1119 | " precision recall f1-score support\n",
1120 | "\n",
1121 | " 0 1.00 1.00 1.00 4072\n",
1122 | " 1 0.27 1.00 0.43 6\n",
1123 | "\n",
1124 | "avg / total 1.00 1.00 1.00 4078\n",
1125 | "\n",
1126 | "\n",
1127 | "[[4056 16]\n",
1128 | " [ 0 6]]\n",
1129 | "Specificity: 0.996070726916\n",
1130 | "Report on Test Set\n",
1131 | "\n",
1132 | " precision recall f1-score support\n",
1133 | "\n",
1134 | " 0 1.00 0.99 0.99 4059\n",
1135 | " 1 0.00 0.00 0.00 19\n",
1136 | "\n",
1137 | "avg / total 0.99 0.99 0.99 4078\n",
1138 | "\n",
1139 | "\n",
1140 | "[[4037 22]\n",
1141 | " [ 19 0]]\n",
1142 | "Specificity: 0.994579945799\n"
1143 | ]
1144 | },
1145 | {
1146 | "data": {
1147 | "image/png": "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\n1IqWRmxaxt4AAAAASUVORK5CYII=\n",
1148 | "text/plain": [
1149 | ""
1150 | ]
1151 | },
1152 | "metadata": {},
1153 | "output_type": "display_data"
1154 | },
1155 | {
1156 | "name": "stdout",
1157 | "output_type": "stream",
1158 | "text": [
1159 | "{'gamma': 'auto', 'kernel': 'rbf', 'C': 10}\n"
1160 | ]
1161 | }
1162 | ],
1163 | "source": [
1164 | "x_train = x_train.loc[:, features[0:num_features]]\n",
1165 | "x_test = x_test.loc[:, features[0:num_features]]\n",
1166 | "CVTrainAndScore(x_train, y_train, x_test, y_test, x_train_sample_weights, output_filename=output_filename)"
1167 | ]
1168 | },
1169 | {
1170 | "cell_type": "code",
1171 | "execution_count": 21,
1172 | "metadata": {
1173 | "collapsed": false
1174 | },
1175 | "outputs": [
1176 | {
1177 | "data": {
1178 | "text/plain": [
1179 | "Index(['Diff_P_technical_P_majeure_mean', 'Dif_rotor_1_avg_temps_t-4',\n",
1180 | " 'CS101__Rear_bearing_temp_std', 'Diff_Avg_Sys_2_inverter_4_t-6',\n",
1181 | " 'Diff_P_technical_P_external_std', 'CS101__Ambient_temp_mean',\n",
1182 | " 'Diff_P_technical_P_external_mean', 'CS101__Control_cabinet_temp_std',\n",
1183 | " 'Diff_Avg_Sys_1_inverter_6_std', 'Dif_max_avg_rotation_std'],\n",
1184 | " dtype='object')"
1185 | ]
1186 | },
1187 | "execution_count": 21,
1188 | "metadata": {},
1189 | "output_type": "execute_result"
1190 | }
1191 | ],
1192 | "source": [
1193 | "x_train.columns"
1194 | ]
1195 | }
1196 | ],
1197 | "metadata": {
1198 | "kernelspec": {
1199 | "display_name": "Python 3",
1200 | "language": "python",
1201 | "name": "python3"
1202 | },
1203 | "language_info": {
1204 | "codemirror_mode": {
1205 | "name": "ipython",
1206 | "version": 3
1207 | },
1208 | "file_extension": ".py",
1209 | "mimetype": "text/x-python",
1210 | "name": "python",
1211 | "nbconvert_exporter": "python",
1212 | "pygments_lexer": "ipython3",
1213 | "version": "3.5.1"
1214 | }
1215 | },
1216 | "nbformat": 4,
1217 | "nbformat_minor": 0
1218 | }
1219 |
--------------------------------------------------------------------------------