显示关键错误

时间:2018-03-11 08:34:16

标签: python-2.7 machine-learning

我正在尝试使用recomendation引擎来预测最畅销的产品,它显示出关键错误,我正在使用python2 anaconda jupyter notebook.hw这样做我可以来自此错误

 import pandas as pd
 import numpy as np
 import operator

SMOOTHING_WINDOW_FUNCTION = np.hamming
SMOOTHING_WINDOW_SIZE = 7

def train():
    df = pd.read_csv('C:\\Users\SHIVAPRASAD\Desktop\sample-cart-add-data 
(1).csv')
    df.sort_values(by=['id', 'age'], inplace=True)
    trends = pd.pivot_table(df, values='count', index=['id', 'age'])

    trend_snap = {}

    for i in np.unique(df['id']):
        trend = np.array(trends[i])
        smoothed = smooth(trend, SMOOTHING_WINDOW_SIZE, 
 SMOOTHING_WINDOW_FUNCTION)
        nsmoothed = standardize(smoothed)
        slopes = nsmoothed[1:] - nsmoothed[:-1]
         # I blend in the previous slope as well, to stabalize things a bit 
         # give a boost to things that have been trending for more than1day[![key error][1]][1] 

        if len(slopes) > 1:
            trend_snap[i] = slopes[-1] + slopes[-2] * 0.5
    return sorted(trend_snap.items(), key=operator.itemgetter(1), 
reverse=True)

def smooth(series, window_size, window):
    ext = np.r_[2 * series[0] - series[window_size-1::-1],
                series,
                2 * series[-1] - series[-1:-window_size:-1]]
     weights = window(window_size)
    smoothed = np.convolve(weights / weights.sum(), ext, mode='same')
    return smoothed[window_size:-window_size+1]


def standardize(series):
     iqr = np.percentile(series, 75) - np.percentile(series, 25)
     return (series - np.median(series)) / iqr


 trending = train()
  print "Top 5 trending products:"
 for i, s in trending[:5]:
      print "Product %s (score: %2.2f)" % (i, s)

1 个答案:

答案 0 :(得分:2)

insted of

  

trend = np.array(trends [i])使用trend = np.array(trends.loc [i])