Python实现的逻辑回归算法示例【附测试csv文件下载】


Posted in Python onDecember 28, 2018

本文实例讲述了Python实现的逻辑回归算法。分享给大家供大家参考,具体如下:

使用python实现逻辑回归
Using Python to Implement Logistic Regression Algorithm

菜鸟写的逻辑回归,记录一下学习过程

代码:

#encoding:utf-8
"""
 Author:  njulpy
 Version:  1.0
 Data:  2018/04/10
 Project: Using Python to Implement LogisticRegression Algorithm
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
#建立sigmoid函数
def sigmoid(x):
 x = x.astype(float)
 return 1./(1+np.exp(-x))
#训练模型,采用梯度下降算法
def train(x_train,y_train,num,alpha,m,n):
 beta = np.ones(n)
 for i in range(num):
  h=sigmoid(np.dot(x_train,beta)) #计算预测值
  error = h-y_train.T    #计算预测值与训练集的差值
  delt=alpha*(np.dot(error,x_train))/m #计算参数的梯度变化值
  beta = beta - delt
  #print('error',error)
 return beta
def predict(x_test,beta):
 y_predict=np.zeros(len(y_test))+0.5
 s=sigmoid(np.dot(beta,x_test.T))
 y_predict[s < 0.34] = 0
 y_predict[s > 0.67] = 1
 return y_predict
def accurancy(y_predict,y_test):
 acc=1-np.sum(np.absolute(y_predict-y_test))/len(y_test)
 return acc
if __name__ == "__main__":
 data = pd.read_csv('iris.csv')
 x = data.iloc[:,1:5]
 y = data.iloc[:,5].copy()
 y.loc[y== 'setosa'] = 0
 y.loc[y== 'versicolor'] = 0.5
 y.loc[y== 'virginica'] = 1
 x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3,random_state=15)
 m,n=np.shape(x_train)
 alpha = 0.01
 beta=train(x_train,y_train,1000,alpha,m,n)
 pre=predict(x_test,beta)
 t = np.arange(len(x_test))
 plt.figure()
 p1 = plt.plot(t,pre)
 p2 = plt.plot(t,y_test,label='test')
 label = ['prediction', 'true']
 plt.legend(label, loc=1)
 plt.show()
 acc=accurancy(pre,y_test)
 print('The predicted value is ',pre)
 print('The true value is ',np.array(y_test))
 print('The accuracy rate is ',acc)

输出结果:

The predicted value is  [ 0.   0.5  1.   0.   0.   1.   1.   0.5  1.   1.   1.   0.5  0.5  0.5  1.
  0.   0.5  1.   0.   1.   0.5  0.   0.5  0.5  0.   0.   1.   1.   1.   1.
  0.   1.   1.   1.   0.   0.   1.   0.   0.   0.5  1.   0.   0.   0.5  1. ]
The true value is  [0 0.5 0.5 0 0 0.5 1 0.5 0.5 1 1 0.5 0.5 0.5 1 0 0.5 1 0 1 0.5 0 0.5 0.5 0
 0 1 1 1 0.5 0 1 0.5 1 0 0 1 0 0 0.5 1 0 0 0.5 1]
The accuracy rate is  0.9444444444444444

Python实现的逻辑回归算法示例【附测试csv文件下载】

附:上述示例中的iris.csv文件点击此处本站下载

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python常用内置函数总结
Feb 08 Python
Python编程之黑板上排列组合,你舍得解开吗
Oct 30 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
如何使用python把ppt转换成pdf
Jun 29 Python
详解Python 4.0 预计推出的新功能
Jul 26 Python
利用python计算windows全盘文件md5值的脚本
Jul 27 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
python 检查是否为中文字符串的方法
Dec 28 #Python
浅谈python3发送post请求参数为空的情况
Dec 28 #Python
python3使用flask编写注册post接口的方法
Dec 28 #Python
python通过tcp发送xml报文的方法
Dec 28 #Python
对python 生成拼接xml报文的示例详解
Dec 28 #Python
Python 3.x基于Xml数据的Http请求方法
Dec 28 #Python
python模拟登陆,用session维持回话的实例
Dec 27 #Python
You might like
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
JS实现将链接生成二维码并转为图片的方法
2018/03/17 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
Python批量按比例缩小图片脚本分享
2015/05/21 Python
Python中datetime模块参考手册
2017/01/13 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
深入理解Python异常处理的哲学
2019/02/01 Python
python各类经纬度转换的实例代码
2019/08/08 Python
python中数字是否为可变类型
2020/07/08 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
英文自我鉴定
2013/12/10 职场文书
迟到早退检讨书
2014/02/10 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
综合实践活动方案
2014/02/14 职场文书
毕业评语大全
2014/05/04 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
加强作风建设工作总结
2014/10/23 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP