Python 2.7 scikit学习类型为';非类型';没有len()
我只是尝试在Azure ML中使用python中的SGD来训练一个简单的逻辑回归模型,但是当我运行代码时,它总是会出错。更令人困惑的是,错误只出现在第8个历元中,而没有出现在任何一个历元中。如果有人能告诉我为什么会出现这样的错误以及如何避免,我将不胜感激。我已经包括了下面的代码和错误Python 2.7 scikit学习类型为';非类型';没有len(),python-2.7,scikit-learn,azure-machine-learning-studio,Python 2.7,Scikit Learn,Azure Machine Learning Studio,我只是尝试在Azure ML中使用python中的SGD来训练一个简单的逻辑回归模型,但是当我运行代码时,它总是会出错。更令人困惑的是,错误只出现在第8个历元中,而没有出现在任何一个历元中。如果有人能告诉我为什么会出现这样的错误以及如何避免,我将不胜感激。我已经包括了下面的代码和错误 from sklearn.linear_model import SGDClassifier #Import data cadd_dir = '.\\Script Bundle\\theano\\d
from sklearn.linear_model import SGDClassifier
#Import data
cadd_dir = '.\\Script Bundle\\theano\\data\\'
ClinVar_ESP_dir = '.\\Script Bundle\\theano\\data\\'
#load data
X_tr = numpy.load(os.path.join(cadd_dir, 'training.X.npz'))
X_tr = scipy.sparse.csr_matrix((X_tr['data'], X_tr['indices'], X_tr['indptr']), shape=X_tr['shape'])
y_tr = numpy.load(os.path.join(cadd_dir, 'training.y.npy'))
#Train model
print('Train SGD Logistic Regression')
alpha = 1e-2
clf = SGDClassifier(loss="log", penalty='l2', alpha=alpha, random_state=None, shuffle=False, n_iter=10, verbose=1, n_jobs=1)
clf.fit(X_tr, y_tr)
#Error
"[Information] -- Epoch 7
[Information] Norm: 0.40, NNZs: 641, Bias: 0.000623, T: 186214000, Avg. loss: 0.670200
[Information] Total training time: 43.97 seconds.
[Information] -- Epoch 8
[Error] Caught exception while executing function: Traceback (most recent call last):
[Error] File "C:\server\invokepy.py", line 211, in batch
[Error] xdrutils.XDRUtils.DataFrameToRFile(outlist[i], outfiles[i], True)
[Error] File "C:\server\XDRReader\xdrutils.py", line 51, in DataFrameToRFile
[Error] attributes = XDRBridge.DataFrameToRObject(dataframe)
[Error] File "C:\server\XDRReader\xdrbridge.py", line 40, in DataFrameToRObject
[Error] if (len(dataframe) == 1 and type(dataframe[0]) is pd.DataFrame):
[Error] TypeError: object of type 'NoneType' has no len()
[Information] Norm: 0.40, NNZs: 641, Bias: 0.000623, T: 212816000, Avg. loss: 0.669797
[Information] Total training time: 50.21 seconds.
[Information] -- Epoch 9
[Information] Norm: 0.40, NNZs: 641, Bias: 0.000622, T: 239418000, Avg. loss: 0.669482
[Information] Total training time: 56.46 seconds."
您的程序正在创建常规输出(“[信息]”)和错误消息(“[错误]”),但Azure ML Studio的构建只是为了显示一个输出日志,因此这两种类型的消息都已写入同一文件。更令人困惑的是,每种类型的消息在写入日志时都经历了不同的延迟。这就解释了为什么错误消息中会包含有关训练第8纪元的信息消息,尽管这两个消息是不相关的 这些错误是由函数引发的,这些函数应该在模块运行结束时导出Python脚本的结果。要在Azure ML中正常运行,您的代码需要包装在名为
azureml\u main()
(作为模板包含在新的执行Python脚本模块中)的函数中azureml_main()
需要返回一个pandas
DataFrame
。我不确定您想要返回什么,因为您的代码只适合一个模型,但以下内容可能会有所帮助:
from sklearn.linear_model import SGDClassifier
import numpy
import scipy
import pandas as pd
cadd_dir = '.\\Script Bundle\\theano\\data\\'
ClinVar_ESP_dir = '.\\Script Bundle\\theano\\data\\'
def azureml_main(input_df1 = None, input_df2 = None):
#load data
X_tr = numpy.load(os.path.join(cadd_dir, 'training.X.npz'))
X_tr = scipy.sparse.csr_matrix((X_tr['data'], X_tr['indices'], X_tr['indptr']), shape=X_tr['shape'])
y_tr = numpy.load(os.path.join(cadd_dir, 'training.y.npy'))
#Train model
print('Train SGD Logistic Regression')
alpha = 1e-2
clf = SGDClassifier(loss="log", penalty='l2', alpha=alpha, random_state=None, shuffle=False, n_iter=10, verbose=1, n_jobs=1)
clf.fit(X_tr, y_tr)
return(pd.DataFrame([]))
另外,您是否正在与MSR的Jenn/Nicolo合作进行变异效应预测?如果不是,您应该ping它们您的程序正在创建常规输出(“[信息]”)和错误消息(“[错误]”),但Azure ML Studio的构建只是为了显示一个输出日志,因此这两种类型的消息都已写入同一文件。更令人困惑的是,每种类型的消息在写入日志时都经历了不同的延迟。这就解释了为什么错误消息中会包含有关训练第8纪元的信息消息,尽管这两个消息是不相关的 这些错误是由函数引发的,这些函数应该在模块运行结束时导出Python脚本的结果。要在Azure ML中正常运行,您的代码需要包装在名为
azureml\u main()
(作为模板包含在新的执行Python脚本模块中)的函数中azureml_main()
需要返回一个pandas
DataFrame
。我不确定您想要返回什么,因为您的代码只适合一个模型,但以下内容可能会有所帮助:
from sklearn.linear_model import SGDClassifier
import numpy
import scipy
import pandas as pd
cadd_dir = '.\\Script Bundle\\theano\\data\\'
ClinVar_ESP_dir = '.\\Script Bundle\\theano\\data\\'
def azureml_main(input_df1 = None, input_df2 = None):
#load data
X_tr = numpy.load(os.path.join(cadd_dir, 'training.X.npz'))
X_tr = scipy.sparse.csr_matrix((X_tr['data'], X_tr['indices'], X_tr['indptr']), shape=X_tr['shape'])
y_tr = numpy.load(os.path.join(cadd_dir, 'training.y.npy'))
#Train model
print('Train SGD Logistic Regression')
alpha = 1e-2
clf = SGDClassifier(loss="log", penalty='l2', alpha=alpha, random_state=None, shuffle=False, n_iter=10, verbose=1, n_jobs=1)
clf.fit(X_tr, y_tr)
return(pd.DataFrame([]))
另外,您是否正在与MSR的Jenn/Nicolo合作进行变异效应预测?如果不是,你应该打电话给他们