小编G. *_*cia的帖子

在 Colab 中处理机密数据安全吗?

使用了一段时间后,我想了解 Colab 的真正工作原理,以及使用其中的机密数据是安全的。

一些背景。我了解此处描述的 Python、IPython 和 Jupyter Notebook 之间的差异我总结一下,Python 是一种编程语言,可以像任何其他应用程序一样使用 sudo apt-get 安装。IPython 是 Python 的交互式命令行终端,可以与 Python 标准包管理器 pip 一起安装。它允许您安装和管理用 Python 编写的不属于Python 标准库的其他包。Jupyter Notebook 添加了一个 Web 界面,它可以使用多个内核或后端,IPython 其中之一。

科拉布呢?据我了解,在使用 Colab 时,我从 google 获得了一个预装了 Python 的虚拟机以及许多其他库(又称包),如 pandas 或 matplotlib。这些包都安装在基本的 python 安装中。

Colab VM 附带一些临时存储。这相当于AWS中的实例存储。因此,当虚拟机运行时被中断时,即我们的虚拟机被 Google 停止(或者你更愿意说……终止?)时,它就会丢失。我相信,如果我要在那里上传我的机密数据,它不会在我的私有子网中......

因此,安装我们的驱动器相当于在 AWS 中使用 EBS 卷。EBS 卷是网络连接驱动器,因此即使 VM 运行时中断,其中的数据也将持续存在。不过,EBS 卷只能附加到一个 EC2 实例...但我可以将我的 Drive 安装到多个 Colab 会话。我不太清楚这些会话是什么...一些用户希望在 Colab 中创建虚拟环境,看起来安装驱动器是解决它的一种方法。

将 Drive 安装到 Colab 时,我们需要进行身份验证,因为我们要向 Colab 虚拟机的 …

python unix amazon-web-services jupyter-notebook google-colaboratory

9
推荐指数
1
解决办法
2万
查看次数

文本作为 folium choropleth GeoJSON 多边形中的工具提示、弹出窗口或标签

Folium 允许使用工具提示或弹出文本创建标记。我想对我的 GeoJSON 多边形做同样的事情。

我的 GeoJSON 有一个名为"name"feature.properties.name-> 假设它是美国每个州的名称)的属性。除了每个州的失业率之外,我希望能够将其显示为我的分区统计图中的标签。"State"我在的专栏中也有相同的信息pandas dataframe

这可能吗?我很高兴有一个解决方案,允许它成为一个弹出窗口、工具提示或写在上面的简单文本标签。

import pandas as pd


url = (
    "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"
)
state_geo = f"{url}/us-states.json"
state_unemployment = f"{url}/US_Unemployment_Oct2012.csv"
state_data = pd.read_csv(state_unemployment)

m = folium.Map(location=[48, -102], zoom_start=3)

folium.Choropleth(
    geo_data=state_geo,
    name="choropleth",
    data=state_data,
    columns=["State", "Unemployment"],
    key_on="feature.id",
    fill_color="YlGn",
    fill_opacity=0.7,
    line_opacity=0.2,
    legend_name="Unemployment Rate (%)",
).add_to(m)

folium.LayerControl().add_to(m)

m
Run Code Online (Sandbox Code Playgroud)

python python-3.x leaflet choropleth folium

8
推荐指数
1
解决办法
1万
查看次数

如何在 Tensorboard 投影仪中可视化 Gensim Word2vec 嵌入

按照gensim word2vec 嵌入教程,我训练了一个简单的 word2vec 模型:

from gensim.test.utils import common_texts
from gensim.models import Word2Vec
model = Word2Vec(sentences=common_texts, size=100, window=5, min_count=1, workers=4)
model.save("/content/word2vec.model")
Run Code Online (Sandbox Code Playgroud)

我想使用 TensorBoard 中的嵌入投影仪将其可视化。gensim 文档中有另一个简单的教程。我在 Colab 中做了以下操作:

!python3 -m gensim.scripts.word2vec2tensor -i /content/word2vec.model -o /content/my_model

Traceback (most recent call last):
  File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.7/dist-packages/gensim/scripts/word2vec2tensor.py", line 94, in <module>
    word2vec2tensor(args.input, args.output, args.binary)
  File "/usr/local/lib/python3.7/dist-packages/gensim/scripts/word2vec2tensor.py", line 68, in word2vec2tensor
    model = gensim.models.KeyedVectors.load_word2vec_format(word2vec_model_path, binary=binary) …
Run Code Online (Sandbox Code Playgroud)

python gensim word2vec tensorflow tensorboard

5
推荐指数
1
解决办法
769
查看次数

如何将 matplotlib 动画转换为 HTML5 &lt;video&gt; 标签

下面是 matplolib 动画图的代码,这里是如何保存它。

from IPython.display import HTML
import matplotlib.pyplot as plt
import matplotlib.animation 
import numpy as np

t = np.linspace(0,2*np.pi)
x = np.sin(t)

fig, ax = plt.subplots()
ax.axis([0,2*np.pi,-1,1])
l, = ax.plot([],[])

def animate(i):
    l.set_data(t[:i], x[:i]);

ani = matplotlib.animation.FuncAnimation(fig, animate, frames=len(t));
#HTML(ani.to_jshtml())

ani.to_html5_video()
Run Code Online (Sandbox Code Playgroud)

我基本上做的是将生成的代码复制到一个基本的 html 脚本中,如下所示:

<html>
<head>
<title>Page Title</title>
</head>
<body>

<h1>My First Heading</h1>

<video width="432" height="288" controls autoplay loop> BLABLA </video>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

图表未显示,但标题和视频菜单在那里。为什么?我该如何解决?

html python matplotlib

4
推荐指数
1
解决办法
4165
查看次数

使用SHAP时如何解释GBT分类器的base_value?

我最近发现了这个令人惊叹的 ML 可解释性库我决定使用 sklearn 的玩具数据集构建一个简单的 xgboost 分类器,并绘制一个force_plot.

为了理解这个情节,图书馆说:

上面的解释显示了每个有助于将模型输出从基值(我们传递的训练数据集上的平均模型输出)推送到模型输出的功能。将预测推高的特征以红色显示,将预测推低的特征以蓝色显示(这些力图在我们的 Nature BME 论文中介绍)。

所以在我看来,base_value 应该与clf.predict(X_train).mean()0.637 相同。然而,从绘图来看,情况并非如此,数字实际上不在 [0,1] 之内。我尝试以不同的基础(10,e,2)进行记录,假设这将是某种单调变换......但仍然不走运。我怎样才能得到这个base_value?

!pip install shap

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
import pandas as pd
import shap

X, y = load_breast_cancer(return_X_y=True)
X = pd.DataFrame(data=X)
y = pd.DataFrame(data=y)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

clf = GradientBoostingClassifier(random_state=0)
clf.fit(X_train, y_train)

print(clf.predict(X_train).mean())

# load JS visualization code to notebook
shap.initjs()

explainer …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn shap

4
推荐指数
1
解决办法
2237
查看次数

为什么 python setup.py bdist_wheel 创建一个构建文件夹?

感谢这个精彩的教程,我刚刚学会了将我自己的 python 包上传到 PyPI 我现在试图更好地理解如何wheels工作,我发现了这篇文章很有帮助。

但是,我仍然不明白为什么python setup.py bdist_wheel要创建一个几乎空的目录,并build以两个子文件夹命名:(bdist.win-amd64空)和lib(其中包含我的包的副本),以及开发人员稍后将通过执行 .txt 文件上传到 PyPI 的目录中的.whl文件。distpython -m twine upload dist/*

为什么build需要这个目录?我的意思是,dist目录还不够吗?而且,如果代码没有实际编译,为什么.whl称为二进制发行版。

distutils setuptools python-wheel python-packaging

4
推荐指数
1
解决办法
8340
查看次数

Selenium Python:如何在弹出窗口中向下滚动

我正在研究一个 Linkedin 网络抓取项目。我正在尝试获取某人感兴趣的公司列表(注意我没有使用 API)。这是一个动态网站,所以我需要在抓取公司名称的同时向下滚动。我知道如何在主窗口中执行此操作,但由于兴趣是一个弹出窗口,因此滚动解决方案不起作用。到目前为止我的代码是:

from selenium.webdriver.common.keys import Keys
bar = driver.find_element_by_xpath('//ul[@class="entity-list row"]')
bar.send_keys(Keys.END)
Run Code Online (Sandbox Code Playgroud)

由于它不起作用,我也尝试过:

bar = driver.find_element_by_xpath('//ul[@class="entity-list row"]')
driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', bar)
Run Code Online (Sandbox Code Playgroud)

问题是我不是在弹出窗口上操作,而是在主窗口上操作,所以它没有达到预期的效果。

在此处输入图片说明

javascript python selenium linkedin web-scraping

3
推荐指数
1
解决办法
9789
查看次数

如何从colab推送到github

我将我的公共 github 存储库克隆到我的驱动器中。我可以将 colab 与笔记本一起使用。我也可以拉。然而,尽管已正确配置,但在尝试推送时仍面临以下错误:

!git config --global user.email "my_email"
!git config --global user.name "my_user"
Run Code Online (Sandbox Code Playgroud)

这样做时,!git push origin master我收到以下错误:

fatal: could not read Username for 'https://github.com': No such device or address
Run Code Online (Sandbox Code Playgroud)

以前有人遇到过这个问题吗?

git github google-colaboratory

3
推荐指数
3
解决办法
7727
查看次数

使用SHAP时如何解释多类分类问题的base_value?

我使用 shap 库来实现 ML 可解释性,以更好地理解 k 均值分割算法集群。简而言之,我制作了一些博客,使用 k-means 对它们进行聚类,然后将聚类作为标签,并使用 xgboost 来尝试预测它们。我有 5 个簇,所以这是一个单标签多类分类问题。

import numpy as np
from sklearn.datasets import make_blobs
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans 
import xgboost as xgb
import shap

X, y = make_blobs(n_samples=500, centers=5, n_features=5, random_state=0)
data = pd.DataFrame(np.concatenate((X, y.reshape(500,1)), axis=1), columns=['var_1', 'var_2', 'var_3', 'var_4', 'var_5', 'cluster_id'])
data['cluster_id'] = data['cluster_id'].astype(int).astype(str)
scaler = StandardScaler()
scaled_features = scaler.fit_transform(data.iloc[:,:-1])
kmeans = KMeans(n_clusters=5, **kmeans_kwargs)
kmeans.fit(scaled_features)
data['predicted_cluster_id'] = kmeans.labels_.astype(int).astype(str)
clf = xgb.XGBClassifier()
clf.fit(scaled_data.iloc[:,:-1], scaled_data['predicted_cluster_id'])
shap.initjs() …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn xgboost shap

3
推荐指数
1
解决办法
4822
查看次数

如何在langchain faiss检索器中指定相似度阈值?

我想向检索器传递一个相似度阈值。到目前为止我只能弄清楚如何传递 ak 值,但这不是我想要的。我怎样才能通过门槛呢?

from langchain.document_loaders import PyPDFLoader
from langchain.vectorstores import FAISS
from langchain.embeddings.openai import OpenAIEmbeddings

def get_conversation_chain(vectorstore):
    llm = ChatOpenAI(temperature=0, model_name='gpt-3.5-turbo')
    qa = ConversationalRetrievalChain.from_llm(llm=llm, retriever=vectorstore.as_retriever(search_kwargs={'k': 2}), return_source_documents=True, verbose=True)
    return qa

loader = PyPDFLoader("sample.pdf")
# get pdf raw text
pages = loader.load_and_split()
faiss_index = FAISS.from_documents(list_of_documents, OpenAIEmbeddings())
# create conversation chain
chat_history = []
qa = get_conversation_chain(faiss_index)
query = "What is a sunflower?"
result = qa({"question": query, "chat_history": chat_history}) 
Run Code Online (Sandbox Code Playgroud)

python nlp openai-api langchain large-language-model

2
推荐指数
1
解决办法
5743
查看次数