Beispiel #1
0
def mlp_regressor():
    csv_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..',
                            'data.csv')
    dataframe = pandas.read_csv(csv_path, header=0)

    X = dataframe.drop('ИН', axis=1)
    y = dataframe['ИН']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)

    model = MLPRegressor(max_iter=200, solver='lbfgs')
    scores = cross_validate(model,
                            X_train,
                            y_train,
                            cv=10,
                            return_train_score=True)

    predict_start = time()
    predictions = cross_val_predict(model, X_test, y_test, cv=10)
    predict_end = time()
    predict_time = predict_end - predict_start

    model.fit(X_train, y_train)
    # print(model.coefs_)
    print(model.n_layers_)
    print(model.n_outputs_)
    method_results(model, scores, y_test, predictions,
                   [np.shape(a) for a in model.coefs_], predict_time, X_train)
Beispiel #2
0
def linear_regression():
    csv_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'data.csv')
    dataframe = pandas.read_csv(csv_path, header=0)

    X = dataframe.drop('ИН', axis=1)
    y = dataframe['ИН']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)

    model = LinearRegression()
    scores = cross_validate(model, X_train, y_train, cv=10, return_train_score=True)

    predict_start = time()
    predictions = cross_val_predict(model, X_test, y_test, cv=10)
    predict_end = time()
    predict_time = predict_end - predict_start

    model.fit(X_train, y_train)
    method_results(model, scores, y_test, predictions, model.coef_.shape[0], predict_time, X_train)
Beispiel #3
0
def random_forest():
    csv_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'data.csv')
    dataframe = pandas.read_csv(csv_path, header=0)

    X = dataframe.drop('ИН', axis=1)
    y = dataframe['ИН']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)

    model = RandomForestRegressor(n_estimators=20)
    scores = cross_validate(model, X_train, y_train, cv=10, return_train_score=True)

    predict_start = time()
    predictions = cross_val_predict(model, X_test, y_test, cv=10)
    predict_end = time()
    predict_time = predict_end - predict_start

    model.fit(X_train, y_train)
    method_results(model, scores, y_test, predictions, model.feature_importances_.shape[0], predict_time, X_train)
Beispiel #4
0
def decision_tree():
    csv_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'data.csv')
    dataframe = pandas.read_csv(csv_path, header=0)

    X = dataframe.drop('ИН', axis=1)
    y = dataframe['ИН']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)

    model = tree.DecisionTreeRegressor(max_depth=100)
    scores = cross_validate(model, X_train, y_train, cv=10, return_train_score=True)

    predict_start = time()
    predictions = cross_val_predict(model, X_test, y_test, cv=10)
    predict_end = time()
    predict_time = predict_end - predict_start

    model.fit(X_train, y_train)
    method_results(model, scores, y_test, predictions, model.feature_importances_.shape[0], predict_time, X_train)

    graph_data = tree.export_graphviz(model, out_file=None, filled=True)
    graph = graphviz.Source(graph_data)
    graph.render("children", view=True)
def k_nearest():
    csv_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..',
                            'data.csv')
    dataframe = pandas.read_csv(csv_path, header=0)

    X = dataframe.drop('ИН', axis=1)
    y = dataframe['ИН']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)

    model = neighbors.KNeighborsRegressor(n_neighbors=10)
    scores = cross_validate(model,
                            X_train,
                            y_train,
                            cv=10,
                            return_train_score=True)

    predict_start = time()
    predictions = cross_val_predict(model, X_test, y_test, cv=10)
    predict_end = time()
    predict_time = predict_end - predict_start

    method_results(model, scores, y_test, predictions, None, predict_time,
                   X_train)
def svm():
    csv_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..',
                            'data.csv')
    dataframe = pandas.read_csv(csv_path, header=0)

    X = dataframe.drop('ИН', axis=1)
    y = dataframe['ИН']

    rbX = RobustScaler()
    X = rbX.fit_transform(X)
    rbY = RobustScaler()
    y = rbY.fit_transform(y.values.reshape(-1, 1))

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)

    # kernel: rbf, sigmoid, linear, poly   gamma=0.1, C=100, epsilon=0.1
    model = SVR(kernel='rbf', gamma='auto')

    scores = cross_validate(model,
                            X_train,
                            y_train.ravel(),
                            cv=10,
                            return_train_score=True)

    predict_start = time()
    predictions = cross_val_predict(model,
                                    rbX.transform(X_test),
                                    y_test.ravel(),
                                    cv=10)
    predict_end = time()
    predict_time = predict_end - predict_start

    model.fit(X_train, y_train.ravel())
    params_shape = model.support_vectors_.shape[
        0] * model.support_vectors_.shape[1]
    method_results(model, scores, y_test, predictions, params_shape,
                   predict_time, X_train)