一、鸢尾花数据集

鸢尾花(iris)数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。该数据集有3类(setosa、versicolour、virginica),每类各50个记录,共150条记录,每条记录有4项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度。

下面将利用前100条记录(setosa与versicolour)与前2项特征(花萼长度与花萼宽度)进行预测分类示例。

二、测试代码

分享给有需要的人,代码质量勿喷。

2.1 数据

#coding=utf-8
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris# ---------- 1 data --------- #
iris = load_iris()
# print(iris.feature_names) #['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
# print(iris.target_names) #['setosa' 'versicolor' 'virginica']
# print(iris.data)
# print(iris.target)# 1.1 数据取值:前100个数据,前2类
x=iris.data[0:100,0:2]
y=iris.target[0:100]
# print(x.shape) # (100,2)
# print(y.shape) # (100,)
sample_0=x[y==0,:]
sample_1=x[y==1,:]
plt.scatter(sample_0[:,0],sample_0[:,1],marker='o',color='r',label='setosa')
plt.scatter(sample_1[:,0],sample_1[:,1],marker='*',color='b',label='versicolor')
plt.xlabel("x")
plt.ylabel("y")
plt.legend(loc=2)
plt.show()# 1.2 拆分数据:80个训练,20个预测
x_train=np.vstack([x[:40],x[60:100]])
y_train=np.concatenate([y[:40],y[60:100]])
# print(x_train.shape) #(80, 2)
# print(y_train.shape) # (80,)
x_test=x[40:60,:]
y_test=y[40:60]
# print(x_test.shape) # (20, 2)
# print(y_test.shape) # (20,)

2.2 回归模型

# ---------- 2 modeling --------- #
class Logistic_Regression():def __init__(self):self.w=Nonedef sigmoid(self,z):a=1/(1+np.exp(-z)) #激活函数return adef output(self,x):z=np.dot(self.w,x.T)a=self.sigmoid(z)return adef compute_loss(self,x,y):num_train=x.shape[0]a=self.output(x)loss=np.sum(-y*np.log(a)-(1-y)*np.log(1-a)) #损失函数loss/=num_traindw=np.dot((a-y),x) / num_train #梯度return loss,dwdef train(self,x,y,learning_rate=0.01,num_iterations=100001):num_train,num_features = x.shapeself.w=0.001*np.random.randn(1,num_features) #权重初始化loss=[]for i in range(num_iterations):error_loss,dw=self.compute_loss(x,y)loss.append(error_loss)self.w-=dw*learning_rate #更新权重if i%500==0:print('setps=[%d/%d], loss=%f' % (i,num_iterations,error_loss))return lossdef predict(self,x):a=self.output(x)y_pre=np.where(a>=0.5,1,0)return y_pre

2.3 训练

# ---------- 3 train --------- #
lr=Logistic_Regression()
loss=lr.train(x_train,y_train)
plt.plot(loss)
plt.show()print('权重=',lr.w)
x1=np.arange(4,7.5,0.05)
x2=(-lr.w[0][0]*x1)/lr.w[0][1]
## sigmoid=1/(1+np.exp(-z))=0.5
## z=0=x1*w1+x2*w2
plt.scatter(sample_0[:,0],sample_0[:,1],marker='o',color='r',label='setosa')
plt.scatter(sample_1[:,0],sample_1[:,1],marker='*',color='b',label='versicolor')
plt.xlabel("x")
plt.ylabel("y")
plt.legend(loc=2)
plt.plot(x1,x2,'-',color='black')
plt.show()

 

2.4 预测

# ---------- 4 predict --------- #
num_test=x_test.shape[0]
prediction=lr.predict(x_test)
print("预测结果=",prediction)print("真实结果=",y_test)accuracy=np.sum(prediction==y_test)/num_test
print("预测准确率=",accuracy)

DL:测试鸢尾花数据回归分析相关推荐

  1. python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

  2. python分析鸢尾花数据_python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据...

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

  3. 决策树对鸢尾花数据两特征组合分类python代码的结果_机器学习笔记-决策树

    在看决策树之前,先看下之前说过的逻辑回归 上图为判断是否要交往的逻辑回归算法图 把身高,财富,颜值分别与w1,w2,w3相乘求和得到一个结果. (其中w1为高的权重,如果比较在意身高,那么w1就会偏大 ...

  4. 基于鸢尾花数据和手写数字,决策树,随机森林,voting,bagging法的比较

    四种方法的具体的原理可以见博文 和西瓜书 先上代码根据结果分析 鸢尾花数据 # evaluate bagging algorithm for classification from numpy imp ...

  5. 基于sklearn随机森林算法对鸢尾花数据进行分类

    随机森林定义 随机森林(Random Forest,RF),顾名思义就是将多棵相互之间并无关联的决策树整合起来形成一个森林,再通过各棵树投票或取均值来产生最终结果的分类器.在介绍随机森林前需要了解几个 ...

  6. 【ML-SVM案例学习】案例一:对鸢尾花数据进行SVM分类(附源码)

    文章目录 前言 一.完整源码分步实现 1.引入库 2.读入数据 3.编码数据 4.数据分割 5.数据SVM分类器构建 6.计算模型的准确率/精度 7.计算决策函数的结构值以及预测值 8.画图 总结 前 ...

  7. 机器学习:性能度量篇-Python利用鸢尾花数据绘制ROC和AUC曲线

    文章目录 前言 一.ROC与AUC 1.ROC 2.AUC 二.代码实现 总结 前言 内容接上一篇机器学习:性能度量篇-Python利用鸢尾花数据绘制P-R曲线_fanstuck的博客-CSDN博客_ ...

  8. 感知器算法实现鸢尾花数据的分类

    1.代码 1.算法描述   本博客使用感知器算法来实现鸢尾花数据的分类.因为感知器映射结果为1和-1,为了让感知器能够正常运行,我们舍去了映射类型为0的鸢尾花数据,保留了映射类型为1和-1的鸢尾花数据 ...

  9. TF之DCGAN:基于TF利用DCGAN测试MNIST数据集并进行生成过程全记录

    TF之DCGAN:基于TF利用DCGAN测试MNIST数据集并进行生成 目录 测试结果 测试过程全记录 测试结果 train_00_0099 train_00_0799 train_00_0899 t ...

最新文章

  1. 盘点CVPR 2019影响力最大的20篇论文
  2. 人工智能热门技术研究课题
  3. 手机php文件怎么改后辍,php修改文件后缀名的方法
  4. 计算机科学 生物技术,计算机科学(Computer Science)简介
  5. 存储控制器wwn号_正文-新华三集团-H3C
  6. js中判断两个数字的大小
  7. Java获取小程序带参二维码(太阳码)
  8. 计算几何 -- 旋转坐标系
  9. C++类成员的访问权限以及类的封装
  10. 【Antlr】rule expr: must label all alternatives or none
  11. anaconda如何装python_如何在已安装Python条件下,安装Anaconda,,并将原有Python添加到Anaconda中...
  12. Office 2007中的config.xml个性定制说明
  13. C语言实现SM4加解密
  14. csp试题1:线性分类器
  15. 要怎么在计算机里清除桌面内存,告诉你电脑内存怎么清理
  16. Person Re-identification using Heterogeneous Local Graph Attention Networks(基于异构局部图注意力网络的人员再识别)
  17. mysql建库图解_数据库 MySQL安装图解
  18. 天牛须和贪心算法_基于天牛须搜索的粒子群优化算法求解投资组合问题
  19. React初尝试-仿写CNode社区
  20. 仿百度html页面,HTML实战篇:html仿百度首页

热门文章

  1. 力控数据写入mysQL_怎样将力控组态软件中的数据存储到关系数据库?
  2. python面试常见问题和数据分析师、算法工程师可能会问到的问题、简历的写法、自我定位等的认知
  3. 重庆地税吃螃蟹 数据库虚拟化支撑大集中
  4. dropzone 分段上传 进度条后退问题解决
  5. mac os 录屏快捷键_如何才能高效的使用mac笔记本?mac笔记本高效使用教程
  6. S7-1200通过Modbus/485通讯INVT变频器(小白篇)
  7. UNIAPP、微信小程序激励视频、插屏等封装
  8. 硬币问题(随机生成假硬币 找出它的位置)
  9. 【精】LintCode领扣算法问题答案:316. 组合集
  10. php第一季视频教程 李,PHP第一季视频教程(李炎恢+php100 不断更新)