<small id='2I9hq'></small><noframes id='2I9hq'>

<legend id='2I9hq'><style id='2I9hq'><dir id='2I9hq'><q id='2I9hq'></q></dir></style></legend>

  • <tfoot id='2I9hq'></tfoot>

      • <bdo id='2I9hq'></bdo><ul id='2I9hq'></ul>

      <i id='2I9hq'><tr id='2I9hq'><dt id='2I9hq'><q id='2I9hq'><span id='2I9hq'><b id='2I9hq'><form id='2I9hq'><ins id='2I9hq'></ins><ul id='2I9hq'></ul><sub id='2I9hq'></sub></form><legend id='2I9hq'></legend><bdo id='2I9hq'><pre id='2I9hq'><center id='2I9hq'></center></pre></bdo></b><th id='2I9hq'></th></span></q></dt></tr></i><div id='2I9hq'><tfoot id='2I9hq'></tfoot><dl id='2I9hq'><fieldset id='2I9hq'></fieldset></dl></div>
      1. 我可以在skLearning上进行对数回归吗?

        Can I make a logarithmic regression on sklearn?(我可以在skLearning上进行对数回归吗?)
        • <i id='KUzfS'><tr id='KUzfS'><dt id='KUzfS'><q id='KUzfS'><span id='KUzfS'><b id='KUzfS'><form id='KUzfS'><ins id='KUzfS'></ins><ul id='KUzfS'></ul><sub id='KUzfS'></sub></form><legend id='KUzfS'></legend><bdo id='KUzfS'><pre id='KUzfS'><center id='KUzfS'></center></pre></bdo></b><th id='KUzfS'></th></span></q></dt></tr></i><div id='KUzfS'><tfoot id='KUzfS'></tfoot><dl id='KUzfS'><fieldset id='KUzfS'></fieldset></dl></div>

            <small id='KUzfS'></small><noframes id='KUzfS'>

                  <tbody id='KUzfS'></tbody>
                <tfoot id='KUzfS'></tfoot>
              • <legend id='KUzfS'><style id='KUzfS'><dir id='KUzfS'><q id='KUzfS'></q></dir></style></legend>
                  <bdo id='KUzfS'></bdo><ul id='KUzfS'></ul>

                  本文介绍了我可以在skLearning上进行对数回归吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我不知道"对数回归"是否是正确的术语,我需要在我的数据上拟合一条曲线,就像一条多项式曲线,但末尾是平坦的。

                  这是一张图片,蓝色的曲线就是我所拥有的(二阶多项式回归),洋红色的曲线就是我需要的。

                  我搜索了很多,但没有找到,只有线性回归,多项式回归,但没有在skLearning上的对数回归。我需要绘制曲线,然后使用该回归进行预测。

                  编辑

                  以下是我发布的绘图图像的数据:

                  x,y
                  670,75
                  707,46
                  565,47
                  342,77
                  433,73
                  472,46
                  569,52
                  611,60
                  616,63
                  493,67
                  572,11
                  745,12
                  483,75
                  637,75
                  218,251
                  444,72
                  305,75
                  746,64
                  444,98
                  342,117
                  272,85
                  128,275
                  500,75
                  654,65
                  241,150
                  217,150
                  426,131
                  155,153
                  841,66
                  737,70
                  722,70
                  754,60
                  664,60
                  688,60
                  796,55
                  799,62
                  229,150
                  232,95
                  116,480
                  340,49
                  501,65
                  

                  推荐答案

                  如果我理解正确,您希望用y=a*exp(-b*(x-c))+d这样的函数拟合数据。

                  我不确定skLearning是否能做到这一点。但是您可以使用scipy.Optimize.curvefit()将数据与您定义的任何函数进行拟合。(scipy):

                  对于您的情况,我使用您的数据进行了试验,结果如下:

                  import numpy as np
                  import matplotlib.pyplot as plt
                  from scipy.optimize import curve_fit
                  
                  my_data = np.genfromtxt('yourdata.csv', delimiter=',')
                  my_data = my_data[my_data[:,0].argsort()]
                  xdata = my_data[:,0].transpose()
                  ydata = my_data[:,1].transpose()
                  
                  # define a function for fitting
                  def func(x, a, b, c, d):
                      return a * np.exp(-b * (x - c)) + d
                  
                  init_vals = [50, 0, 90, 63]
                  # fit your data and getting fit parameters
                  popt, pcov = curve_fit(func, xdata, ydata, p0=init_vals, bounds=([0, 0, 90, 0], [1000, 0.1, 200, 200]))
                  # predict new data based on your fit
                  y_pred = func(200, *popt)
                  print(y_pred)
                  
                  plt.plot(xdata, ydata, 'bo', label='data')
                  plt.plot(xdata, func(xdata, *popt), '-', label='fit')
                  plt.xlabel('x')
                  plt.ylabel('y')
                  plt.legend()
                  plt.show()
                  

                  我发现b的初始值对于拟合至关重要。我估计了一个很小的范围,然后对数据进行了拟合。

                  如果您对xy之间的关系没有先验知识,您可以使用SkLearning提供的回归方法,如线性回归、核岭回归(KRR)、最近邻回归、高斯过程回归等来拟合非线性数据。Find the documentation here

                  这篇关于我可以在skLearning上进行对数回归吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
                  Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
                  Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
                  Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
                  Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)
                  Grouping pandas DataFrame by 10 minute intervals(按10分钟间隔对 pandas 数据帧进行分组)

                  <small id='50YSQ'></small><noframes id='50YSQ'>

                  • <i id='50YSQ'><tr id='50YSQ'><dt id='50YSQ'><q id='50YSQ'><span id='50YSQ'><b id='50YSQ'><form id='50YSQ'><ins id='50YSQ'></ins><ul id='50YSQ'></ul><sub id='50YSQ'></sub></form><legend id='50YSQ'></legend><bdo id='50YSQ'><pre id='50YSQ'><center id='50YSQ'></center></pre></bdo></b><th id='50YSQ'></th></span></q></dt></tr></i><div id='50YSQ'><tfoot id='50YSQ'></tfoot><dl id='50YSQ'><fieldset id='50YSQ'></fieldset></dl></div>

                          <tbody id='50YSQ'></tbody>
                          <bdo id='50YSQ'></bdo><ul id='50YSQ'></ul>
                        • <tfoot id='50YSQ'></tfoot>
                          <legend id='50YSQ'><style id='50YSQ'><dir id='50YSQ'><q id='50YSQ'></q></dir></style></legend>