我一直在阅读senddex的python实用机器学习教程https://pythonprogramming.net/training-testing-machine-learning-tutorial/。我正在尝试使用model_selection而不是交叉验证来运行相同的代码,但是当我进入preprocessing.scale()时遇到语法错误。 这是我的代码:
import quandl
import pandas as pd
import numpy as np
import math
from sklearn import preprocessing, svm, model_selection
from sklearn.linear_model import LinearRegression
df = quandl.get('WIKI/GOOGL')
df = df[['Adj. Open', 'Adj. High', 'Adj. Low', 'Adj. Close', 'Adj. Volume']]
df['HL_PT'] = (df['Adj. High'] - df['Adj. Low']) / df['Adj. Close'] * 100
df['PT_Change'] = (df['Adj. Close'] - df['Adj. Open']) / df['Adj. Open'] * 100
df = df[['Adj. Close', 'HL_PT', 'PT_Change', 'Adj. Volume']]
forecast_col = 'Adj. Close'
df.fillna(-99999, inplace=True)
forecast_out = int(math.ceil(0.01 * len(df)))
print(forecast_out)
df['label'] = df[forecast_col].shift(-forecast_out)
df.dropna(inplace=True)
X = np.array(df.drop(['Label'] ,1))
y = np.array(df.drop(['Label'])
X = preprocessing.scale(X)
y2 = np.array(df['label'])
print(forecast_out)
这是错误消息:
runfile('D:/课程材料/数据科学/mlpractice.py', wdir ='D:/课程材料/数据科学')追溯(最近调用 最后):
文件 “ G:\ Anaconda3 \ lib \ site-packages \ IPython \ core \ interactiveshell.py”, 第2963行,在run_code中 exec(code_obj,self.user_global_ns,self.user_ns)
文件“”,第1行,在 runfile('D:/课程材料/数据科学/mlpractice.py',wdir ='D:/课程材料/数据科学')
文件 “ G:\ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py”, 运行文件中的第786行 execfile(文件名,命名空间)
文件 “ G:\ Anaconda3 \ lib \ site-packages \ spyder_kernels \ customize \ spydercustomize.py”, 第110行,在execfile中 exec(compile(f.read(),文件名,'exec'),命名空间)
文件“ D:/课程材料/数据科学/mlpractice.py”,第36行 X = preprocessing.scale(X) ^ SyntaxError:语法无效
在不弄清楚为什么会发生的情况下,无法取得进一步的进展。 任何帮助将不胜感激!
答案 0 :(得分:1)
您需要在此行上加上一个右括号:
y = np.array(df.drop(['Label'])
通常在语法错误所在的位置出现在错误消息上的前一行。