def visualisingPolynomialRegressionInHighResolution():

    X = readIndepentDataset()
    y = readDependentDataset()
    polynomialRegressionModel = readPolynomialRegressionModel()
    polynomialRegressionModelForVisualization = readPolynomialRegressionModelForVisualization(
    )

    X_grid = np.arange(min(X), max(X), 0.1)
    X_grid = X_grid.reshape((len(X_grid), 1))

    # Visualising the Polynomial Regression results
    plt.scatter(X, y, color='red')
    plt.plot(
        X_grid,
        polynomialRegressionModel.predict(
            polynomialRegressionModelForVisualization.fit_transform(X_grid)),
        color='blue')
    plt.title('Truth or Bluff (Polynomial Regression)')
    plt.xlabel('Position level')
    plt.ylabel('Salary')

    plt.savefig("polynomial_regression_trainingsetresult_high_resolution.png")

    plt.show()
def trainLinearRegressionModel():

    X = readIndepentDataset()
    y = readDependentDataset()

    # Fitting Linear Regression to the dataset
    linearRegression = LinearRegression()
    linearRegression.fit(X, y)

    saveLinearRegressionModel(linearRegression)
def visualisingTrainingSetResult():

    X = readIndepentDataset()
    y = readDependentDataset()
    linearRegressionModel = readLinearRegressionModel()

    # Visualising the Linear Regression results
    plt.scatter(X, y, color="red")
    plt.plot(X, linearRegressionModel.predict(X), color="blue")
    plt.title("Truth or Bluff (Linear Regression)")
    plt.xlabel("Position level")
    plt.ylabel("Salary")

    plt.savefig("linear_regression_trainingsetresult.png")

    plt.show()
def trainPolynomialRegressionModel():

    X = readIndepentDataset()
    y = readDependentDataset()

    # Fitting Polynomial Regression to the dataset
    polynomialFeatures = PolynomialFeatures(degree=4)
    X_Polynomial = polynomialFeatures.fit_transform(X)

    polynomialFeatures.fit(X_Polynomial, y)
    savePolynomialRegressionModelForVisualization(polynomialFeatures)

    polynomialLinearRegression = LinearRegression()
    polynomialLinearRegression.fit(X_Polynomial, y)

    savePolynomialRegressionModel(polynomialLinearRegression)
def visualisingTrainingSetResultForPolynomialRegression():

    X = readIndepentDataset()
    y = readDependentDataset()
    polynomialRegressionModel = readPolynomialRegressionModel()
    polynomialRegressionModelForVisualization = readPolynomialRegressionModelForVisualization(
    )

    # Visualising the Polynomial Regression results
    plt.scatter(X, y, color='red')
    plt.plot(X,
             polynomialRegressionModel.predict(
                 polynomialRegressionModelForVisualization.fit_transform(X)),
             color='blue')
    plt.title('Truth or Bluff (Polynomial Regression)')
    plt.xlabel('Position level')
    plt.ylabel('Salary')

    plt.savefig("polynomial_regression_trainingsetresult.png")

    plt.show()