用神经网络分类响尾蛇和牛蛙

(响尾蛇,牛蛙)---m*n*k---(1,0)(0,1)

使用imagenet2012作为训练集,响尾蛇和牛蛙的编号分别是

n01641577  牛蛙

n01755581  菱纹响尾蛇

其中响尾蛇的类目有1300张图片,有357个不同的尺寸,从最小的190*122到最大的2592*1944.牛蛙的类目也有1300张图片,有353个不同的尺寸,从最小的160*140到最大的3631*2378.

这次实验通过间隔取点的办法把所有图片化成9*9的。网络结构是81*30*2,收敛误差从0.5-1e-5,每个收敛误差收敛199次,统计平均值。得到的数据表格为

f2[0]

f2[1]

迭代次数n

平均准确率p-ave

1-0

0-1

δ

耗时ms/次

耗时ms/199次

耗时 min/199

最大准确率p-max

迭代次数标准差

pave标准差

0.499856

0.500368

12.8392

0.500905

0.581859

0.41995

0.5

7.125628

1424

0.023733

0.585

12.1987

0.017398

0.45223

0.54761

2333.055

0.572286

0.734322

0.410251

0.4

66.42714

13231

0.220517

0.635

166.8128

0.027799

0.406588

0.593202

3493.337

0.570251

0.737638

0.402864

0.3

96.18593

19155

0.31925

0.62

496.4183

0.012787

0.189765

0.810438

9116.503

0.619849

0.707588

0.532111

0.2

240.6834

47912

0.798533

0.645

1009.382

0.009986

0.095075

0.904962

24174.82

0.616834

0.692412

0.541256

0.1

630.809

125548

2.092467

0.67

1588.063

0.014871

0.586382

0.41362

84284.72

0.639874

0.739749

0.54

0.01

2540.663

505604

8.426733

0.745

8935.965

0.039397

0.522566

0.477434

133438.8

0.672462

0.751407

0.593518

0.001

4429.563

881505

14.69175

0.795

14648.13

0.052046

0.537626

0.462374

134743.6

0.675302

0.753367

0.597236

9.00E-04

3502.317

696979

11.61632

0.785

15155.09

0.04705

0.547673

0.452327

138523.7

0.686332

0.746784

0.625879

8.00E-04

3734.352

743156

12.38593

0.79

15025.9

0.048819

0.532623

0.467377

140050

0.677638

0.752663

0.602613

7.00E-04

3753.905

747045

12.45075

0.79

13749.53

0.050594

0.467372

0.532628

143855.6

0.685754

0.745477

0.62603

6.00E-04

4257.513

847255

14.12092

0.775

14816.61

0.04742

0.46235

0.53765

145325.2

0.678819

0.734322

0.623317

5.00E-04

4180.899

832004

13.86673

0.79

15479.79

0.048183

0.472383

0.527617

149772.2

0.682839

0.742161

0.623518

4.00E-04

4143.905

824650

13.74417

0.805

15397.56

0.051851

0.497489

0.502511

155382

0.690653

0.73191

0.649397

3.00E-04

4035.06

802990

13.38317

0.8

14498.81

0.051099

0.467351

0.532649

163114.7

0.695226

0.725377

0.665075

2.00E-04

4234.965

842770

14.04617

0.795

16393.37

0.050934

0.462318

0.537682

175264.4

0.69598

0.73

0.66196

1.00E-04

4549.176

905301

15.08835

0.805

16058.85

0.049148

0.467343

0.532657

174908.7

0.69691

0.734774

0.659045

9.00E-05

6829.015

1358989

22.64982

0.805

15304.28

0.04569

0.512561

0.487439

176603.6

0.697487

0.732412

0.662563

8.00E-05

5235.824

1041937

17.36562

0.815

17926.46

0.048261

0.447243

0.552757

176013.8

0.695352

0.720101

0.670603

7.00E-05

4878.337

970799

16.17998

0.805

17344.58

0.048413

0.537685

0.462315

181601.5

0.700829

0.742412

0.659246

6.00E-05

5171.985

1029239

17.15398

0.835

16104.18

0.04764

0.517586

0.482413

182490.6

0.707563

0.723417

0.691709

5.00E-05

4972.347

989507

16.49178

0.82

17161.05

0.047921

0.452265

0.547735

186064.5

0.704724

0.732663

0.676784

4.00E-05

5129.176

1020713

17.01188

0.82

17381.29

0.04881

0.477388

0.522612

188700.9

0.701106

0.715678

0.686533

3.00E-05

7317.101

1456115

24.26858

0.83

16276.37

0.046154

0.482413

0.517587

195902.6

0.714824

0.731357

0.698291

2.00E-05

6687.141

1330751

22.17918

0.82

16645.72

0.050466

0.502513

0.497487

203179.3

0.713719

0.731357

0.69608

1.00E-05

5855.714

1165321

19.42202

0.805

16670.83

0.048464

采用的测试集是训练集的前100张.

分类准确率随着收敛误差的减小逐渐变大。因为两个测试集图片一样多所有平均分类准确率是两个(1,0)位和(0,1)位的平均值

特别是对应所有的收敛误差,响尾蛇的分类准确率都大于牛蛙的分类准确率

这意味着,长的像牛蛙的蛇要少于长的像蛇的牛蛙。

平均准确率p-ave

1-0

0-1

δ

0.713719

0.731357

0.69608

1.00E-05

0.268643

0.30392

0.035276

比如δ=1e-5时,有26.8%的响尾蛇被分为牛蛙,而有30.3%的牛蛙被分为响尾蛇,二者的差值为3.52%。也就是错误图片的净流向是从牛蛙到响尾蛇

如果把错误的图片理解为电子,这个反应中牛蛙就是还原剂,而响尾蛇就是氧化剂。牛蛙被响尾蛇氧化因此分类准确率下降,而响尾蛇得到了电子被牛蛙还原因此响尾蛇的分类准确率更高。

迭代次数随着收敛误差的减小变大,

N=-20212.192722825486*ln(δ)-14101.765588071983

0.9901172749541132   ******  决定系数 r**2

Pave=-0.009764557439965927*ln(δ)+0.6064900011024955

0.9144287290944044   ******  决定系数 r**2

在一定范围内迭代次数N,分类准确率Pave和收敛误差δ可以用这两个数学关系去估算。

另外统计迭代次数的分布

在收敛误差为1e-5时,事实上分布比较分散,简并度并不高。将响尾蛇和牛蛙的分类理解为一个反应,则这个反应的能级较分散。

所以这个分类的过程有电子的流动,有能级,为什么不能作为一个反应来理解?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
股票响尾蛇导弹策略(Bollinger Bands)是一种技术分析方法,它基于股票价格的移动平均线和标准差来确定价格的高低点和趋势方向。具体实现代码如下: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt def bollinger_bands(data, window_size, num_std): rolling_mean = data.rolling(window=window_size).mean() rolling_std = data.rolling(window=window_size).std() upper_band = rolling_mean + (rolling_std * num_std) lower_band = rolling_mean - (rolling_std * num_std) return rolling_mean, upper_band, lower_band # 读取股票数据 data = pd.read_csv('stock_data.csv') # 计算响尾蛇导弹指标 window_size = 20 num_std = 2 rolling_mean, upper_band, lower_band = bollinger_bands(data['Close'], window_size, num_std) # 绘制股票价格和响尾蛇导弹指标 plt.figure(figsize=(12,6)) plt.plot(data['Close'], label='Close Price') plt.plot(rolling_mean, label='Moving Average') plt.plot(upper_band, label='Upper Band') plt.plot(lower_band, label='Lower Band') plt.title('Bollinger Bands') plt.xlabel('Date') plt.ylabel('Price') plt.legend() plt.show() ``` 其中,`data` 是一个包含股票价格数据的 pandas 数据框,每行代表一天的数据。`window_size` 是用于计算移动平均线和标准差的时间窗口大小,`num_std` 是用于确定上下限的标准差倍数。函数 `bollinger_bands` 返回计算出来的移动平均线、上限和下限。 在运行完代码后,会得到一个绘制有股票价格、移动平均线和上下限的图表。通过观察上下限和股票价格之间的关系,可以根据策略决定何时买入或卖出股票。例如,当股票价格突破上限时,可能意味着股票价格已经过高,可以考虑卖出股票;当股票价格突破下限时,可能意味着股票价格已经过低,可以考虑买入股票。需要根据具体情况结合其他技术分析指标和基本面分析来决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑榆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值