目标是预测类别响应变量y,当客户已订阅定期存款时,该变量的值为yes,否则为no。您将使用可变的持续时间作为预测指标,即最后一次接触的持续时间(以秒为单位)。 我有这个模型: yi =β0+β1durationi+εi
我必须这样做: 1.创建一个函数,该函数将两个值的向量作为输入(β),并计算模型的负对数似然性。 2.用最小二乘法估计y和X的关系,并将估计的系数存储在一个对象中,这将为优化提供起点。
os.chdir("/Users/aleksandra/Downloads/bank")
import pandas as pd
import numpy as np
import statsmodels.api as sm
import scipy
import scipy.optimize as optimization
df = pd.read_csv("bank.csv",sep=";")
df['y'] = df['y'].map(lambda x: 1 if x == 'yes' else 0)
y = df['y']
X = df[['duration']]
X['constant'] = 1
def neg_log_likelyhood(y_true, y_pred):
return -np.sum(y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred))/len(y_true)
但是我不知道如何执行1和2任务。