【Lua机器学习】数据归一化

机器学习 同时被 2 个专栏收录
1 篇文章 0 订阅
4 篇文章 0 订阅

最值归一化

适合有边界的数据:如 像素颜色 0~255

--lua
t={1,2,3,4,5,6,7,8,9,10}  --数据集
local a,b
for k,v in pairs(t) do --找最大值和最小值
   if a==nil then
      a,b=v,v
   else
      if v<a then
         a=v
      end
      if v>b then
         b=v
      end
   end
end
print(a .. "," .. b)   
-- a --> 1 , b --> 10
local c
for k,v in pairs(t) do
	c=(v-a)/(b-a)--最小值归一化成0,最大值归一化成1
	print(c)     
end
-- c -->>
--[23:07:39] 0
--[23:07:39] 0.11111111111111
--[23:07:39] 0.22222222222222
--[23:07:39] 0.33333333333333
--[23:07:39] 0.44444444444444
--[23:07:39] 0.55555555555556
--[23:07:39] 0.66666666666667
--[23:07:39] 0.77777777777778
--[23:07:39] 0.88888888888889
--[23:07:39] 1

均值方差归一化

适合没有边界的数据:如工资

--lua
t={1,2,3,4,5,6,7,8,9,10}--数据集

local a=0
for k,v in pairs(t) do --全部数据相加
	a=a+v
end
a=a/#t --平均值=5.5,#t=10

local p=2
local b 
for k,v in pairs(t) do --计算方差
	if b==nil then
		b=(v-a)^p
    else
	b=b+((v-a)^p)
	end
end
b=(b/#t)^0.5  --总体标准偏差

local c
for k,v in pairs(t) do   --归一化,范围-1.5 —— 1.5 之间
	c=(v-a)/b
	print(c)
end
-- c -->
--[23:24:54] -1.5666989036013
--[23:24:54] -1.2185435916899
--[23:24:54] -0.87038827977849
--[23:24:54] -0.52223296786709
--[23:24:54] -0.1740776559557
--[23:24:54] 0.1740776559557
--[23:24:54] 0.52223296786709
--[23:24:54] 0.87038827977849
--[23:24:54] 1.2185435916899
--[23:24:54] 1.5666989036013

在这里插入图片描述

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值