Coder Social home page Coder Social logo

dougransom / vix_utils Goto Github PK

View Code? Open in Web Editor NEW
39.0 39.0 6.0 6.83 MB

vix_utils provides command line tools and a a Python API for preparing data for analysing the VIX Futures and Cash Term structures. Term Structure data can be exported to excel (.xslx), csv, and pickle formats.

License: MIT License

Batchfile 0.01% Python 31.41% PowerShell 0.15% Jupyter Notebook 68.43%

vix_utils's People

Contributors

dougransom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vix_utils's Issues

P2: Can't call vix_utils from Jupyter notebook due to asyncio

I tried using a Jupyter notebook import values from vix_utils to print a term structure though it won't work due to asyncio. Even adding %autowait asyncio did not help.

This is a nice to have IMO. I was able to work around it by running python from command line, exporting values to a .CSV, then importing those into the Jupyter notebook afterwards.

URLs for retrieving cash vix data no longer avaliable

Hello,

it seems that destination URLs for cash VIX assets are no longer avaliable:

DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vixcurrent.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vvixtimeseries.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vix9ddailyprices.csv lines_to_discard 3
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vix3mdailyprices.csv lines_to_discard 2
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vix6mdailyprices.csv lines_to_discard 2
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/gvzhistory.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com//publish/scheduledtask/mktdata/datahouse/RVOL_History.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com//publish/scheduledtask/mktdata/datahouse/RVOL3M_History.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com//publish/scheduledtask/mktdata/datahouse/RVOL6M_History.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com//publish/scheduledtask/mktdata/datahouse/RVOL12M_History.csv lines_to_discard 1

<title>ww2.cboe.com | 522: Connection timed out</title>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Co
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): data.nasdaq.com:443
vvixtimeseries.csv:  <!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
<head>

Best regards

Is it still working in 2022?

I tried to get your project to work but sadly I could not run it on my machine. I did set the Quandl API-Key but got the following error:

$ python vixutil.py -r
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vixcurrent.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vvixtimeseries.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vix9ddailyprices.csv lines_to_discard 3
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vix3mdailyprices.csv lines_to_discard 2
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/vix6mdailyprices.csv lines_to_discard 2
DEBUG:root:
Reading URL https://ww2.cboe.com/publish/scheduledtask/mktdata/datahouse/gvzhistory.csv lines_to_discard 1
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): data.nasdaq.com:443
DEBUG:root:
Reading URL https://ww2.cboe.com//publish/scheduledtask/mktdata/datahouse/RVOL_History.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com//publish/scheduledtask/mktdata/datahouse/RVOL3M_History.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com//publish/scheduledtask/mktdata/datahouse/RVOL6M_History.csv lines_to_discard 1
DEBUG:root:
Reading URL https://ww2.cboe.com//publish/scheduledtask/mktdata/datahouse/RVOL12M_History.csv lines_to_discard 1
DEBUG:urllib3.connectionpool:https://data.nasdaq.com:443 "GET /api/v3/datasets/CHRIS/CBOE_VX1/data?order=asc HTTP/1.1" 400 None
DEBUG:root:Elapsed time 0.9928695 for add_columns_d  (1,)
DEBUG:root:Elapsed time 0.7521585 for add_columns_d  (2,)
DEBUG:root:Elapsed time 0.7462510999999998 for add_columns_d  (3,)
DEBUG:root:Elapsed time 0.7608498999999997 for add_columns_d  (4,)
DEBUG:root:Elapsed time 0.7459508999999995 for add_columns_d  (5,)
DEBUG:root:Elapsed time 0.7462115000000002 for add_columns_d  (6,)
DEBUG:root:Elapsed time 0.7460955 for add_columns_d  (7,)
DEBUG:root:Elapsed time 0.7728456999999995 for add_columns_d  (8,)
DEBUG:root:Elapsed time 0.7422424000000003 for add_columns_d  (9,)
DEBUG:root:Elapsed time 7.010064 for concat  (<generator object vix_futures_trade_dates_and_settlement_dates.<locals>.<genexpr> at 0x00000221C6D3
DEBUG:root:Elapsed time 0.016347099999999948 for pivot_on_contract_maturity  (            Contract Month  ... Days to Settlement
Trade Date                  ...
DEBUG:root:Elapsed time 7.034779800000001 for vix_futures_trade_dates_and_settlement_dates  ()
Rebuilding data files from Quandl and CBOE
Traceback (most recent call last):
  File "F:\OneDrive\ProgrammSpeicher\PycharmProjects\StockAPI\vix_utils\vixutil.py", line 264, in <module>
    main()
  File "F:\OneDrive\ProgrammSpeicher\PycharmProjects\StockAPI\vix_utils\vixutil.py", line 238, in main
    timeit(logging.INFO)(asyncio.run)(vutils.rebuild())
  File "C:\Users\Luecx\AppData\Roaming\Python\Python39\site-packages\vix_utils\futures_utils.py", line 21, in timed
    result = method(*args, **kw)
  File "C:\Program Files\Python39\lib\asyncio\runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 642, in run_until_complete
    return future.result()
  File "F:\OneDrive\ProgrammSpeicher\PycharmProjects\StockAPI\vix_utils\vixutil.py", line 78, in rebuild
    (cash_vix, _, wide_vix_calendar) = await asyncio.gather(ch, download_quandl_coro, wide_vix_calendar_coro)
  File "C:\Program Files\Python39\lib\asyncio\threads.py", line 25, in to_thread
    return await loop.run_in_executor(None, func_call)
  File "C:\Program Files\Python39\lib\concurrent\futures\thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "C:\Users\Luecx\AppData\Roaming\Python\Python39\site-packages\vix_utils\vix_futures_term_struture.py", line 305, in download_quandle_data
    for m, df in zmvix:
  File "C:\Users\Luecx\AppData\Roaming\Python\Python39\site-packages\vix_utils\vix_futures_term_struture.py", line 304, in <genexpr>
    zmvix = zip(months, (method(a) for a in qc))
  File "C:\Users\Luecx\AppData\Roaming\Python\Python39\site-packages\quandl\get.py", line 48, in get
    data = Dataset(dataset_args['code']).data(params=kwargs, handle_column_not_found=True)
  File "C:\Users\Luecx\AppData\Roaming\Python\Python39\site-packages\quandl\model\dataset.py", line 47, in data
    return Data.all(**updated_options)
  File "C:\Users\Luecx\AppData\Roaming\Python\Python39\site-packages\quandl\operations\list.py", line 15, in all
    r = Connection.request('get', path, **options)
  File "C:\Users\Luecx\AppData\Roaming\Python\Python39\site-packages\quandl\connection.py", line 38, in request
    return cls.execute_request(http_verb, abs_url, **options)
  File "C:\Users\Luecx\AppData\Roaming\Python\Python39\site-packages\quandl\connection.py", line 50, in execute_request
    cls.handle_api_error(response)
  File "C:\Users\Luecx\AppData\Roaming\Python\Python39\site-packages\quandl\connection.py", line 114, in handle_api_error
    raise klass(message, resp.status_code, resp.text, resp.headers, code)
quandl.errors.quandl_error.AuthenticationError: (Status 400) (Quandl Error QEAx01) We could not recognize your API key: This is not a valid quandle key F:\OneDrive\ProgrammSpeicher\PycharmProjects\StockAPI\vix_utils\vixutil.py. Please check your API key and try again. You can find your API key under your account settings.
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000221C59C8DC0>
Traceback (most recent call last):
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Program Files\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Program Files\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

Incorrect comment in example - vixutil -r

"What is the command line equivalent of -r so I can use/run src\examples\sample_plots.py?

Goal is to display the cash term structure with 1st, 2nd, etc month futures values (VX1, VX2, ...) using data pulled by vix_util.

3-24 Add: I was able to successfully run examples\sample_plots.py. That said its comments state you need to first run vixutil -r to download data which wasn't true with this version. That's a sample/comment bug. Updating docs to reflect there is now no -r command line option would be a plus :)"

From a comment in #15

Documentation - Add Some

Instead of just the examples and readme.md, some documentation on how to use would be expected.

Help Wanted - Checking the Results

If you are interested in this project, maybe use the command line utility to generate the weighted 30 day tenor and look for anomalies.

Same for the other outputs though I think these are less likely to have errors, except perhaps the weights from vixutil -w

P1: Can't do sample plot of term structure with today's date (after close) where date of last day market open works.

I got sample_plot_term_structure.py working over weekend and it seems to work with yesterday's date (e.g. 2023-03-24 on Sat 3-25). However it doesn't work with today's date well after 16:00 Central/CBOE time (e.g. 4:50PM Pacific), when Yahoo finance has CBOE values for for 1st and 2nd month forward contracts after today's close.

You should be able to repro this by editing src/examples/sample_plot_term_structure.py - changing the day_of_interest value to today's date (after market close). E.g.

    #plot the term structure for Mon Mar 27, 2023
    day_of_interest = '2023-03-27'
    df_day_of_interest =wide_with_continuous_futures.loc[[day_of_interest]]

This is the output from running the sample with above change. It works if I set day_of_interest to '2023-03-24' and Yahoo finance has CBOE values for market close for 1st and 2nd month forward contracts.

********************************************************************************Running python file:
z:\Downloads\Source-Master\vix_utils\examples\aq_sample_plot_today_term_structure.py

WARNING:root:
Duplicates detected
Trade Date Weekly Tenor_Monthly Tenor_Days Tenor_Trade_Days Expiry Open High Low Close Settle Change Total Volume EFP Open Interest Year MonthOfYear Futures
File Expired
37824 2020-02-27 00:00:00-05:00 True 2.0 26 19.0 2020-03-25 00:00:00-04:00 24.15 25.35 22.15 24.25 25.025 3.000 48 0 63 2020 3 H (Mar 2020) 2020-03-25.w_.CFE_VX_2020.csv True
37825 2020-02-27 00:00:00-05:00 True 2.0 26 19.0 2020-03-25 00:00:00-04:00 24.15 25.35 22.15 24.25 25.025 3.000 48 0 63 2020 3 H (Mar 2020) 2020-03-25.w_.CFE_VX_2020.csv True
37839 2020-02-28 00:00:00-05:00 True 2.0 25 18.0 2020-03-25 00:00:00-04:00 26.50 27.50 25.65 26.50 26.100 1.075 112 0 139 2020 3 H (Mar 2020) 2020-03-25.w_.CFE_VX_2020.csv True
37840 2020-02-28 00:00:00-05:00 True 2.0 25 18.0 2020-03-25 00:00:00-04:00 26.50 27.50 25.65 26.50 26.100 1.075 112 0 139 2020 3 H (Mar 2020) 2020-03-25.w_.CFE_VX_2020.csv True, cleaning them out
Traceback (most recent call last):
File "z:\Downloads\Source-Master\vix_utils\examples\aq_sample_plot_today_term_structure.py", line 71, in
main()
File "z:\Downloads\Source-Master\vix_utils\examples\aq_sample_plot_today_term_structure.py", line 51, in main
df_day_of_interest =wide_with_continuous_futures.loc[[day_of_interest]]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "C:\Users\R Dev\anaconda3\envs\VixUtils\Lib\site-packages\pandas\core\indexing.py", line 1073, in getitem
return self._getitem_axis(maybe_callable, axis=axis)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\R Dev\anaconda3\envs\VixUtils\Lib\site-packages\pandas\core\indexing.py", line 1301, in _getitem_axis
return self._getitem_iterable(key, axis=axis)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\R Dev\anaconda3\envs\VixUtils\Lib\site-packages\pandas\core\indexing.py", line 1239, in _getitem_iterable
keyarr, indexer = self._get_listlike_indexer(key, axis)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\R Dev\anaconda3\envs\VixUtils\Lib\site-packages\pandas\core\indexing.py", line 1432, in _get_listlike_indexer
keyarr, indexer = ax._get_indexer_strict(key, axis_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\R Dev\anaconda3\envs\VixUtils\Lib\site-packages\pandas\core\indexes\base.py", line 6070, in _get_indexer_strict
File "C:\Users\R Dev\anaconda3\envs\VixUtils\Lib\site-packages\pandas\core\indexes\base.py", line 6070, in _get_indexer_strict
self._raise_if_missing(keyarr, indexer, axis_name)
File "C:\Users\R Dev\anaconda3\envs\VixUtils\Lib\site-packages\pandas\core\indexes\base.py", line 6070, in _get_indexer_strict
File "C:\Users\R Dev\anaconda3\envs\VixUtils\Lib\site-packages\pandas\core\indexes\base.py", line 6070, in _get_indexer_strict
self._raise_if_missing(keyarr, indexer, axis_name)
File "C:\Users\R Dev\anaconda3\envs\VixUtils\Lib\site-packages\pandas\core\indexes\base.py", line 6130, in _raise_if_missing
raise KeyError(f"None of [{key}] are in the [{axis_name}]")
KeyError: "None of [Index(['2023-03-27'], dtype='object', name='Trade Date')] are in the [index]"

long load time

It take awhile to load the data into a dataframe for the futures history, even though most of it is cached.

Any futures which are not expired, are read every time a program is run (at least the results are cached for the remainder of the program).

some logic to avoid rebuilding the dataframe, as long as all futures downloaded are current to the end of the most recent close of trading, would speed this up immensely.

I think the easiest way to to look at the last trade date in the cached data stored in skinny.pkl.

Only if the most recent close of trading is more recent that the last recorded trade date (say be 30 minutes since there will be delay before CBOE publishes the current day), then rebuild the dataframe in async_load_vix_term_structure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.