所以我在一个小的销售数据集上运行了一个时间序列模型,并预测了接下来 12 个时期的销售额。使用以下代码:
mod1=ARIMA(df1, order=(2,1,1)).fit(disp=0,transparams=True)
y_future=mod1.forecast(steps=12)[0]
Run Code Online (Sandbox Code Playgroud)
其中 df1 包含以月份为索引的销售值。现在我按以下方式存储预测值:
pred.append(y_future)
Run Code Online (Sandbox Code Playgroud)
现在,我需要将预测值附加到原始数据集 df1 中,最好使用相同的索引。我正在尝试使用以下代码:
df1.append(pred, ignore_index=False)
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
TypeError: cannot concatenate a non-NDFrame object
Run Code Online (Sandbox Code Playgroud)
我试过将 pred 变量转换为列表然后附加,但无济于事。任何帮助将不胜感激。谢谢。
对于分类任务,我使用投票分类器来集成逻辑回归和SVM,投票参数设置为soft.结果明显优于每个单独的模型.我不确定我是否理解它是如何工作的.模型如何才能在两个模型之间找到多数投票?
python classification machine-learning scikit-learn ensemble-learning
我是tensorflow的新手。尝试从创建输入管道tfrecords。以下是我的代码段,用于创建批处理并将其输入到my中estimator:
def generate_input_fn(image,label,batch_size=BATCH_SIZE):
logging.info('creating batches...')
dataset = tf.data.Dataset.from_tensors((image, label)) #<-- dataset is 'TensorDataset'
dataset = dataset.repeat().batch(batch_size)
iterator=dataset.make_initializable_iterator()
iterator.initializer
return iterator.get_next()
Run Code Online (Sandbox Code Playgroud)
该行iterator=dataset.make_initializable_iterator():
ValueError:Tensor(“ count:0”,shape =(),dtype = int64,device = / device:CPU:0)必须与Tensor(“ TensorDataset:0”,shape =(),dtype =变体)。
我认为我不小心使用了来自不同图形的张量,但是我不知道如何以及在哪一行代码中使用。我不知道哪个张量是count:0 或哪个张量是TensorDataset:0。
谁能帮我调试一下。
错误日志:
File "task.py", line 189, in main
estimator.train(input_fn=lambda:generate_input_fn(image=image_data, label=label_data),steps=3,hooks=[logging_hook])
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py", line 352, in train
loss = self._train_model(input_fn, hooks, saving_listeners)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py", line 809, in _train_model
input_fn, model_fn_lib.ModeKeys.TRAIN))
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/estimator.py", line 668, in _get_features_and_labels_from_input_fn
result = …Run Code Online (Sandbox Code Playgroud) 我想编写一个自定义指标评估器,我正在关注此链接。我的虚拟代码是
import tensorflow as tf
from tensorflow import keras
class DummyMetric(keras.metrics.Metric):
def __init__(self, name='categorical_true_positives', **kwargs):
super(DummyMetric, self).__init__(name=name, **kwargs)
self.true_positives = self.add_weight(name='tp', initializer='zeros')
def update_state(self, y_true, y_pred, sample_weight=None):
print("Evaluating tensor of shape {} against gt of shape {}".format(y_pred.shape, y_true.shape))
self.true_positives.assign_add(1.0)
def result(self):
return self.true_positives
def reset_states(self):
# The state of the metric will be reset at the start of each epoch.
self.true_positives.assign(0.)
Run Code Online (Sandbox Code Playgroud)
我的 tensorflow 版本是从源安装的 1.13.1。
keras.metrics.Metric 投掷
AttributeError:模块“tensorflow._api.v1.keras.metrics”没有属性“Metric”。
当我这样做时,pip install tensorflow-gpu==1.14这个错误就会消失。
如果可能,请提出任何解决方案/黑客,这将使其在不升级到 1.14 的情况下工作
在代码的两个版本中,v1和v2都是大向量(长度范围从1,000 1,000,000到len(v1)= len(v2)).我希望代码2比代码1更强大,但事实证明代码1更快,我不知道为什么.你能解释为什么代码2很慢吗?谢谢.
代码1:
norm1=math.sqrt(np.dot(v1,v1))
norm2=math.sqrt(np.dot(v2,v2))
kern=np.dot(v1,v2)/(norm1*norm2)
Run Code Online (Sandbox Code Playgroud)
代码2:
kern=0
for i in range(0, len(v1)):
kern+=min(v1[i], v2[i])
Run Code Online (Sandbox Code Playgroud) 我需要解决一个问题,我将有一个数据框,比如 df,名称和年龄,我需要在 for 循环中生成另一个带有名称和性别的数据框,我需要将 for 循环中生成的数据框与 df 合并在df中获取性别。所以我在解决我的问题之前尝试了下面的代码
import pandas as pd
d = {'Age': [45, 38], 'Name': ['John', 'Emily']}
df = pd.DataFrame(data=d)
d1={'Gender':['M'],'Name':['John']}
df1=pd.DataFrame(data=d1)
df3 = df.merge(df1, on=['Name'], how='left', indicator=True)
df3
d2={'Gender':['F'],'Name':['Emily']}
df4=pd.DataFrame(data=d2)
df5=df3.merge(df4, on=['Name'], how='left', indicator=True)
Run Code Online (Sandbox Code Playgroud)
运行最后一行时出现以下错误。
"Cannot use name of an existing column for indicator column")
ValueError: Cannot use name of an existing column for indicator column
Run Code Online (Sandbox Code Playgroud)
你能建议我如何在 python 3.x 中解决这个问题吗?
我的代码:
import pandas as pd
from sklearn.preprocessing import LabelEncoder
column_names = ["age","workclass","fnlwgt","education","education-num","marital-status","occupation","relationship","race","sex","capital-gain","capital-loss","hrs-per-week","native-country","income"]
adult_train = pd.read_csv("adult.data",header=None,sep=',\s',na_values=["?"])
adult_train.columns=column_names
adult_train.fillna('NA',inplace=True)
Run Code Online (Sandbox Code Playgroud)
我想要在不止一列中具有值“NA”的行的索引。是否有内置方法或者我必须逐行迭代并检查每列的值?这是数据的快照:
我想要像 398,409 这样的行的索引(B 和 G 列缺少值)而不是像 394 这样的行的索引(仅在 N 列缺少值)
python ×7
pandas ×3
tensorflow ×2
algorithm ×1
arrays ×1
dataframe ×1
keras ×1
numpy ×1
performance ×1
python-2.7 ×1
python-3.x ×1
scikit-learn ×1