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实现端口复用实例代码
Jul 03 Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
详解python和matlab的优势与区别
Jun 28 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
python集合常见运算案例解析
Oct 17 Python
Python Django view 两种return的实现方式
Mar 16 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
基于tensorflow权重文件的解读
May 26 Python
Python学习开发之图形用户界面详解
Aug 23 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引用返回用法示例
2016/05/28 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
Python向excel中写入数据的方法
2019/05/05 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
Lands’ End官网:经典的美国生活方式品牌
2016/08/14 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
银行开业庆典方案
2014/02/06 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
中学清明节活动总结
2014/07/04 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
学校党员干部承诺书
2015/05/04 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
golang内置函数len的小技巧
2021/07/25 Golang
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android