from numpy import *
import random
import time
st = time.time() def loaddata(filename):
fr = open(''.join([filename, '.txt'])).readlines()
trainx = [[1] + map(float, line.split()[:-1]) for line in fr] # trainx = [[1,12.2,22.4],[1,22.3,31.2],...]
trainy = [[float(line.split()[-1])] for line in fr] # trainy = [0,1,1,0,...]
return trainx, trainy def sigmod(z):
return 1.0 / (1 + exp(-z)) def optimizaion(trainx, trainy):
trainxmat = mat(trainx)
m = len(trainx)
# beta = [0,0,0]
beta = ones((len(trainx[0]),1)) # array
# maxiter
M = 500
"""
# error permid
e =
"""
"""
for i in xrange(M):
#if error2sum > e:
# z = betat.T * x = trainx (matricdoc)* beta = [beta.Tx1,beta.Tx2,...,beta.Txn]
sigmodz = sigmod(trainxmat * beta)
# [error_i = yi - sigmod(zi)]
error = trainy - sigmodz
# update beta
beta += alpha * trainxmat.T * error
print beta
"""
# random gradascent
for j in xrange(M):
for i in xrange(m):
# per span
alpha = 0.01 + 4 / (1.0 + i +j)
randid = random.randint(0, m - 1)
sigmodz = sigmod(trainxmat[randid] * beta)
error = trainy[randid] - sigmodz
beta += alpha * trainxmat[randid].T * error
#print beta return beta def logregress(testx, beta):
if mat(testx) * beta > 0: return [1.0]
else: return [0.0] def main():
# step 1: loading data...
print "step 1: loading data..."
trainx, trainy = loaddata('horseColicTraining')
testx, testy = loaddata('horseColicTest')
"""
print 'trainx', trainx
print 'trainy', trainy
print 'testx', testx
print 'testy', testy
print 'testy[2]',testy[2]
""" # step 2: training...
print "step 2: training..."
beta = optimizaion(trainx, trainy)
#print "beta = ",beta # step 3: testing...
print "step 3: testing..."
numTests = 10; errorSum = 0.0; l = len(testx)
for j in xrange(numTests):
errorcount = 0.0
#print 'the total number is: ',l
for i in xrange(l):
if logregress(testx[i], beta) != testy[i]:
errorcount += 1
#print "the number of error is: ", errorcount
print "the error rate is: ", (errorcount / l)
errorSum += (errorcount / l)
print "after %d iterations the average error rate is: %f" %(numTests, errorSum/numTests) """
trainx, trainy = loaddata('testSet')
print trainy
optimizaion(trainx, trainy)
""" main() print "cost time: ", (time.time() - st) """ lineregres
# ssi = sigmod(zi) - sigmod(zi) ** 2
ss = [sigmodzi - sigmodzi ** 2 for sigmodzi in sigmodz]
# errssi = errori * ssi
errss = map(lambda x, y: x * y, error, ss)
# treri = errssi * trainxi(vector)
trer = [errss[i] * array(trainx[i]) for i in xrange(m)]
"""

logisticregression的更多相关文章

  1. theano中的logisticregression代码学习

    1 class LogisticRegression (object): 2 def __int__(self,...): 3 4 #定义一些与逻辑回归相关的各种函数 5 6 def method1( ...

  2. 【deep learning学习笔记】注释yusugomori的LR代码 --- LogisticRegression.h

    继续看yusugomori的代码,看逻辑回归.在DBN(Deep Blief Network)中,下面几层是RBM,最上层就是LR了.关于回归.二类回归.以及逻辑回归,资料就是前面转的几篇.套路就是设 ...

  3. 【deep learning学习笔记】注释yusugomori的LR代码 --- LogisticRegression.cpp

    模型实现代码,关键是train函数和predict函数,都很容易. #include <iostream> #include <string> #include <mat ...

  4. python 10大算法之二 LogisticRegression 笔记

    使用的包 import matplotlib.pyplot as plt import pandas as pd import numpy as npfrom sklearn import datas ...

  5. sklearn.linear_model.LogisticRegression参数说明

    目录 sklearn.linear_model.LogisticRegression sklearn.linear_model.LogisticRegressionCV sklearn.linear_ ...

  6. 基于jieba,TfidfVectorizer,LogisticRegression进行搜狐新闻文本分类

    一.简介 此文是对利用jieba,word2vec,LR进行搜狐新闻文本分类的准确性的提升,数据集和分词过程一样,这里就不在叙述,读者可参考前面的处理过程 经过jieba分词,产生24000条分词结果 ...

  7. python3二元Logistics Regression 回归分析(LogisticRegression)

    纲要 boss说增加项目平台分析方法: T检验(独立样本T检验).线性回归.二元Logistics回归.因子分析.可靠性分析 根本不懂,一脸懵逼状态,分析部确实有人才,反正我是一脸懵 首先解释什么是二 ...

  8. Spark LogisticRegression 逻辑回归之建模

    导入包 import org.apache.spark.sql.SparkSession import org.apache.spark.sql.Dataset import org.apache.s ...

  9. Spark LogisticRegression 逻辑回归之简介

    LogisticRegression简介

  10. LogisticRegression 和 LogisticRegressionCV

    在scikit-learn中,与逻辑回归有关的主要是这3个类.LogisticRegression, LogisticRegressionCV 和logistic_regression_path.其中 ...

随机推荐

  1. sql语句:union

     sql语句中,join,left join中,是将两个或多个表横向连接,而有时,我们需要将几个表或1个表纵向连接,甚至是连接自身,就比如,某些数据库脚本特别不合理的时候,但我们又不能说啥 ....郁 ...

  2. delphi对ini文件的操作(转载 万一)

    ini 文件操作记要(1): 使用 TIniFileunit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Gr ...

  3. Java实现八皇后

    实验题目   回溯法实现8皇后问题 实验要求   a.掌握递归回溯算法的基本思想. b.学习掌握应用面向对象通用回溯程序框架解决实际问题.  提高面向对象编程的技能. 作业描述:在8*8格的棋盘上放置 ...

  4. Java---多线程的加强(1)

    简单应用: 首先来看一个简单的例子: 两个线程,分别实现对1-100内的奇数,偶数的输出. 第一种方法:通过接口 MyRun类: package thread.hello; /** * 通过实现Run ...

  5. Java---软件试用次数(Properties类的简单使用)

    编程练习(软件试用次数) 实现一个如下的软件小功能: 记录软件运行的次数并在每次运行时提示已经运行的次数.如果运行次数大于5次,软件不再运行并给出提示:试用次数已到,请注册! 本代码只简单的介绍了软件 ...

  6. C#获取字符串生成图片后的长度

    1.    使用g.MeasureString()获得 使用MeasureString测量出来的字符宽度,总是比实际宽度大一些,而且随着字符的长度增大,貌似实际宽度和测量宽度的差距也越来越大了.查了一 ...

  7. Android开发学习之Camera

    今天本来想写一篇关于百度地图定位SDK的文章的,无奈根据官网提供的例子编写的程序始终无法运行,所以这个计划只能落空.那么今天要与大家分享的是Camera,即照相机.随着硬件能力的大幅提升,手机上各种依 ...

  8. 【AngularJS入门】用ng-repeat指令实现循环输出

    循环输出列表很多项目在web服务端做,前端做好模版后后端写jsp代码,双方需要紧密合作,分清责任.有些项目由后端提供restful方法,前端用ajax调用自己循环,这种一般是大把的jquery拼字符串 ...

  9. [Javascript] JavaScript Array Methods in Depth - push

    Array push is used to add elements to the end of an Array. In this lesson we'll see how the push met ...

  10. android在广播接收器BroadcastReceiver里面再进行发送广播,造成当前广播接收器不断循环执行问题

    最近在公司处理项目时,用到锁屏状态弹出activity进行提示,类似QQ消息弹屏提示的功能.当中用到了,假如该弹出activity已经位于锁屏界面外时,将不进行再次弹窗,而是发送广播进行通知数据更新, ...