排除机器学习预测(python)的特定属性

排除机器学习预测(python)的特定属性,python,machine-learning,Python,Machine Learning,我试图预测NBA球员的每日幻想得分。我将每个球员2015-2016 NBA赛季的统计数据保存到csv文件中。问题是,当我试图预测某个特定日期的每日幻想分数时,它会考虑玩家在该日期产生的统计数据。 例如,我的目标是预测2016年2月2日的每日幻想点,并考虑2016年2月2日之前的所有可用数据 import pandas import numpy as np import matplotlib.pyplot as plt from pandas.tools.plotting import scatt

我试图预测NBA球员的每日幻想得分。我将每个球员2015-2016 NBA赛季的统计数据保存到csv文件中。问题是,当我试图预测某个特定日期的每日幻想分数时,它会考虑玩家在该日期产生的统计数据。 例如,我的目标是预测2016年2月2日的每日幻想点,并考虑2016年2月2日之前的所有可用数据

import pandas
import numpy as np
import matplotlib.pyplot as plt
from pandas.tools.plotting import scatter_matrix
import matplotlib.pyplot as plt
import math, datetime, time
from sklearn import cross_validation
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LinearRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVR
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import learning_curve
from sklearn.kernel_ridge import KernelRidge
from sklearn.svm import SVR
from sklearn import preprocessing,cross_validation, svm
import matplotlib.pyplot as plt
from matplotlib import style


filename = 'book2.CSV'
names = ['FG', 'FGA', 'FG%', '3P', '3PA', 'FTA', 'FT%', 'ORB', 'DRB', 'TRB', 'AST', 'STL', 'BLK', 'TOV', 'PF', 'PTS', 'DFS']
df = pandas.read_csv(filename, names=names)

print(df.head())
style.use('ggplot')

forecast_col = 'DFS'

#forecast_out= int(math.ceil (0.1*len(df)))
df['label'] = df[forecast_col]

X = np.array(df.drop(['label','DFS'],1))
#X = preprocessing.scale(X)
#X_lately = X[-forecast_out:]
#X = X[-forecast_out:]






#X = np.array(df.drop(['label','DFS'],1))


df.dropna(inplace=True)
y = np.array(df['label'])

train_size = 30
svr = GridSearchCV(SVR(kernel='rbf', gamma=0.1), cv=5,
                   param_grid={"C": [1e0, 1e1, 1e2, 1e3],
                               "gamma": np.logspace(-2, 2, 5)})


X_train, X_test, y_train, y_test = cross_validation.train_test_split(X,y, test_size=0.2)

clf = LinearRegression()
clf.fit(X_train, y_train)
svr.fit(X[:train_size], y[:train_size])

accuracy=clf.score(X_test,y_test)

print(accuracy)

svr.predict= y

forecast_set = clf.predict(X)

print(forecast_set)

df['DFS'].plot()
df['label'].plot()
plt.legend(loc=4)
plt.show()
我的csv文件如下所示:

3,8,0.375,0,2,3,3,0,1,1,0,0,2,1,9,10.8

3,6,0.5,0,2,0,2,0,4,0,0,0,2,1,6,10

8,15,0.533,0,3,3,4,0,2,2,1,0,1,3,19,26

每一行都是球员在特定日期的统计数据(第一行是2016年1月2日的统计数据,第二行是2016年2月2日的统计数据等)。 我的目标是每行的最后一个数字(每日幻想分数)。为了预测这一点,我只想考虑上面一行中的数字。因此,如果我想预测“26”,我想使用:

3,8,0.375,0,2,3,3,0,1,1,0,0,2,1,9,10.8

3,6,0.5,0,2,0,2,0,4,0,0,0,2,1,6,10