Необходимость данных УСТАНОВОЧ-, первые два двумерные диаграммы рассеяния о живописи, о распределении визуального вида,
Так называемая нормальная, гауссовым, нормальная кривая является специальной кривой Гаусса.
scipy.optimize мешок питона curve_fit функция подгонки кривой, конечно, также много типов подгонки кривой. scipy.optimize обеспечивает функцию минимального значение (скаляр или многомерный), аппроксимация кривой и найти корень уравнения полезного алгоритма.
С. П. NumPy Импорт
Импорт matplotlib.pyplot AS PLT
из scipy.optimize Импорт curve_fit
Импорт Математика
# одиночный модели Гаусса, если кривая имеет множество пиков, фитинг может быть сегментирован
FUNC DEF (X, A, U, SIG):
вернуться np.exp A * (- (X - U) ** 2 / (2 * SIG ** 2)) / (Math.sqrt SIG * (2 * Math. ПИ))
# гауссова модель смеси, множество гауссовых функций добавляется
FUNC3 DEF (Х, А1, А2, А3, М1, М2, М3, S1, S2, S3):
Возвращение np.exp А1 * (- ((Х - М1) / S1) ** 2) * A2 + NP. ехр (- ((Х - М2) / S2) ** 2) + A3 * np.exp (- ((Х - М3) / S3) ** 2)
# синусоидальной функция фитинга
Fmax #DEF (X, А, В, С): # возвращение np.sin A * + C (X * np.pi / 6 + В.) # ФИТА, FITB optimize.curve_fit = (Fmax, Х, Ymax, [1. , 1, 1])
# нелинейные наименьших квадратов
#DEF FUNC (X, А, В, С):
# возвращение np.sqrt A * (X) * (В * np.square (X) + C)
полином # 3 раза, может быть расширен до п- го порядка полинома, можно показать математически, любая функция может быть выражена в виде полинома
# np.polyfit = F1 (X, Y 3)
# = np.poly1d Р1 (F1) ,
#yvals = р1 (х) значения # Y подходят
# также может быть использован yvals = np.polyval (f1, х)
фитинга и предельные параметры, которые представляют собой параметр ограничивает нижний предел, р0 начальный диапазон, значение [ 1,1,1]
х = np.arange (1,206,1)
Num = [] <- их значение у
numhunt = [] <- их значение у
у = np.array (NUM)
yhunt = np.array (numhunt)
Popt, pcov = curve_fit (FUNC3, х, у)
popthunt, pcovhunt = curve_fit (FUNC, х, yhunt, р0 = [2,2,2])
Ahun popthunt = [0]
uhunt popthunt = [1]
sighunt = popthunt [2]
a1 = Popt [0]
u1 = Popt [1]
sig1 = Popt [2]
а2 = Popt [3]
и2 = Popt [4]
Sig2 = Popt [5]
а3 = Popt [6]
и3 = Popt [7]
Sig3 = Popt [8]
yvals = FUNC3 (х, а1, и1, sig1, а2, и2, Sig2, а3, и3, Sig3) # значения Y подходят
yhuntvals = FUNC (х, ahunt, uhunt, sighunt) # подходит значение у
печать (и 'коэффициенты ahunt:', ahunt)
печать (и 'коэффициенты uhunt:', uhunt)
печать (и 'коэффициенты sighunt:', sighunt)
#绘图
Plot1 = plt.plot (х, у, 'S', метка = 'насекомых исходные значения')
Plot2 = plt.plot (х, yvals, 'г', метка = 'значения polyfit насекомых')
plot3 = PLT. участок (х, yhunt, 's', метка = 'хищников исходные значения')
plot4 = plt.plot (х, yhuntvals, 'г', метка = 'значения polyfit хищников')
plt.xlabel ( 'ДАТА')
plt.ylabel ( 'Ночь ловит loglO (N +. 1)')
plt.legend (ЛОК =. 4) в нижнем правом углу Легенда # Specify
plt.title ( 'Насекомое / Predator')
PLT. шоу ()
Цифра одно изображение и множество гауссовского фитинга
Фигура полином подгонка изображения
Положение легенды можно настроить
нижний левый
верхний центральный
нижний правый
центральный
верхний левый
центре слева
верхний правый
нижний центральный
лучший
центр правый
правый