python实现logistic_用python实现Logistic

print("花费的时间为:", time.time() - start_time)

plot_pr(0.6, precision, recall, "pos")

实验结果:

第0次测试的准确率为:0.81071

第1次测试的准确率为:0.79643

第2次测试的准确率为:0.79643

第3次测试的准确率为:0.80000

第4次测试的准确率为:0.80714

第5次测试的准确率为:0.81071

第6次测试的准确率为:0.75714

第7次测试的准确率为:0.78214

第8次测试的准确率为:0.78214

第9次测试的准确率为:0.81429

precision recall f1-score support

neg 0.84 0.79 0.81 145

pos 0.79 0.84 0.81 135

avg / total 0.82 0.81 0.81 280

平均精度率为: 0.795714285714

花费时间为: 12.1490001678

20171218115829_492629fb12e7c0fef96beab98ac442e3_1.jpeg

通过上图可以看出,如果选择的阈值过低,那么更多的测试样本都将分为1类,因此召回率得到提升,但是要牺牲相应的准确率。 注意precision_recall_curve()方法中的thresholds中的阈值是逐渐增大的,对应到图像是就会,x轴从左到右对应的阈值是逐渐减小的。

# -*- encoding:utf-8 -*-

import matplotlib.pyplot as plt

from matplotlib import animation

import numpy as np

#加载数据集

def loadDataSet():

'''

:return: 输入向量矩阵和输出向量

'''

dataMat=[]

labelMat=[]

fr=open('test.txt','r')#一共有三列,每一列为x1,x2,Y

for line in fr.readlines():

lineArr=line.strip().split('##')

#注意在这里将字符串转换成float型的时候总是遇到问题

#感觉每一行的开头存在其他字符,所以我们多添加了一列"##"分隔符,是的第一个有效数字从第二个开始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值