if __name__ == '__main__':


	if len(sys.argv) == 1:

		data = load_data.load_data()

		# Set up datasets for cross validation
		rs = cross_validation.ShuffleSplit(150000, n_iterations=3, test_fraction=.30)

		C, train_results, cv_results = prepare_params(100, 10000, 10)
		
		# Run through the cross validation iterations
		for train_index, cv_index in rs:
			train_data, cv_data = split_data(data[1], train_index, cv_index)
					
			model = Logistic_ComplexI_Model()
			train_X, train_y = model.load_train_data(train_data)
			cv_X, cv_y = model.load_data(cv_data)
			for c in C:
				print c
				model.train_model(train_X, train_y, {'c':c})
				train_probs = model.run_model(train_X)
				train_results[c].append(calc_score(train_probs, train_y))
				cv_probs = model.run_model(cv_X)
				cv_results[c].append(calc_score(cv_probs, cv_y))




if __name__ == '__main__':


	if len(sys.argv) == 1:

		data = load_data.load_data()

		# Set up datasets for cross validation
		rs = cross_validation.ShuffleSplit(150000, n_iterations=3, test_fraction=.30)

		C, train_results, cv_results = prepare_params(0.0000001, 1000, 50)
		
		# Run through the cross validation iterations
		for train_index, cv_index in rs:
			train_data, cv_data = split_data(data[1], train_index, cv_index)
					
			model = Logistic_Inverse_Model()
			train_X, train_y = model.load_train_data(train_data)
			cv_X, cv_y = model.load_data(cv_data)
			for c in C:
				print c
				model.train_model(train_X, train_y, {'c':c})
				train_probs = model.run_model(train_X)
				train_results[c].append(calc_score(train_probs, train_y))
				cv_probs = model.run_model(cv_X)
				cv_results[c].append(calc_score(cv_probs, cv_y))
    # 	probs = self.clf.predict_proba(X)
    # 	return probs[:,1]


if __name__ == '__main__':

    if len(sys.argv) == 1:

        data = load_data.load_data()

        # Set up datasets for cross validation
        rs = cross_validation.ShuffleSplit(150000,
                                           n_iterations=3,
                                           test_fraction=.30)

        C, train_results, cv_results = prepare_params(0.0000000001, 0.0001, 10)

        # Run through the cross validation iterations
        for train_index, cv_index in rs:
            train_data, cv_data = split_data(data[1], train_index, cv_index)

            model = Logistic_Pca_Model()
            train_X, train_y = model.load_train_data(train_data)
            cv_X, cv_y = model.load_data(cv_data)
            for c in C:
                print c
                model.train_model(train_X, train_y, {'c': c})
                train_probs = model.run_model(train_X)
                train_results[c].append(calc_score(train_probs, train_y))
                cv_probs = model.run_model(cv_X)
                cv_results[c].append(calc_score(cv_probs, cv_y))
        # cv_test_data = self.pcan.execute(X)
        return (X, y)


if __name__ == '__main__':

    if len(sys.argv) == 1:

        data = load_data.load_data()

        # Set up datasets for cross validation
        rs = cross_validation.ShuffleSplit(150000,
                                           n_iterations=3,
                                           test_fraction=.30)

        C, train_results, cv_results = prepare_params(100, 10000, 10)

        # Run through the cross validation iterations
        for train_index, cv_index in rs:
            train_data, cv_data = split_data(data[1], train_index, cv_index)

            model = Logistic_ComplexI_Model()
            train_X, train_y = model.load_train_data(train_data)
            cv_X, cv_y = model.load_data(cv_data)
            for c in C:
                print c
                model.train_model(train_X, train_y, {'c': c})
                train_probs = model.run_model(train_X)
                train_results[c].append(calc_score(train_probs, train_y))
                cv_probs = model.run_model(cv_X)
                cv_results[c].append(calc_score(cv_probs, cv_y))