예제 #1
0
def get_dataset_from_file(filename):
    with open(filename) as datafile:
        words = [line.strip().split('\t') for line in datafile]
    dataset = [ [float(cell) for cell in row[:-1]] for row in words]
    labels = map(comb(itemgetter(-1), float), words)
    return dataset, labels
예제 #2
0
 def load_dataset(filename='test_set.dataset'):
     with open(filename) as data_file:
         strs = map(comb(str.strip, str.split), data_file.readlines())
     labels = map(comb(itemgetter(2), int), strs)
     dataset = [[1.0, float(item[0]), float(item[1])] for item in strs]
     return dataset, labels
예제 #3
0
 def get_x_y(point_group):
     # return point_group
     return map(comb(itemgetter(0), itemgetter(1) ), point_group),\
         map(comb(itemgetter(0), itemgetter(2) ), point_group)
예제 #4
0
from numpy import *


def get_dataset_from_file(filename):
    with open(filename) as datafile:
        words = [line.strip().split('\t') for line in datafile]
    dataset = [ [float(cell) for cell in row[:-1]] for row in words]
    labels = map(comb(itemgetter(-1), float), words)
    return dataset, labels

def dataset_to_mat(dataset_and_labels, labels=None):
    if labels:
        return mat(dataset_and_labels), mat(labels).T
    return mat(dataset_and_labels[0]), mat(dataset_and_labels[1]).T

get_matrix_from_file = comb(get_dataset_from_file, dataset_to_mat)


def standard_regress(x_matrix,y_matrix):
    # x_matrix = mat(x_list)
    # y_matrix = mat(y_list).T
    x_t_x = x_matrix.T*x_matrix
    if linalg.det(x_t_x) == 0.0:
        raise "This matrix is singular, cannot do inverse"
    # I is inverse, equal exp -1 to a matrix
    return x_t_x.I * (x_matrix.T*y_matrix)

def draw_points(x_list, y_list, weight_matrix):
    import matplotlib.pyplot as plt
    x_matrix = mat(x_list)
    y_matrix = mat(y_list)