我一直在尝试使用python中的Keras和Tensorflow构建和比较神经网络,但是当我希望绘制模型进行比较时,我收到了一个错误:
TypeError: 'History' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)
这是我对这三个模型的代码:
############################## Initiate model 1 ###############################
# Model 1 has no hidden layers
from keras.models import Sequential
model1 = Sequential()
# Get layers
from keras.layers import Dense
# Add first layer
n_cols = len(X.columns)
model1.add(Dense(units=n_cols, activation='relu', input_shape=(n_cols,)))
# Add output layer
model1.add(Dense(units=2, activation='softmax'))
# Compile the model
model1.compile(loss='categorical_crossentropy', optimizer='adam', metrics=
['accuracy'])
# Define early_stopping_monitor
from keras.callbacks import EarlyStopping
early_stopping_monitor = EarlyStopping(patience=2)
# Fit model
model1.fit(X, y, validation_split=0.33, epochs=30, callbacks=
[early_stopping_monitor], verbose=False)
############################## Initiate …Run Code Online (Sandbox Code Playgroud) 我正在pdpbox为模型中的 50 个特征中的每一个创建 pdp 图。我已经使用以下方法成功创建并保存了这些图:
# pdp_plot (https://pdpbox.readthedocs.io/en/latest/pdp_plot.html)
for i, feat in enumerate(list_features):
# increase i by 1 to help with name formatting
n_feat = i + 1
# pdp_isolate (https://pdpbox.readthedocs.io/en/latest/pdp_isolate.html)
pdp_dove = pdp.pdp_isolate(model=model,
dataset=df_train,
model_features=list_features,
feature=feat)
# generate plot
fig, axes = pdp.pdp_plot(pdp_isolate_out=pdp_dove,
feature_name=feat,
plot_pts_dist=True)
# save figure
if n_feat < 10:
n_feat = '0{0}'.format(n_feat)
# save figure
plt.savefig('{0}_pdp_{1}.png'.format(n_feat, feat))
Run Code Online (Sandbox Code Playgroud)
如果我愿意,我可以停在这里,因为我的工作目录中的所有绘图都以格式化和有组织的方式保存。但是,我想知道是否可以使用nrows=5和将每个图添加到子图网格中ncols=10。先感谢您!
想象一下,我有一个 Pandas DataFrame:
# create df
df = pd.DataFrame({'id': [1,1,1,2,2,2],
'val': [5,4,6,3,2,3]})
Run Code Online (Sandbox Code Playgroud)
让我们假设它是按“id”和一个虚构的、未显示的日期列(升序)排序的。我想创建另一列,其中每一行都是该日期的“val”列表。
结束的 DataFrame 将如下所示:
df = pd.DataFrame({'id': [1,1,1,2,2,2],
'val': [5,4,6,3,2,3],
'val_list': [[5],[5,4],[5,4,6],[3],[3,2],[3,2,3]]})
Run Code Online (Sandbox Code Playgroud)
我不想使用循环,因为我正在使用的实际 df 大约有 400 万条记录。我想象我会使用 lambda 函数与 groupby 结合使用(类似这样):
df['val_list'] = df.groupby('id')['val'].apply(lambda x: x.runlist())
Run Code Online (Sandbox Code Playgroud)
这引发了一个 AttributError 因为 runlist() 方法不存在,但我认为解决方案将是这样的。
有谁知道如何解决这个问题?
我有一个列表(或某种类型的数组),其中几乎所有值都在 0 到 1 之间,但我偶尔会有稍微负数或大于 1 的值。
list_values = [-0.01, 0, 0.5, 0.9, 1.0, 1.01]
Run Code Online (Sandbox Code Playgroud)
我想用 0 替换负数,用 1 替换大于 1 的值。
只有 1 个条件,我会这样使用np.where:
arr_values = np.where(pd.Series(list_values) < 0, 0, pd.Series(list_values))
Run Code Online (Sandbox Code Playgroud)
要处理多个条件,我可以定义一个函数,然后使用 lambda 函数应用它:
def change_values(value):
if value < 0:
return 0
elif value > 1:
return 1
else:
return value
series_values = pd.Series(list_values).apply(lambda x: change_values(value=x))
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法来实现这一点?
我已经尝试从这里刮一张桌子好一段时间了,但是没有成功。我要抓取的表格标题为“每场比赛统计信息的团队人数”。我有信心,一旦我能够抓取该表的一个元素,便可以遍历列表中所需的列,并最终得到一个熊猫数据框。
到目前为止,这是我的代码:
from bs4 import BeautifulSoup
import requests
# url that we are scraping
r = requests.get('https://www.basketball-reference.com/leagues/NBA_2019.html')
# Lets look at what the request content looks like
print(r.content)
# use Beautifulsoup on content from request
c = r.content
soup = BeautifulSoup(c)
print(soup)
# using prettify() in Beautiful soup indents HTML like it should be in the web page
# This can make reading the HTML a little be easier
print(soup.prettify())
# get elements within the 'main-content' tag
team_per_game …Run Code Online (Sandbox Code Playgroud) 我这里有一个 pandas 数据框:
import pandas as pd
df = pd.DataFrame({'col1': ['a','a','b','b'],
'col2': ['a','a','b','b']})
Run Code Online (Sandbox Code Playgroud)
我这里有一个映射字典:
dict_map = {'col1': {'a': 0.5, 'b': 1.0},
'col2': {'a': 0.6, 'b': 0.9}}
Run Code Online (Sandbox Code Playgroud)
我想将每一列与相应的字典映射,以便数据框看起来像:
col1 col2
0 0.5 0.6
1 0.5 0.6
2 1.0 0.9
3 1.0 0.9
Run Code Online (Sandbox Code Playgroud)
我可以轻松地迭代其中的列df并获得所需的结果,但我试图避免迭代。我怎样才能在不迭代的情况下做到这一点?
python ×6
pandas ×3
aggregation ×1
data-science ×1
dictionary ×1
keras ×1
list ×1
matplotlib ×1
numpy ×1
plot ×1
tensorflow ×1
web-scraping ×1