为机器学习选择正确的数据类型

时间:2012-10-04 21:28:40

标签: python scipy scikit-learn

我对machine learning非常好奇,我正在使用this来学习。

我能够毫无问题地编译代码,并生成图表。

我想使用不同的数据源。目前他们正在使用股票价格:

d1 = datetime.datetime(2003, 01, 01)
d2 = datetime.datetime(2008, 01, 01)

symbol_dict = {
        'TOT': 'Total',
        'XOM': 'Exxon',
        'CVX': 'Chevron',
        'COP': 'ConocoPhillips',
     ...
...
    }

symbols, names = np.array(symbol_dict.items()).T

quotes = [finance.quotes_historical_yahoo(symbol, d1, d2, asobject=True)
          for symbol in symbols]

open = np.array([q.open for q in quotes]).astype(np.float)
close = np.array([q.close for q in quotes]).astype(np.float)
  1. quotes返回什么?我知道它是每股的价格,但我得到的是这样的东西:
  2.   

    [rec.array([(datetime.date(2003,1,2),2003,1,2,731217.0,   28.12235692134198,28.5,28.564279672963064,28.09825204398083,12798800.0,28.5),          (datetime.date(2003,1,3),2003,1,3,731218.0,28.329084507042257,28.53,28.634476056338034,28.28890140845071,9221900.0,28.53),          (datetime.date(2003,1,6),2003,1,6,731221.0,28.482778999450247,29.23,29.406761957119297,28.45064046179219,11925100.0,29.23),          ...,

    1. 我想输入自己的数据集。你能给我一个我可以输入quotes的数据集的例子吗?
    2. 整个代码在这里:

      http://scikit-learn.org/dev/auto_examples/applications/plot_stock_market.html

1 个答案:

答案 0 :(得分:2)

如果你在ipython中执行finance.quotes_historical_yahoo?,它会告诉你:

In [53]: finance.quotes_historical_yahoo?
Type:       function
String Form:<function quotes_historical_yahoo at 0x10f311d70>
File:       /Users/dvelkov/src/matplotlib/lib/matplotlib/finance.py
Definition: finance.quotes_historical_yahoo(ticker, date1, date2, asobject=False, adjusted=True, cachename=None)
Docstring:
Get historical data for ticker between date1 and date2.  date1 and
date2 are datetime instances or (year, month, day) sequences.

See :func:`parse_yahoo_historical` for explanation of output formats
and the *asobject* and *adjusted* kwargs.

...(more stuff)

所以我们检查parse_yahoo_historical

In [54]: finance.parse_yahoo_historical?
Type:       function
String Form:<function parse_yahoo_historical at 0x10f996ed8>
File:       /Users/dvelkov/src/matplotlib/lib/matplotlib/finance.py
Definition: finance.parse_yahoo_historical(fh, adjusted=True, asobject=False)
Docstring:
Parse the historical data in file handle fh from yahoo finance.

*adjusted*
  If True (default) replace open, close, high, and low prices with
  their adjusted values. The adjustment is by a scale factor, S =
  adjusted_close/close. Adjusted prices are actual prices
  multiplied by S.

  Volume is not adjusted as it is already backward split adjusted
  by Yahoo. If you want to compute dollars traded, multiply volume
  by the adjusted close, regardless of whether you choose adjusted
  = True|False.


*asobject*
  If False (default for compatibility with earlier versions)
  return a list of tuples containing

    d, open, close, high, low, volume

  If None (preferred alternative to False), return
  a 2-D ndarray corresponding to the list of tuples.

  Otherwise return a numpy recarray with

    date, year, month, day, d, open, close, high, low,
    volume, adjusted_close

  where d is a floating poing representation of date,
  as returned by date2num, and date is a python standard
  library datetime.date instance.

  The name of this kwarg is a historical artifact.  Formerly,
  True returned a cbook Bunch
  holding 1-D ndarrays.  The behavior of a numpy recarray is
  very similar to the Bunch.

如果您使用的是asobject=True,那么您获得的格式为date, year, month, day, d, open, close, high, low, volume, adjusted_close