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 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
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)
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)