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 16 Python
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 Python
在Python中处理XML的教程
Apr 29 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
简述Python2与Python3的不同点
Jan 21 Python
Python做智能家居温湿度报警系统
Sep 25 Python
windows下Python安装、使用教程和Notepad++的使用教程
Oct 06 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
Mar 04 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 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中字符集转换iconv函数使用总结
2014/10/11 PHP
PHP文件操作详解
2016/12/30 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
PHP中OpenSSL加密问题整理
2017/12/14 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
使用jQuery实现简单的tab框实例
2017/08/22 jQuery
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
Python中的类与类型示例详解
2019/07/10 Python
Python hashlib模块加密过程解析
2019/11/05 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
Flask处理Web表单的实现方法
2021/01/31 Python
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
护士毕业生自我鉴定
2014/02/08 职场文书
房地产端午节活动方案
2014/08/24 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
win10下go mod配置方式
2021/04/25 Golang
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
MSSQL基本语法操作
2022/04/11 SQL Server