【问题标题】:n-dim python interpolation nonlinearn-dim python插值非线性
【发布时间】:2014-01-02 21:48:05
【问题描述】:

我得到了一个由 5 个变量 Fx(s,m,p,h,l) 组成的函数

import numpy as np
s= np.arange(0,135,15)/10
m= np.array([150,180,195,210,240,255,270,285,300])
p=np.array([-1.5,-1,-0.5,0,0.5,1,1.5])
h=np.array([0,3,6,9,12])
l=np.array([0,0.5,1,1.5,2,2.5,3,4])

以及 csv 文件中函数的 180 个值。 我想通过插值计算所有点的缺失值 并使用径向基函数thin_plate 将非常有用。可能吗? 我在这里找到的信息 Python 4D linear interpolation on a rectangular grid 插值函数 但是如果我用 None 替换数据数组中的某个值,此时 f(point) 给出“nan”。而且我不想使用线性插值,因为对于一组 4 个变量,我得到了 2 个带有值的点。 非常感谢你帮助LL

【问题讨论】:

    标签: python scipy interpolation


    【解决方案1】:

    scikit-learn 尝试 SVR 来解决您的问题:

    from sklearn.svm import SVR # it uses RBF as default kernel
    import numpy as np
    
    n_samples, n_features = 180, 5
    
    y = np.random.randn(n_samples)  #function values
    X = np.random.randn(n_samples, n_features)   #points
    clf = SVR(C=1.0, epsilon=0.2)
    clf.fit(X, y)
    
    #Get value at a new point:
    
    clf.predict([0,150,-1.5,0,0]) 
    

    由于 len(s)*len(m)*len(p)*len(h)*len(l) 是 22680 并且函数值仅在 180 点中已知,因此您对函数的信息很差。 ..

    【讨论】:

    • 嗨,非常感谢,它可以工作,但是我如何修复参数以使函数在点处完全通过我给定的值???
    • 它工作得很好,C=100000 函数非常接近我给定的值。但我找不到,例如如何给某些变量(例如 v 或 m)赋予更大的权重?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多