第七章 基准模型的建立

目录

7.1 分类问题基准模型的建立

7.1.1 随机预测算法

7.1.2 Python代码实现随机预测算法(分类)

7.1.3 Python代码实现ZeroR算法(分类)

7.2 回归问题基准模型的建立

7.2.1Python代码实现ZeroR算法(回归)


7.1 分类问题基准模型的建立

7.1.1 随机预测算法

        1、从训练数据中找出不重复的目标值。

        2、从不重复的目标值集合中随机选择目标值进行输出

7.1.2 Python代码实现随机预测算法(分类)

# 导入库
from random import seed
from random import randrange

def Random_Prediction_Algorithm(traning_data,testing_data):
    """
    该函数用于建立随机预测算法
    Parameters
    ----------
    traning_data : 二维列表
        训练数据.
    testing_data : 二维列表
        测试数据.
    Returns
    -------
    Randomly_predicted_data : 一维列表
        随机预测值.

    """
    # 将训练数据中的目标值提取出来放在values中
    values = [row[-1] for row in traning_data]
    # 去重
    unique_values = list(set(values))
    # 建立一个空列表用于存储随机预测的目标值
    Randomly_predicted_data = list()
    # 开始遍历(以测试集的样本数)
    for row in testing_data:
        # 随机生成索引
        index = randrange(len(unique_values))
        # 根据随机生成的索引去取到相应的预测值
        Randomly_predicted_data.append(unique_values[index])
    return Randomly_predicted_data


# 主函数
if '__main__' == __name__:
    # 定义一个随机种子,使得每次生成的随机数都是确定的(伪随机数)
    seed(999)
    # 训练样本
    traning_data = [[0],[2],[1],[3],[2],[1],[0],[2],[3],[2]]
    # 测试样本
    testing_data = [[None],[None],[None],[None],[None]]
    # 调用Random_Prediction_Algorithm函数生成预测值
    predictions = Random_Prediction_Algorithm(traning_data,testing_data)

7.1.3 Python代码实现ZeroR算法(分类)

# 导入库
from random import seed
from random import randrange

def ZeroR_Algorithm_classfication(traning_data,testing_data):
    """
    该函数用于根据目标值所占的频率生成预测值
    Parameters
    ----------
    traning_data : 二维列表
        训练数据.
    testing_data : 二维列表
        测试数据.

    Returns
    -------
    ZeroR_prediction : 一维列表
        随机预测值.

    """
    # 将训练数据中的目标值提取出来放在values中
    values = [row[-1] for row in traning_data]
    # 选出出现频率最大的目标值放在highest_count变量中
    highest_count = max(set(values),key=values.count)
    ZeroR_prediction = [highest_count for i in range(len(testing_data))]
    return ZeroR_prediction


# 主函数
if '__main__' == __name__:
    # 定义一个随机种子,使得每次生成的随机数都是确定的(伪随机数)
    seed(888)
    # 训练样本
    traning_data = [[0],[0],[0],[0],[0],[0],[0],[0],[0],[1]]
    # 测试样本
    testing_data = [[None],[None],[None],[None],[None]]
    # 调用ZeroR_Algorithm_classfication函数根据样本所占的频率生成预测值
    predictions = ZeroR_Algorithm_classfication(traning_data,testing_data)

7.2 回归问题基准模型的建立

7.2.1Python代码实现ZeroR算法(回归)

# 导入库
from random import seed
from random import randrange

def ZeroR_Algorithm_Regression(traning_data,testing_data):
    """
    该函数用于根据目标值生成预测值(平均数)
    Parameters
    ----------
    traning_data : 二维列表
        训练数据.
    testing_data : 二维列表
        测试数据.

    Returns
    -------
    ZeroR_prediction : 一维列表
        预测值.

    """
    # 将训练数据中的目标值提取出来放在values中
    values = [row[-1] for row in traning_data]
    # 计算训练数据目标值的平均值
    prediction = sum(values)/float(len(values))
    # 将训练数据目标值的平均值作为模型的预测值
    ZeroR_prediction = [prediction for i in range(len(testing_data))]
    return ZeroR_prediction


# 主函数
if '__main__' == __name__:
    # 定义一个随机种子,使得每次生成的随机数都是确定的(伪随机数)
    seed(888)
    # 训练样本
    traning_data = [[1],[2.3],[4],[5],[6],[8],[9],[7.2],[6.3],[1]]
    # 测试样本
    testing_data = [[None],[None],[None],[None],[None]]
    # 调用ZeroR_Algorithm_Regression函数根据目标值生成预测值(平均数)
    predictions = ZeroR_Algorithm_Regression(traning_data,testing_data)

你可能感兴趣的:(python)