二元分类逻辑回归python代码实现

import numpy as np
from math import *


#sigmoid函数
def sigmoid(z):
    return 1/(1+exp(-z))

#计算代价的函数
def get_cost_logistic(X,y,w,b):
    m=X.shape[0]
    cost=0.0
    for i in range(m):
        z_i=np.dot(X[i],w)+b
        f_wb_i=sigmoid(z_i)
        cost+=-y[i]*np.log(f_wb_i)-(1-y[i])*np.log(1-f_wb_i)
    cost=cost/m
    return cost

#计算梯度的函数
def get_gradient(x,y,w,b):
   #获取数据量和特征数量
   m=x.shape[0]
   n=x.shape[1]
   dj_dw=np.zeros((n,))
   dj_db=0
   for i in range(m):
       error=sigmoid(np.dot(x[i,:],w)+b)-y[i]
       dj_db+=error
       for j in range(n):
           dj_dw[j]+=(error*x[i,j])
   dj_db=dj_db/m
   dj_dw=dj_dw/m
   return dj_dw,dj_db

#梯度下降函数
def gradient_descent(x,y,w_in,b_in,alpha,iters):
    w=w_in
    b=b_in
    cost_his=[]
    for i in range(iters):
        dj_dw,dj_db=get_gradient(x,y,w,b)
        w=w-dj_dw*alpha
        b=b-dj_db*alpha
        cost_his.append(get_cost_logistic(x,y,w,b))
        if (i)%(iters/10)==0:
            print(f'iteration:{i},cost:{cost_his[i]},w:{w},b:{b}')
    print(f'final w:{w},b:{b}')
    return w,b,cost_his


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
股价预测是金融领域中的一个重要任务,逻辑回归是一种常用的机器学习方法,可以用于预测二元分类问题。在股价预测中,我们可以将股价涨跌作为一个二元分类问题来处理。 以下是逻辑回归Python代码示例: 首先,导入必要的库: ```python import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score ``` 接下来,加载股价预测所需要的数据,并对数据进行预处理: ```python # 加载数据 data = pd.read_csv("stock_data.csv") # 数据预处理 data = data.dropna() # 删除缺失值 data = data.drop_duplicates() # 删除重复值 X = data.drop("label", axis=1) # 特征变量 y = data["label"] # 目标变量 # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ``` 然后,使用逻辑回归模型进行训练和预测: ```python # 初始化逻辑回归模型 model = LogisticRegression() # 模型训练 model.fit(X_train, y_train) # 模型预测 y_pred = model.predict(X_test) ``` 最后,计算模型的预测准确率并输出结果: ```python # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("预测准确率:", accuracy) ``` 以上就是使用逻辑回归进行股价预测的代码示例。需要注意的是,该代码只是一个简单的示例,实际应用中还需要对特征选择、特征工程等进行更加细致的处理,以提高模型的预测能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值