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 subprocess模块学习总结
Mar 13 Python
浅谈Python peewee 使用经验
Oct 20 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
Python变量赋值的秘密分享
Apr 03 Python
对numpy的array和python中自带的list之间相互转化详解
Apr 13 Python
Python简单I/O操作示例
Mar 18 Python
python制作抖音代码舞
Apr 07 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
python实现126邮箱发送邮件
May 20 Python
python os.rename实例用法详解
Dec 06 Python
django如何自定义manage.py管理命令
Apr 27 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
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
浅析SVN常见问题及解决方法
2013/06/21 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
学习ExtJS 访问容器对象
2009/10/07 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
javascript实现图片轮换动作方法
2020/08/07 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
Python安装Bs4的多种方法
2020/11/28 Python
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
UNIX文件名称有什么规定
2013/03/25 面试题
酒店前厅员工辞职信
2014/01/08 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
个人剖析材料范文
2014/09/30 职场文书
大学生在校表现评语
2014/12/31 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
Python实现生成bmp图像的方法
2021/06/13 Python
python ConfigParser库的使用及遇到的坑
2022/02/12 Python