今天我正在尝试学习一些关于K-means的东西.我已经理解了算法,我知道它是如何工作的.现在我正在寻找正确的k ...我发现肘部标准作为检测正确k的方法,但我不明白如何使用它与scikit学习?!在scikit中,我学会了以这种方式聚集事物
kmeans = KMeans(init='k-means++', n_clusters=n_clusters, n_init=10)
kmeans.fit(data)
Run Code Online (Sandbox Code Playgroud)
那么我应该多次为n_clusters = 1 ... n这样做并观察错误率以获得正确的k?认为这会很愚蠢,需要花费很多时间?!
python cluster-analysis machine-learning k-means scikit-learn
我想在相同的图上用相同的x轴和次y轴绘制两个时间序列.我已经以某种方式实现了这一点,但是两个传说重叠并且无法给x轴和次y轴赋予标签.我尝试在左上角和右上角放置两个图例,但它仍然不起作用.
码:
plt.figure(figsize=(12,5))
# Number of request every 10 minutes
log_10minutely_count_Series = log_df['IP'].resample('10min').count()
log_10minutely_count_Series.name="Count"
log_10minutely_count_Series.plot(color='blue', grid=True)
plt.legend(loc='upper left')
plt.xlabel('Number of request ever 10 minute')
# Sum of response size over each 10 minute
log_10minutely_sum_Series = log_df['Bytes'].resample('10min').sum()
log_10minutely_sum_Series.name = 'Sum'
log_10minutely_sum_Series.plot(color='red',grid=True, secondary_y=True)
plt.legend(loc='upper right')
plt.show()
Run Code Online (Sandbox Code Playgroud)
提前致谢
我在约100万个项目上运行k-means聚类(每个项目表示为~100个特征向量).我已经为各种k运行了聚类,现在想要使用sklearn中实现的轮廓分数来评估不同的结果.试图在没有采样的情况下运行它似乎不可行并且需要花费相当长的时间,因此我假设我需要使用采样,即:
metrics.silhouette_score(feature_matrix, cluster_labels, metric='euclidean',sample_size=???)
Run Code Online (Sandbox Code Playgroud)
然而,我并不清楚适当的采样方法是什么.在给定矩阵大小的情况下,对于使用什么尺寸的样本,是否有经验法则?采用我的分析机可以处理的最大样本,或者采用更小样本的平均值更好吗?
我在很大程度上要求,因为我的初步测试(使用sample_size = 10000)产生了一些非常不直观的结果.
我也愿意采用其他更具可扩展性的评估指标.
编辑以显示问题:对于不同的样本大小,该图显示了作为聚类数量函数的轮廓得分 
有点奇怪的是,增加样本量似乎可以减少噪音.奇怪的是,鉴于我有100万个非常异质的向量,2或3是"最佳"聚类数.换句话说,当我增加簇的数量时,我会发现轮廓得分或多或少单调减少,这是不直观的.
也许这是一个非常幼稚的问题,但我陷入其中:pandas.Series有一个方法sort_values,可以选择是否“就地”执行。我已经用谷歌搜索了一段时间,但是我对此不太清楚。看来,除了我以外,所有人都知道这件事。谁能给我一些说明性的解释,这两种选择对于傻瓜有何不同……?
感谢您的协助。
这不是这个问题的重复
我检查了这个,但不安全的方式对我来说并不好看。
我正在使用 python 中的图像大小获取器,它将获取网页上的图像大小。在此之前,我需要获取网页状态代码。我试过这样做
import requests
hdrs = {'User-Agent': 'Mozilla / 5.0 (X11 Linux x86_64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 52.0.2743.116 Safari / 537.36'}
urlResponse = requests.get(
'http://aucoe.info/', verify=True, headers=hdrs)
print(urlResponse.status_code)
Run Code Online (Sandbox Code Playgroud)
这给出了错误:
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:600)
我试图改变verify=True到
verify='/etc/ssl/certs/ca-certificates.crt'
和
verify='/etc/ssl/certs'
但它仍然给出同样的错误。我需要获取 5000 多个 url 的状态代码。请帮助我。提前致谢。
Python 版本: 3.4
请求版本:请求==2.11.1
操作系统: Ubuntu 14.04
pyOpenSSL: 0.13
openssl 版本: OpenSSL 1.0.1f 2014 年 1 月 6 日
我有地图清单.
List(Map(term_id -> 20898477-2374-4d4c-9af0-8ed9c9829c94),
Map(term_id -> 6d949993-1593-4491-beae-eb9bf8abcf27),
Map(term_id -> 1123c413-3ffd-45ed-8215-dd1bccb3a48f))
Run Code Online (Sandbox Code Playgroud)
并希望获取所有值并检查上面的Map列表中是否已存在term_id.
这可以通过迭代列表和检查每个映射的值来完成.但我想要一些更有效率和一个班轮的东西.我对Java或Scala方法都没问题.
这个问题可能很幼稚,但我不知道如何继续.我是Java/Scala的新手.
预期产出:
List(20898477-2374-4d4c-9af0-8ed9c9829c94, 6d949993-1593-4491-beae-eb9bf8abcf27,
123c413-3ffd-45ed-8215-dd1bccb3a48f)
Run Code Online (Sandbox Code Playgroud) python ×5
pandas ×2
scikit-learn ×2
hashmap ×1
in-place ×1
java ×1
k-means ×1
matplotlib ×1
python-3.x ×1
scala ×1
sorting ×1
ssl ×1