美文网首页
奶品质监测模拟

奶品质监测模拟

作者: ww4u | 来源:发表于2019-10-13 15:47 被阅读0次
    • 奶品质和时间相关,而且是一个前后相关的系统,即任何时刻的奶品质是和前一个时刻的奶品质相关的
    • 需要在一个指定的时刻得到当前品质的估计值
    • 这个估计值是奶品质的变化曲线
    • 可以大致得到这样的函数关系: 奶品质(t) = f( t, 温度,湿度,其他的一些参数)
    • 如何来拟合这样一个函数呢?因为我们并不是科学家,不能进行定性的分析,也不能确切地知道品质的变化具体因素
    • 用机器学习的方法来估计这个函数
    • 首先需要数据,构造一组模拟数据,有一个随机因子,不断累计随机因子的函数,从而可以得到一个得分
    • 例如,在下面的我们构造一个函数来模拟参数到结果的映射;参数n个数据,表示时间累计。
    def fx(x):
        return x + x*x + x*x*x
    
    def genGpData():
        Xs = [ random.randint(1,10) for i in range(100) ]
        Ys = []
        last = None
        for x in Xs:
            if last:
                last = last + fx(x)
            else:
                last = fx(x)
            Ys.append( last )
        return Xs, np.array(Ys).reshape( 100,1 )
    
    image.png
    • 我们采样了100个时间,从而形成[100*100]的矢量
    • 可以看到,只有下面的部分有数值,即矩阵对角线上是全是0。0的意义是,时间还没有到。


      image.png
    • 所以从横轴上看,是各个时间点的参数。这样,我们将时间信息给从公式中给去掉了,转而需要各个时间所采集的对应参数
    • 训练:选用线性模型进行回归训练
    from sklearn.svm import LinearSVR
    
    regr = LinearSVR( random_state = 0 )
    regr.fit( xds[0::1,:], Ys[0::1] )
    print( regr.score( xds, Ys ) )
    
    • 这里每次产生的一组数据,实际上对应一个样本的全过程变化,不同的样本有不同的环境和参数变化。
    • 模拟参数 N * 100 的 矩阵数据,其中N为100的倍数
    • 模拟中并没有针对所有的数据进行训练
    • 例如,模拟10个样本的数据


      image.png
    • 正确率可以得到:0.9976769587649769
    • 用下面单独产生的样本进行验证 得分 0.9900302499171195


      image.png

    结论

    • 用线性回归算法就可以很好地预测曲线变化
    • 用于训练的数据要足够

    相关文章

      网友评论

          本文标题:奶品质监测模拟

          本文链接:https://www.haomeiwen.com/subject/vqzhmctx.html