Chapter 5
Baseline Models
随机预测算法
# Example of Making Random Predictions
from random import seed
from random import randrang
# Generate random predictions
def random_algorithm(train, test):
output_values = [row[-1] for row in train] #[0,1,0,1,0,1]
unique = list(set(output_values)) #[0,1]
predicted = list()
for row in test:
index = randrange(len(unique)) #0 or 1
predicted.append(unique[index])
return predicted
seed(1)
train = [[0], [1], [0], [1], [0], [1]]
test = [[None], [None], [None], [None]]
predictions = random_algorithm(train, test)
print(predictions)
结果
[0,0,1,0]
零规则算法
# Example of Zero Rule Classification Predictions
from random import seed
# zero rule algorithm for classification
def zero_rule_algorithm_classification(train, test):
output_values = [row[-1] for row in train]
prediction = max(set(output_values), key=output_values.count) #0,返回的是数量做多的
predicted = [prediction for i in range(len(test))]
return predicted
seed(1)
train = [['0'], ['0'], ['0'], ['0'], ['1'], ['1']]
test = [[None], [None], [None], [None]]
predictions = zero_rule_algorithm_classification(train, test)
print(predictions)
结果:
['0', '0', '0', '0']
回归
# Example of Zero Rule Regression Predictions
from random import seed
# zero rule algorithm for regression
def zero_rule_algorithm_regression(train, test):
output_values = [row[-1] for row in train]
prediction = sum(output_values) / float(len(output_values))
predicted = [prediction for i in range(len(test))]
return predicted
seed(1)
train = [[10], [15], [12], [15], [18], [20]]
test = [[None], [None], [None], [None]]
predictions = zero_rule_algorithm_regression(train, test)
print(predictions)
结果:
[15.0, 15.0, 15.0, 15.0]