Logistics回归数据集(testSet.txt)《机器学习实战》【美】Peter Harrington python3.6+pycharm完美实现代码
若你需要 这个数据集,直接新建一个.txt文件,将这里的数据全部拷贝过去即可,下面为
这本书《机器学习实战》【美】Peter Harrington 第五章 Logistics 回归 使用的数据集 testSet.txt 的全部数据:
-0.017612 14.053064 0
-1.395634 4.662541 1
-0.752157 6.538620 0
-1.322371 7.152853 0
0.423363 11.054677 0
0.406704 7.067335 1
0.667394 12.741452 0
-2.460150 6.866805 1
0.569411 9.548755 0
-0.026632 10.427743 0
0.850433 6.920334 1
1.347183 13.175500 0
1.176813 3.167020 1
-1.781871 9.097953 0
-0.566606 5.749003 1
0.931635 1.589505 1
-0.024205 6.151823 1
-0.036453 2.690988 1
-0.196949 0.444165 1
1.014459 5.754399 1
1.985298 3.230619 1
-1.693453 -0.557540 1
-0.576525 11.778922 0
-0.346811 -1.678730 1
-2.124484 2.672471 1
1.217916 9.597015 0
-0.733928 9.098687 0
-3.642001 -1.618087 1
0.315985 3.523953 1
1.416614 9.619232 0
-0.386323 3.989286 1
0.556921 8.294984 1
1.224863 11.587360 0
-1.347803 -2.406051 1
1.196604 4.951851 1
0.275221 9.543647 0
0.470575 9.332488 0
-1.889567 9.542662 0
-1.527893 12.150579 0
-1.185247 11.309318 0
-0.445678 3.297303 1
1.042222 6.105155 1
-0.618787 10.320986 0
1.152083 0.548467 1
0.828534 2.676045 1
-1.237728 10.549033 0
-0.683565 -2.166125 1
0.229456 5.921938 1
-0.959885 11.555336 0
0.492911 10.993324 0
0.184992 8.721488 0
-0.355715 10.325976 0
-0.397822 8.058397 0
0.824839 13.730343 0
1.507278 5.027866 1
0.099671 6.835839 1
-0.344008 10.717485 0
1.785928 7.718645 1
-0.918801 11.560217 0
-0.364009 4.747300 1
-0.841722 4.119083 1
0.490426 1.960539 1
-0.007194 9.075792 0
0.356107 12.447863 0
0.342578 12.281162 0
-0.810823 -1.466018 1
2.530777 6.476801 1
1.296683 11.607559 0
0.475487 12.040035 0
-0.783277 11.009725 0
0.074798 11.023650 0
-1.337472 0.468339 1
-0.102781 13.763651 0
-0.147324 2.874846 1
0.518389 9.887035 0
1.015399 7.571882 0
-1.658086 -0.027255 1
1.319944 2.171228 1
2.056216 5.019981 1
-0.851633 4.375691 1
-1.510047 6.061992 0
-1.076637 -3.181888 1
1.821096 10.283990 0
3.010150 8.401766 1
-1.099458 1.688274 1
-0.834872 -1.733869 1
-0.846637 3.849075 1
1.400102 12.628781 0
1.752842 5.468166 1
0.078557 0.059736 1
0.089392 -0.715300 1
1.825662 12.693808 0
0.197445 9.744638 0
0.126117 0.922311 1
-0.679797 1.220530 1
0.677983 2.556666 1
0.761349 10.693862 0
-2.168791 0.143632 1
1.388610 9.341997 0
0.317029 14.739025 0
代码如下:
#!/usr/bin/env python
# _*_coding:utf-8 _*_
#@Time :2018/4/1 17:24
#@Author :niutianzhuang
#@FileName: test_Logistic Regression_trainning the model.py
#@Software: PyCharm
#Initializing and training the model
#所采用的官方的数据集(共100个样本),包含了两个特征X1和X2,以及第0维特征X0,故dataMatIn存放的是100*3的矩阵import matplotlib.pyplot as plt
from numpy import *#加载数据集
def loadDataSet():'''数据集的前两个值分别为X1和X2,第三个值是数据对应的类别标签,为了方便计算,把X0的值设置成了1.0'''dataMat = []labelMat = []fr = open('C:/Users/cjz/Desktop/testSet(logistics regression 数据集).txt') #打开logistics regression 数据集).txt文件 # 一定要输入正确的数据集文件所在的地址目录for line in fr.readlines(): #逐行读取lineArr = line.strip().split()dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])]) #因为线性回归化式为 H(x) = W0 + W1*X1 + W2*X2即为 (W0, W1, W2)*(1, X1, X2),# 其中 (W0, W1, W2) 即为所求回归系数 W。 为了方便计算, 读出 X1, X2 后要在前面补上一个 1.0labelMat.append(int(lineArr[2]))return dataMat, labelMat#分类器的分类(转换)函数
def sigmoid(inX):return 1.0 / (1 + exp(-inX)) ##计算 sigmoid 函数#梯度上升算法,用来计算出最佳回归系数
def gradAscent(dataMatIn, classLabels):'''第一个参数是2维数组,每列代表每个不同特征,每行代表每个训练样本第二个参数是类别标签,1*100的行向量,为便于计算,将其转换为列向量,即进行转置,并赋值给labelMat'''dataMatrix = mat(dataMatIn) # convert to NumPy matrix 获得输入数据并将其转换为Numpy矩阵数据类型labelMat = mat(classLabels).transpose() # convert to NumPy matrix 获得输入数据并将其转换为Numpy矩阵数据类型m, n = shape(dataMatrix) #shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩阵或者数组的维数alpha = 0.001 #步长,向函数增长最快的方向的移动量,即学习率maxCycles = 500 #迭代次数weights = ones((n, 1)) #生成n行一列的元素为1的矩阵赋给weihts,即回归系数初始化为1#循环 maxCycles次, 每次都沿梯度向真实值 labelMat 靠拢for k in range(maxCycles): # heavy on matrix operationsh = sigmoid(dataMatrix * weights) # matrix multiplication 矩阵相乘 包含了300次的乘积error = (labelMat - h) # vector subtraction 向量减法,计算真实类别与预测类别的差值,h是一个列向量,列向量的元素个数等于样本数,即为100weights = weights + alpha * dataMatrix.transpose() * error # matrix multiplication 矩阵相乘,dataMatrix.transpose()* error 就是梯度f(w),按照该差值的方向调整回归系数return weights#输出运用梯度上升优化算法后得到的最理想的回归系数的值
def GetResult():dataMat, labelMat = loadDataSet()weights = gradAscent(dataMat, labelMat)print(weights)plotBestFit(weights)#画出数据集和Logistic回归最佳拟合直线
def plotBestFit(weights):#画点dataMat, labelMat = loadDataSet()dataArr = array(dataMat)n = shape(dataArr)[0]xcord1 = []ycord1 = []xcord2 = []ycord2 = []for i in range(n):if int(labelMat[i]) == 1:xcord1.append(dataArr[i, 1])ycord1.append(dataArr[i, 2])else:xcord2.append(dataArr[i, 1])ycord2.append(dataArr[i, 2])fig = plt.figure()ax = fig.add_subplot(111)ax.scatter(xcord1, ycord1, s=30, c='red', marker='s')ax.scatter(xcord2, ycord2, s=30, c='green')# 画线x = arange(-3.0, 3.0, 0.1)y = (0.48 * x + 4.12414) / (0.616)# y = (-weights[0]-weights[1]*x)/weights[2]ax.plot(x, y)plt.xlabel('X1')plt.ylabel('X2')plt.show() #显示if __name__ == '__main__':GetResult()
结果如图:
Logistics回归数据集(testSet.txt)《机器学习实战》【美】Peter Harrington python3.6+pycharm完美实现代码相关推荐
- 机器学习实战 | 意大利Covid-19病毒感染数学模型及预测(附代码)
来源:DeepHub IMBA 本文约2400字,建议阅读9分钟 本文将用Python展示感染增长的简单数学分析和两个模型,以更好地理解感染的演变. 标签:机器学习 当今世界正在与一个新的敌人作斗争, ...
- 《机器学习实战》程序清单3-4 创建树的函数代码
有点乱,等我彻底想明白时再来整理清楚. from math import log import operatordef calcShannonEnt(dataSet):numEntries = len ...
- 机器学习实战(九)K-均值聚类算法
文章目录 前言: 一.K-均值聚类算法 二.算法分析 三.二分k均值聚类 前言: 机器学习中有两类的大问题,一个是分类,一个是聚类. 分类是根据一些给定的已知类别标号的样本,训练某种学习机器,使它能够 ...
- 『ML』利用K-Means聚类算法对未标注数据分组——《机器学习实战》学习笔记(Ch10)
本节用Python实现K-Means算法,对未标注的数据进行聚类. 在做完聚类后,如何对于聚类结果进行评估?请看 用Python实现聚类效果的评估(轮廓系数.互信息) 导航 K-Means简介 代码实 ...
- 《机器学习实战》:通俗理解支持向量机
代码.数据集.文章我都是放到了https://github.com/AAAZC/SVM_blog 上面了,文章在issues里面,建议上这个网站看 <机器学习实战>:通俗理解支持向量机 关 ...
- [机器学习实战]决策树
1. 简介 决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种 ...
- 机器学习实战 —— 决策树(完整代码)
声明: 此笔记是学习<机器学习实战> -- Peter Harrington 上的实例并结合西瓜书上的理论知识来完成,使用Python3 ,会与书上一些地方不一样. 机器学习实战-- 决策 ...
- 《机器学习实战》第5章 随机梯度上升算法
#!/usr/bin/env python # _*_coding:utf-8 _*_ #@Time :2018/4/9 7:56 #@Author :niutianzhuang #@FileName ...
- 机器学习实战(一)—— K-近邻算法(KNN)
本系列文章以<机器学习实战>为基础,并结合B站的UP主shuhuai008的机器学习白板推导系列合集,加强对机器学习基础算法的理解及运用. 如果大家对计算机视觉感兴趣可以参考博主的计算机视 ...
最新文章
- 重磅!这所985高校迎来新任院士校长!他能否带领学校走出“低谷”?
- python 爬预警没解析前的
- 【Java 并发编程】线程指令重排序问题 ( 指令重排序规范 | volatile 关键字禁止指令重排序 )
- 开发chrome插件(扩展)
- 每天一道LeetCode-----链表排序,要求复杂度在O(nlogn)
- mac下 home-brew安装及php,nginx环境安装及配置
- angular5使用httpclient时解决跨域问题
- 高速软件加密锁技术的发展历程
- PHP get_class_methods函数用法
- PHP面试题(二)---百度
- Java SE 原生数据类型
- IIS下发布关于Excel导入导出时遇到的问题集锦
- usb redirector linux,USB Redirector Client详细使用教程
- 致远OA A6 员工敏感信息泄露
- am57xx Damo根文件加载过程
- [VBA][EXCEL]插入分页符
- 【工具推荐】SwitchHosts管理本地 Hosts
- 「BJOI 2019」排兵布阵
- 德蕾莎修女---一个伟大的人
- STM32L476 DMA空闲中断使用问题
热门文章
- 解决Tomact启动时问题 Port 8080 required by Tomcat v8.0 Server at localhost is already in use.
- webpack项目代理异常解决
- 有关ubuntu16.04进行sudo apt-get update更新时出现:‘。。。N: 无法安全地用该源进行更新,所以默认禁用该源。。。’等问题解决方案
- 分布式系统一致性问题解决实战
- winscp连接虚拟机Linux被拒绝的问题解决方案
- 什么是“缓存友好”代码?
- 在django中区分null = True,空白= True
- IPFS Series -- Bitswap Protocol
- ajax查询数据返回结果不变
- 【前端开发与项目管理】