我想将一些代码推送到我的GitHub存储库.这些代码是在像不同的语言Javascript,Java,Python等某些代码包含了一些私人API,我不想公布关键.
有没有办法自动隐藏它?我应该手动将其从我的代码中删除吗?
我想推动很多项目.因此,手动删除不是一个好选择.
我在Keras使用LSTM实现了预测模型.数据集分离15分钟,我预测12个未来步骤.
该模型对该问题表现良好.但预测有一个小问题.它显示出一个小的移位效果.要获得更清晰的图片,请参见下图.
如何处理这个问题.如何转换数据来处理这类问题.
我使用的模型如下
init_lstm = RandomUniform(minval=-.05, maxval=.05)
init_dense_1 = RandomUniform(minval=-.03, maxval=.06)
model = Sequential()
model.add(LSTM(15, input_shape=(X.shape[1], X.shape[2]), kernel_initializer=init_lstm, recurrent_dropout=0.33))
model.add(Dense(1, kernel_initializer=init_dense_1, activation='linear'))
model.compile(loss='mae', optimizer=Adam(lr=1e-4))
history = model.fit(X, y, epochs=1000, batch_size=16, validation_data=(X_valid, y_valid), verbose=1, shuffle=False)
Run Code Online (Sandbox Code Playgroud)
我做了这样的预测
my_forecasts = model.predict(X_valid, batch_size=16)
Run Code Online (Sandbox Code Playgroud)
时间序列数据被转换为监督以使用该函数来馈送LSTM
# convert time series into supervised learning problem
def series_to_supervised(data, n_in=1, n_out=1, dropnan=True):
n_vars = 1 if type(data) is list else data.shape[1]
df = DataFrame(data)
cols, names = list(), list()
# input sequence (t-n, ... t-1)
for i in …Run Code Online (Sandbox Code Playgroud) 我有一个带有两列的pandas数据框,
Item Value
0 A 7
1 A 2
2 A -6
3 A -70
4 A 8
5 A 0
Run Code Online (Sandbox Code Playgroud)
我想在列上累计总和Value。但是在创建累计和时,如果值变为负数,我想将其重置为0。
我目前正在使用下面显示的循环执行此操作,
sum_ = 0
cumsum = []
for val in sample['Value'].values:
sum_ += val
if sum_ < 0:
sum_ = 0
cumsum.append(sum_)
print(cumsum) # [7, 9, 3, 0, 8, 8]
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种更有效的方式在纯大熊猫中执行此操作。
我正在尝试在非常不平衡的数据集上使用LightGBM构建分类器.不平衡是比例97:3,即:
Class
0 0.970691
1 0.029309
Run Code Online (Sandbox Code Playgroud)
我使用的参数和培训代码如下所示.
lgb_params = {
'boosting_type': 'gbdt',
'objective': 'binary',
'metric':'auc',
'learning_rate': 0.1,
'is_unbalance': 'true', #because training data is unbalance (replaced with scale_pos_weight)
'num_leaves': 31, # we should let it be smaller than 2^(max_depth)
'max_depth': 6, # -1 means no limit
'subsample' : 0.78
}
# Cross-validate
cv_results = lgb.cv(lgb_params, dtrain, num_boost_round=1500, nfold=10,
verbose_eval=10, early_stopping_rounds=40)
nround = cv_results['auc-mean'].index(np.max(cv_results['auc-mean']))
print(nround)
model = lgb.train(lgb_params, dtrain, num_boost_round=nround)
preds = model.predict(test_feats)
preds = [1 if x >= 0.5 …Run Code Online (Sandbox Code Playgroud) 我正在使用Tensorflow后端上的Keras在我的计算机上的非常庞大的数据集上训练LSTM模型。我的机器有16个核心。在训练模型时,我注意到所有核心的负载均低于40%。
我已经通过不同的渠道寻找解决方案,并尝试提供作为后端使用的内核。
config = tf.ConfigProto(device_count={"CPU": 16})
backend.tensorflow_backend.set_session(tf.Session(config=config))
Run Code Online (Sandbox Code Playgroud)
即使那样,负载仍然相同。
这是因为模型很小。一个纪元大约需要5分钟。如果使用全核,则可以提高速度。
如何告诉Keras或Tensorflow使用完整的可用核,即16个核来训练模型。?
我经历了这些stackoverflow问题,并尝试了其中提到的解决方案。它没有帮助。
我正在尝试使用Python中的LightGBM为多类分类问题(3个类)建模分类器.我使用了以下参数.
params = {'task': 'train',
'boosting_type': 'gbdt',
'objective': 'multiclass',
'num_class':3,
'metric': 'multi_logloss',
'learning_rate': 0.002296,
'max_depth': 7,
'num_leaves': 17,
'feature_fraction': 0.4,
'bagging_fraction': 0.6,
'bagging_freq': 17}
Run Code Online (Sandbox Code Playgroud)
数据集的所有分类特征都是用标签编码的LabelEncoder.我跑完后训练模型cv,eartly_stopping如下图所示.
lgb_cv = lgbm.cv(params, d_train, num_boost_round=10000, nfold=3, shuffle=True, stratified=True, verbose_eval=20, early_stopping_rounds=100)
nround = lgb_cv['multi_logloss-mean'].index(np.min(lgb_cv['multi_logloss-mean']))
print(nround)
model = lgbm.train(params, d_train, num_boost_round=nround)
Run Code Online (Sandbox Code Playgroud)
训练结束后,我用这样的模型进行预测,
preds = model.predict(test)
print(preds)
Run Code Online (Sandbox Code Playgroud)
我有一个嵌套数组作为这样的输出.
[[ 7.93856847e-06 9.99989550e-01 2.51164967e-06]
[ 7.26332978e-01 1.65316511e-05 2.73650491e-01]
[ 7.28564308e-01 8.36756769e-06 2.71427325e-01]
...,
[ 7.26892634e-01 1.26915179e-05 2.73094674e-01]
[ 5.93217601e-01 2.07172044e-04 4.06575227e-01]
[ 5.91722491e-05 9.99883828e-01 …Run Code Online (Sandbox Code Playgroud) python machine-learning predict multiclass-classification lightgbm
我有两个日期格式a = Timestamp('2022-07-01 00:00:00'),另一个日期格式相同b = Timestamp('1993-09-01 00:00:00')
所以我试图找到这两者之间的月数差异,我的方法是
relativedelta(a,b).years * 12
Run Code Online (Sandbox Code Playgroud)
这给出了值336,但实际差异是346。请让我知道我哪里出错了帮我改正。
我有一个 pySpark 数据框,我想按列进行分组,然后在每个组的另一列中找到唯一的项目。
在熊猫中我可以做,
data.groupby(by=['A'])['B'].unique()
Run Code Online (Sandbox Code Playgroud)
我想对我的 Spark 数据框做同样的事情。我可以找到组中项目的 distectCount 并进行计数,如下所示
(spark_df.groupby('A')
.agg(
fn.countDistinct(col('B'))
.alias('unique_count_B'),
fn.count(col('B'))
.alias('count_B')
)
.show())
Run Code Online (Sandbox Code Playgroud)
但我找不到一些功能来查找组中的独特项目。
为了更清楚地说明,请考虑示例数据框,
df = spark.createDataFrame(
[(1, "a"), (1, "b"), (1, "a"), (2, "c")],
["A", "B"])
Run Code Online (Sandbox Code Playgroud)
我期待得到这样的输出,
+---+----------+
| A| unique_B|
+---+----------+
| 1| [a, b] |
| 2| [c] |
+---+----------+
Run Code Online (Sandbox Code Playgroud)
如何在 pySpark 中获得 pandas 的输出?
我试图通过主节点的 ssh 在远程计算机上对我的包执行测试。两个节点都安装了相同版本的软件包。
我正在这样进行测试
pytest -d --tx ssh=ubuntu//python=python3 --rsyncdir /home/ubuntu/pkg/ /home/ubuntu/pkg -n 7
Run Code Online (Sandbox Code Playgroud)
运行此程序时,我收到以下错误,
------------------------------ coverage ------------------------------
---------------------- coverage: failed workers ----------------------
The following workers failed to return coverage data, ensure that pytest-cov is installed on these workers.
gw0
gw1
gw2
gw3
gw4
gw5
gw6
Coverage XML written to file coverage.xml
Run Code Online (Sandbox Code Playgroud)
我已确保工作节点中安装了覆盖范围。
coverage==6.2
pytest-cov==3.0.0
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它仍然失败。
我还注意到,由于某种原因,代码文件尚未在工作计算机中同步。
我试图了解这里出了什么问题以及如何解决这个问题。
我使用来自Keras的ResNet50的转移学习训练了一个宪法网络,如下所示.
base_model = applications.ResNet50(weights='imagenet', include_top=False, input_shape=(333, 333, 3))
## set model architechture
x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(1024, activation='relu')(x)
x = Dense(256, activation='relu')(x)
predictions = Dense(y_train.shape[1], activation='softmax')(x)
model = Model(input=base_model.input, output=predictions)
model.compile(loss='categorical_crossentropy', optimizer=optimizers.SGD(lr=1e-4, momentum=0.9),
metrics=['accuracy'])
model.summary()
Run Code Online (Sandbox Code Playgroud)
在训练模型后,我想保存模型.
history = model.fit_generator(
train_datagen.flow(x_train, y_train, batch_size=batch_size),
steps_per_epoch=600,
epochs=epochs,
callbacks=callbacks_list
)
Run Code Online (Sandbox Code Playgroud)
我不能使用keras模型中的save_model()函数,因为模型在这里是Model类型.我使用save()函数来保存模型.但后来当我加载模型并验证模型时,它表现得像一个未经训练的模型.我认为重量没有得到保存.哪里错了.?如何正确保存此模型.
python ×8
keras ×3
lightgbm ×2
pandas ×2
python-3.x ×2
api-key ×1
auc ×1
forecasting ×1
git ×1
github ×1
predict ×1
pyspark ×1
pytest ×1
pytest-xdist ×1
tensorflow ×1
unit-testing ×1