# encoding=utf8
from sklearn.linear_model import LogisticRegression

def cancer_clf(train_data, train_label, test_data):
    """
    使用 sklearn 构建逻辑回归分类器
    :param train_data: 训练数据 (ndarray)
    :param train_label: 训练标签 (ndarray)
    :param test_data: 测试数据 (ndarray)
    :return: 预测结果
    """
    # ********* Begin *********#
    
    # 1. 创建 LogisticRegression 模型实例
    # C 是正则化强度的倒数，值越小正则化越强 [cite: 229]。
    # max_iter 是最大迭代次数，增加它可以帮助算法收敛 [cite: 230]。
    # random_state 确保每次运行结果一致。
    model = LogisticRegression(C=100, max_iter=1000, random_state=42)
    
    # 2. 使用训练数据拟合模型
    model.fit(train_data, train_label)
    
    # 3. 对测试数据进行预测
    predict = model.predict(test_data)

    # ********* End *********#
    
    return predict