コード例 #1
0
def get_sensor(n):
    """ Get the sensor 8 features, Batch ID, GAS and concentration,
    by index
    """
    df = load_data()
    df_features = get_sensor_features(df, n)
    df_gas = df[['Batch ID', 'GAS', 'CONCENTRATION']]
    return pd.concat([df_features, df_gas], axis=1)
コード例 #2
0
def get_sensor_by_col_name(n):
    """
    Get the sensor 8 features, Batch ID, GAS and concentration,
    by column names
    """
    df = load_data()
    filter_col = [col for col in df if col.startswith(f'S{n}')]
    df_sensor = df[filter_col]
    df_gas = df[['Batch ID', 'GAS', 'CONCENTRATION']]
    return pd.concat([df_sensor, df_gas], axis=1)
コード例 #3
0
def get_sensors_list(list_of_n):
    """
     Get the N sensor features (N*8), Batch ID, GAS and concentration,
    by index
    :arg list of integers
    :return pandas dataframe
    """

    df = load_data()
    sensors_columns = []
    for n in list_of_n:
        ix = list(sensor_features_column(n))
        sensors_columns.extend(ix)
    #sensors_columns = np.r_[1:10, 15, 17, 50:100]
    df_features_n = df.iloc[:, sensors_columns]

    df_gas = df[['Batch ID', 'GAS', 'CONCENTRATION']]
    return pd.concat([df_features_n, df_gas], axis=1)
コード例 #4
0
        model = seq.load_model(model_name)

        ev = Evolution_drift(df_gas, n_batch_training, batch)
        _, X_test, _, y_test = ev.split_data()
        loss, acc = seq.model_evaluate(X_test, y_test)
        model_dict[batch] = {'acc': acc, 'loss': loss}

    #Plot results
    df_results = pd.DataFrame.from_dict(model_dict).T

    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 8))
    fig.suptitle(f'Training with first {n_batch_training} batches')
    ax1 = df_results.plot(kind='bar', y='acc', ax=ax1)
    ax1.set_ylim([0, 1])
    ax2 = df_results.plot(kind='bar', y='loss', ax=ax2)
    save_figure(fig, f'Step1_NBATCH_{n_batch_training}_acc_loss')


if __name__ == '__main__':
    # Check drift relevance  with different training sets.
    df_gas = load_data()

    for col in ['GAS', 'Batch ID']:
        df_gas[col] = df_gas[col].astype('category')

    for n in range(1, 10 + 1):
        evo_train(df_gas, n_batch_training=n)

    for n in range(1, 10 + 1):
        evolution_drift_with_seq(df_gas, n_batch_training=n)
コード例 #5
0
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA

from python.LoadUciData import load_data
from python.StandardFigure import save_figure
from python.Step0_1_DataExploration import get_sensors_array

if __name__ == '__main__':

    # Cargo datos
    df = load_data()
    arr_sensor = get_sensors_array(df, 1, 0)

    pca = PCA(n_components=2)
    pca.fit(arr_sensor)
    arr_transf = pca.transform(arr_sensor)

    number_of_clusters = 4
    km = KMeans(n_clusters=number_of_clusters)
    # Normally people fit the matrix
    y_pred = km.fit_predict(arr_transf)

    plt.scatter(arr_transf[:, 0], arr_transf[:, 1], c=y_pred)
    plt.title("Cluster of sensors")
    plt.show()