def load_data(
    dataset_name: str, cola_name: str, colb_name: str
) -> tuple[np.array, np.array, np.array, np.array]:
    import seaborn as sns

    data = sns.load_dataset(dataset_name)
    col_a = np.array(data[cola_name])  # total_bill
    col_b = np.array(data[colb_name])  # tip

    mcol_a = col_a.copy()
    mcol_b = col_b.copy()

    one = np.ones(np.shape(mcol_b)[0], dtype=int)

    # pairing elements of one and mcol_a
    training_data_x = np.column_stack((one, mcol_a))

    return training_data_x, mcol_b, col_a, col_b