Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!

Data Science

Machine learning & data science for beginners and experts alike.
DavidM
Alteryx
Alteryx

How about using Facebook's Prophet package for time series forecasting in Alteryx Designer?

 

Hmm, interesting that you ask! I have been trying to do that thing for ages now.

 

Facebook research lab's premise is that Prophet package is to time-series as Forest Model is to classification and regression (almost, anyway). This bad boy is the Chuck Noris of time series if you will.  Throw just about anything at it and it will do the trick.

 

Alright, I am listening.

 

image.png

 

But man oh man does it come with painful deployment. I mean, it did. All solved now. As Prophet relies on Pystan and multiple non-python dependencies (it's actually C++ I think), it is quite painful (read virtually impossible without smashing your notebook against the wall) to deploy with PIP.

 

So finally, when Alteryx released 2019.3 version and introduced package management with CONDA I could use it to install the Prophet package with all its dependencies

 

image.png

 

So What Is Prophet?

Prophet is a forecasting tool available in Python and R, developed by Facebook research labs as open sourced projectAt its core, the Prophet procedure is an additive regression model with four main components (find more here).

 

 

Why bother? 

Forecasting is a data science task that is central to many activities within an organisation. For instance, large organizations like Facebook must engage in capacity planning to efficiently allocate scarce resources and goal setting in order to measure performance relative to a baseline.

 

 

So what's the problem?

Producing high quality forecasts is not an easy problem for either machines or for most analysts. Completely automated forecasted techniques can be brittle and are often inflexible. Plus, analysts who can deliver high-quality forecast are quite rare because this data science skill requires substantial experience.

 

 

Any solution to that?

Facebook created Prophet to fix these problems with the premise of making it easier for experts and non-experts to make high-quality forecasts that keep up with demand.  Facebook has found that by combining automatic forecasting with analyst-in-the-loop forecasts for special cases, it is possible to cover a wide variety of business use-casesWith Prophet, you are not stuck with the results of a completely automatic procedure if the forecast is not satisfactory — an analyst with no training in time series methods can improve or tweak forecasts using a variety of easily-interpretable parameters.


 

image.png

 



Where Prophet shines?

Prophet is optimised for the business forecast tasks which typically have any of the following characteristics:

  • hourly, daily, or weekly observations with at least a few months (preferably a year) of history
  • strong multiple “human-scale” seasonalities: day of week and time of year
  • important holidays that occur at irregular intervals that are known in advance (eg. Super Bowl)
  • a reasonable number of missing observations or large outliers
  • historical trend changes, for instance due to product launches or logging changes
  • trends that are non-linear growth curves, where a trend hits a natural limit or saturates


What's the bottom line?

Prophet makes it much more straightforward to create a reasonable, accurate forecast. The forecast package includes many different forecasting techniques (ARIMA, exponential smoothing, etc), each with their own strengths, weaknesses, and tuning parameters.  Prophet forecasts are customisable in ways that are intuitive to non-experts. There are smoothing parameters for seasonality that allow you to adjust how closely to fit historical cycles, as well as smoothing parameters for trends that allow you to adjust how aggressively to follow historical trend changes. 



So Let's Alteryx that Bad Boy!

I have chosen a dataset of Medium posts over the past 5+ year to test Prophet in Alteryx.  The goal is to create predictions (forecast) of how many posts will be generated over the next 60 days.

 

image.png



Install that thing.

First of all, you actually need to install Prophet using CONDA. Follow the instructions from this post to get this done. As CONDA reinstalls quite a big portion of base packages I would suggest you back up the Alteryx Python env directory.



Alteryx handles the data prep (naturally).

The workflow and original datasets are attached. My workflow utilizes Alteryx to prepare the dataset of Medium posts, and streams the data directly to the Python Code Tool where all the Prophet magic happens.

 

A few points to note:

The input data streamed to the Python tool is simply DATE (labeled [ds]) and VALUE (labeled [y]). Notice that tons of data points are actually missing as Medium picked up its massive user base slowly over time. 

 

The data is sorted by DATE ascending. Both [ds] and [y] columns are strings. Had some issues with int data type conversions for Python tool and doing some conversions in Python directly. 

 

You could take just about any problem you are facing, do the same formatting of your data and stream that into the Python tool I am using. 

 

image.png




Visualisations in Python Code Tool

I am using several plots directly within the Python Code tool. Just open it to check out.  First, I am plotting the number of Daily Medium Posts over Time between 2010 and 2017.

 

It is hard to infer anything meaningful from this chart, apart from the prominent upward and accelerating trend.  Bucketing this a bit differently, maybe in weekly bins would be easier on the eye. Too bad I am lazy 🙂


 

image.png


And once modelling is done, Prophet allows me to easily plot the forecast data with things like outliers and confidence intervals. Straight out of the box with a simple one-line function call.  The plot below is simply showcasing the model learning based on historical data and then forecasting the future 60 days of posts.


 

image.png

 

There are also various plots for components of the model, like trend, weekly and yearly seasonality and others. Prophet did a good job by fitting the accelerated growth of new posts at the end of 2016.

 

The graph of weekly seasonality indicates that there are a few fewer new posts on Saturdays and Sundays than on the other days of the week. That lawn won't cut itself over the weekend right? Yeah, I've been there.


 

image.png

 

I have actually tried to stream most of the important datasets out of the Python tool.

 

One is the dataset of forecasted data from Prophet's model:


image.png



Another output compares Forecast (yhat) with the actual historic data [y]:


image.png



And the last one with error measures:


image.png



Now a little step sideways:

 

How Does That All Compare to Alteryx Time Series Tools?

I have actually wondered If I use the ARIMA and ETS tools that are pretty much out of the box with Alteryx - how will that compare to the Prophet package?

 

Building the workflow with the same dataset and same holdout sample, predicting 60 days of posts into the future took about 3 minutes with Alteryx.


 

image.png



This is the error measures for both ARIMA and ETS models. Interestingly I am getting lower error measures here than with Prophet tool. Truth be told I have not really done any hyperparameter tuning for any of the models.

 

Note: this testing workflow is also attached.

 

image.png



Last thing, the code itself:

 

 

 

 

 

# List all non-standard packages to be imported by your 
# script here (only missing packages will be installed)
from ayx import Package
#Package.installPackages(['pandas','numpy'])
from ayx import Alteryx

# Pip won't work with Prophet -> install with CONDA
# https://github.com/facebook/prophet/issues/715
# There are issues with pystan C++ compiler not working correctly
Package.installPackages(['statsmodels','plotly','patsy','scipy'])       
import warnings
import numpy as np
import pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
daily_df = Alteryx.read("#1")   #Load the pre-processed medium data, aggregated by date, ASC sorted by date
Alteryx.readMetadata("#1")   #Read metadata from connection #1
#print(daily_df.dtypes)
daily_df[["y"]] = daily_df[["y"]].apply(pd.to_numeric) #Explictly change datatype for value column "y" to numeric - had some issues when relying in Select tool
daily_df.head(10)
#print(daily_df.dtypes)
#Simple pandas plot of historic daily figures
daily_df.plot(x ='ds', y='y', kind = 'line',figsize=(15,10), title='Number of Daily Medium Posts over Time')
from fbprophet import Prophet
import logging
logging.getLogger().setLevel(logging.ERROR)     #mute unimportant diagnostic messages

prediction_size = 60     #We want to predict 60 data points, i.e. 60 days
train_df = daily_df[:-prediction_size]     #Construct the train dataset, remove holdout for validation
print(train_df)
Alteryx.write(train_df,1)  #Train Dataframe output to connection #1
m = Prophet()      #Insantiate prophet model
m.fit(train_df);   #Train our model by invoking its fit method on our training dataset

future = m.make_future_dataframe(periods=prediction_size)  #create a dataframe with all dates from the history and also extend into the future   
future.head(n=10) 

forecast = m.predict(future)   #Predict values; pass in the dates for which we want to create a forecast
forecast.head(n=10)
#print(forecast.dtypes)
Alteryx.write(forecast,2)  #Forecasted Dataframe output to connection #2
m.plot(forecast); #The Prophet library has its own built-in functions for quickly visualizing the results

m.plot_components(forecast); #Observe different components of the model separately: trend, yearly and weekly seasonality
print(', '.join(forecast.columns))  #Check out all available columns in forecast
print(forecast.dtypes)
#Set indexes on forecast and daily_df before join
forecast.set_index('ds',inplace=True)
daily_df.set_index('ds',inplace=True)

#Join the forecast object with the actual values y from the original dataset
cmp_df=forecast.join(daily_df)[['yhat', 'yhat_lower', 'yhat_upper','y']]

#Reset index so the date -- ds value -- is written to Ayx output dataset
cmp_df.reset_index(level=0, inplace=True)
cmp_df.tail(n=10)

Alteryx.write(cmp_df,3)  #Comparison data to output #3
#Helper function that we will use to understand the quality of our forecasting with MAPE and MAE error measures
def calculate_forecast_errors(df, prediction_size):
    """Calculate MAPE and MAE of the forecast.
    
       Args:
           df: joined dataset with 'y' and 'yhat' columns.
           prediction_size: number of days at the end to predict.
    """
    
    # Make a copy
    df = df.copy()
    
    # Now we calculate the values of e_i and p_i according to the formulas given in the article above.
    df['e'] = df['y'] - df['yhat']
    df['p'] = 100 * df['e'] / df['y']
    
    # Recall that we held out the values of the last `prediction_size` days
    # in order to predict them and measure the quality of the model. 
    
    # Now cut out the part of the data which we made our prediction for.
    predicted_part = df[-prediction_size:]
    
    # Define the function that averages absolute error values over the predicted part.
    error_mean = lambda error_name: np.mean(np.abs(predicted_part[error_name]))
    
    # Now we can calculate MAPE and MAE and return the resulting dictionary of errors.
    return {'MAPE': error_mean('p'), 'MAE': error_mean('e')}
#Placeholder for measures output DF  
df_measures=pd.DataFrame()

#Use our function to get MAPE and MAE measures
for err_name, err_value in calculate_forecast_errors(cmp_df, prediction_size).items():
    print(err_name, err_value)
    df = pd.DataFrame({"Name":[err_name],"Value":[err_value]}) 
    df_measures = df_measures.append(df,  ignore_index = True, sort = False) #Append to the data frame placeholder
    
Alteryx.write(df_measures,4)  #Perf measures to connection 4

 

 

 

 

 

Wrap Up

Well, we have CONDA finally allowing us to install Prophet and all its non-Python dependencies.  We have done a brief intro to Prophet and built a nice sample workflow that can be easily reused to whatever date you want to throw at it. Just grab the code, or the sample workflow attached. And lastly we have compared Prophet to ARIMA and ETS out of the box tools.

 

I think that Prophet is super nice and actually does not require much for you to be able to use it.  Even without any hyperparameter tuning (maybe next time) it produced pretty solid results.

 

I think there are certain use cases where it will shine (mentioned top of this article) and its use can definitely be considered while building forecast models.


 

image.png



More Resources

Facebook's Research team pages: Intro To Prophet

TDS: Implementing Prophet Effectively

TDS: Time Series with Prophet Effectively

Utilizing Prophet on Kaggle

 

Cheers,

DM

Comments
marco_zara
8 - Asteroid

Sounds great!

 

Any chance to see this implemented in a release any time soon?

Alteryx is loosing steam on machine learning as it's missing a lot of stuff:

 

- multicore ML libraries (Ranger package for random forest for example)

- anything remotely modern for boosting (XGBoost, LightGBM, Catboost)

- Basic clustering options for non-numerical data (k-modes)

- Anything to help manage ML on non-structured data 

 

Please make Alteryx relevant for data science again! 

TimothyL
Alteryx Alumni (Retired)
marco_zara
8 - Asteroid

Thank you, is there any chance we will see them officially implemented any time soon?

neilgallen
12 - Quasar

after upgrading to the latest stable build I have had issues when attempting to use prophet. I have not been able to get it to install...any ideas?

 

I'm running an admin install of alteryx as an administrator and get the following error when trying to install through the python tool..

 

Collecting fbprophet
  Using cached https://files.pythonhosted.org/packages/33/fb/ad98d46773929079657706e6b2b6e366ba6c282bc2397d8f9b0ea8e5614c/fbprophet-0.5.tar.gz
Requirement already satisfied: Cython>=0.22 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from fbprophet) (0.29.13)
Requirement already satisfied: pystan>=2.14 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from fbprophet) (2.19.1.1)
Requirement already satisfied: numpy>=1.10.0 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from fbprophet) (1.16.4)
Requirement already satisfied: pandas>=0.23.4 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from fbprophet) (0.24.2)
Requirement already satisfied: matplotlib>=2.0.0 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from fbprophet) (3.1.0)
Requirement already satisfied: lunardate>=0.1.5 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from fbprophet) (0.2.0)
Requirement already satisfied: convertdate>=2.1.2 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from fbprophet) (2.2.0)
Requirement already satisfied: holidays>=0.9.5 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from fbprophet) (0.9.11)
Requirement already satisfied: setuptools-git>=1.2 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from fbprophet) (1.2)
Requirement already satisfied: python-dateutil>=2.5.0 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from pandas>=0.23.4->fbprophet) (2.8.0)
Requirement already satisfied: pytz>=2011k in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from pandas>=0.23.4->fbprophet) (2019.1)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from matplotlib>=2.0.0->fbprophet) (2.4.0)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from matplotlib>=2.0.0->fbprophet) (1.1.0)
Requirement already satisfied: cycler>=0.10 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from matplotlib>=2.0.0->fbprophet) (0.10.0)
Requirement already satisfied: pymeeus<=1,>=0.3.6 in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from convertdate>=2.1.2->fbprophet) (0.3.6)
Requirement already satisfied: six in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from holidays>=0.9.5->fbprophet) (1.12.0)
Requirement already satisfied: setuptools in c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages (from kiwisolver>=1.0.1->matplotlib>=2.0.0->fbprophet) (41.0.1)
Building wheels for collected packages: fbprophet
  Building wheel for fbprophet (setup.py): started
  Building wheel for fbprophet (setup.py): finished with status 'error'
  ERROR: Complete output from command 'c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\NEALLEN\\AppData\\Local\\Temp\\pip-install-pmb1q_ge\\fbprophet\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\NEALLEN\AppData\Local\Temp\pip-wheel-e_aay6ks' --python-tag cp36:
  ERROR: running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib
  creating build\lib\fbprophet
  creating build\lib\fbprophet\stan_model
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\NEALLEN\AppData\Local\Temp\pip-install-pmb1q_ge\fbprophet\setup.py", line 120, in <module>
      """
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\setuptools\__init__.py", line 145, in setup
      return distutils.core.setup(**attrs)
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\core.py", line 148, in setup
      dist.run_commands()
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\dist.py", line 955, in run_commands
      self.run_command(cmd)
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\dist.py", line 974, in run_command
      cmd_obj.run()
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\wheel\bdist_wheel.py", line 192, in run
      self.run_command('build')
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\dist.py", line 974, in run_command
      cmd_obj.run()
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\command\build.py", line 135, in run
      self.run_command(cmd_name)
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\dist.py", line 974, in run_command
      cmd_obj.run()
    File "C:\Users\NEALLEN\AppData\Local\Temp\pip-install-pmb1q_ge\fbprophet\setup.py", line 44, in run
      build_stan_model(target_dir)
    File "C:\Users\NEALLEN\AppData\Local\Temp\pip-install-pmb1q_ge\fbprophet\setup.py", line 27, in build_stan_model
      from pystan import StanModel
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\pystan\__init__.py", line 9, in <module>
      from pystan.api import stanc, stan
    File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\pystan\api.py", line 13, in <module>
      import pystan._api  # stanc wrapper
  ImportError: DLL load failed: The specified module could not be found.
  ----------------------------------------
  ERROR: Failed building wheel for fbprophet
  Running setup.py clean for fbprophet
Failed to build fbprophet
Installing collected packages: fbprophet
  Running setup.py install for fbprophet: started
    Running setup.py install for fbprophet: finished with status 'error'
    ERROR: Complete output from command 'c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\NEALLEN\\AppData\\Local\\Temp\\pip-install-pmb1q_ge\\fbprophet\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\NEALLEN\AppData\Local\Temp\pip-record-h0j7c2cn\install-record.txt' --single-version-externally-managed --compile:
    ERROR: running install
    running build
    running build_py
    creating build
    creating build\lib
    creating build\lib\fbprophet
    creating build\lib\fbprophet\stan_model
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\NEALLEN\AppData\Local\Temp\pip-install-pmb1q_ge\fbprophet\setup.py", line 120, in <module>
        """
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\setuptools\__init__.py", line 145, in setup
        return distutils.core.setup(**attrs)
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\core.py", line 148, in setup
        dist.run_commands()
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\setuptools\command\install.py", line 61, in run
        return orig.install.run(self)
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\command\install.py", line 545, in run
        self.run_command('build')
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\command\build.py", line 135, in run
        self.run_command(cmd_name)
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "C:\Users\NEALLEN\AppData\Local\Temp\pip-install-pmb1q_ge\fbprophet\setup.py", line 44, in run
        build_stan_model(target_dir)
      File "C:\Users\NEALLEN\AppData\Local\Temp\pip-install-pmb1q_ge\fbprophet\setup.py", line 27, in build_stan_model
        from pystan import StanModel
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\pystan\__init__.py", line 9, in <module>
        from pystan.api import stanc, stan
      File "c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\pystan\api.py", line 13, in <module>
        import pystan._api  # stanc wrapper
    ImportError: DLL load failed: The specified module could not be found.
    ----------------------------------------
ERROR: Command "'c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\NEALLEN\\AppData\\Local\\Temp\\pip-install-pmb1q_ge\\fbprophet\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\NEALLEN\AppData\Local\Temp\pip-record-h0j7c2cn\install-record.txt' --single-version-externally-managed --compile" failed with error code 1 in C:\Users\NEALLEN\AppData\Local\Temp\pip-install-pmb1q_ge\fbprophet\
---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
<ipython-input-4-32e1fa14d15a> in <module>
      2 # script here (only missing packages will be installed)
      3 from ayx import Package
----> 4 Package.installPackages(['fbprophet'])

c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\ayx\Package.py in installPackages(package, install_type, debug)
    112     print(pip_install_result['msg'])
    113     if not pip_install_result['success']:
--> 114         raise pip_install_result['err']

c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\site-packages\ayx\Utils.py in runSubprocess(args_list, debug)
     56 
     57     try:
---> 58         result = subprocess.check_output(args_list, stderr=subprocess.STDOUT)
     59         if debug:
     60             print("[Subprocess success!]")

c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\subprocess.py in check_output(timeout, *popenargs, **kwargs)
    354 
    355     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
--> 356                **kwargs).stdout
    357 
    358 

c:\program files\alteryx\bin\miniconda3\envs\jupytertool_venv\lib\subprocess.py in run(input, timeout, check, *popenargs, **kwargs)
    436         if check and retcode:
    437             raise CalledProcessError(retcode, process.args,
--> 438                                      output=stdout, stderr=stderr)
    439     return CompletedProcess(process.args, retcode, stdout, stderr)
    440 

CalledProcessError: Command '['c:\\program files\\alteryx\\bin\\miniconda3\\envs\\jupytertool_venv\\python.exe', '-m', 'pip', 'install', 'fbprophet']' returned non-zero exit status 1.

 

any ideas? I've attempted through the command line as well to no success.

DavidM
Alteryx
Alteryx

Hi @neilgallen.,

 

You are getting the exact same issue I was getting when I tried to get the FBPROPHET package using the InstallPackages() function directly from Alteryx.

 

This relies on pip to get the packages and as I mentioned in this article this won't work on FBPROPHET as it requires some C# dependencies. 

 

You need to use CONDA from command line as described at the same article to install the package.

This resolved the issue for me. Try to follow the instructions from there please.


Cheers

david

neilgallen
12 - Quasar

@DavidMBingo! Thanks!

TimothyL
Alteryx Alumni (Retired)

For user who is looking for a drag & drop Prophet Tool, recently we have developed one. Please refer here:

https://community.alteryx.com/t5/Data-Science-Blog/Expand-Your-Predictive-Palette-III-I-Sales-Foreca...

sanjay_shinde
8 - Asteroid
Well Written, Kudos!!