Questions tagged «k-means»

k-means是一组聚类分析方法,您可以在其中指定所需的聚类数量。这与层次聚类分析方法相反。

13
用于混合数值和分类数据的K-Means聚类
我的数据集包含许多数字属性和一个类别。 说NumericAttr1, NumericAttr2, ..., NumericAttrN, CategoricalAttr, 其中CategoricalAttr采用的三个可能的值之一:CategoricalAttrValue1,CategoricalAttrValue2或CategoricalAttrValue3。 我正在为Octave使用默认的k-means聚类算法实现https://blog.west.uni-koblenz.de/2012-07-14/a-working-k-means-code-for-octave/。它仅适用于数字数据。 所以我的问题是:将类别属性拆分CategoricalAttr为三个数字(二进制​​)变量是否正确IsCategoricalAttrValue1, IsCategoricalAttrValue2, IsCategoricalAttrValue3?

8
聚类地理位置坐标(纬线,长线对)
什么是正确的地理位置聚类方法和聚类算法? 我正在使用以下代码对地理位置坐标进行聚类: import numpy as np import matplotlib.pyplot as plt from scipy.cluster.vq import kmeans2, whiten coordinates= np.array([ [lat, long], [lat, long], ... [lat, long] ]) x, y = kmeans2(whiten(coordinates), 3, iter = 20) plt.scatter(coordinates[:,0], coordinates[:,1], c=y); plt.show() 使用K均值进行地理位置聚类是否正确,因为它使用的是欧几里得距离,而不是Haversine公式作为距离函数?

1
为什么xgboost比sklearn GradientBoostingClassifier快得多?
我正在尝试通过50个具有100个数字特征的示例训练一个梯度提升模型。XGBClassifier我的机器43秒内把手500棵树,而GradientBoostingClassifier只处理10棵(!)以1分2秒:(我没有理会试图种植500棵树,因为它会需要几个小时。我使用的是相同的learning_rate,并max_depth设置, 见下文。 是什么使XGBoost如此之快?它是否使用了sklearn家伙不知道的用于梯度增强的新颖实现方式?还是“偷工减料”并种植浅树? ps我知道这个讨论:https : //www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-survey,但是那里找不到答案... XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10, min_child_weight=1, missing=None, n_estimators=500, nthread=-1, objective='binary:logistic', reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=0, silent=True, subsample=1) GradientBoostingClassifier(init=None, learning_rate=0.05, loss='deviance', max_depth=10, max_features=None, max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=10, presort='auto', random_state=None, subsample=1.0, verbose=0, warm_start=False)
29 scikit-learn  xgboost  gbm  data-mining  classification  data-cleaning  machine-learning  reinforcement-learning  data-mining  bigdata  dataset  nlp  language-model  stanford-nlp  machine-learning  neural-network  deep-learning  randomized-algorithms  machine-learning  beginner  career  xgboost  loss-function  neural-network  software-recommendation  naive-bayes-classifier  classification  scikit-learn  feature-selection  r  random-forest  cross-validation  data-mining  python  scikit-learn  random-forest  churn  python  clustering  k-means  machine-learning  nlp  sentiment-analysis  machine-learning  programming  python  scikit-learn  nltk  gensim  visualization  data  csv  neural-network  deep-learning  descriptive-statistics  machine-learning  supervised-learning  text-mining  orange  data  parameter-estimation  python  pandas  scraping  r  clustering  k-means  unsupervised-learning 

3
K-表示用Elbow方法,BIC,方差解释和轮廓选择K的非相干行为
我正在尝试使用K均值对具有90个特征的向量进行聚类。由于此算法询问我簇的数量,因此我想用一些不错的数学方法来验证我的选择。我希望有8到10个集群。功能按Z分数缩放。 肘法和方差解释 from scipy.spatial.distance import cdist, pdist from sklearn.cluster import KMeans K = range(1,50) KM = [KMeans(n_clusters=k).fit(dt_trans) for k in K] centroids = [k.cluster_centers_ for k in KM] D_k = [cdist(dt_trans, cent, 'euclidean') for cent in centroids] cIdx = [np.argmin(D,axis=1) for D in D_k] dist = [np.min(D,axis=1) for D in …


5
扩大seaborn热图
我corr()用原始df 创建了df。该corr()DF出来70×70,这是不可能的可视化热图... sns.heatmap(df)。如果我尝试显示corr = df.corr(),则表格不适合屏幕,并且我可以看到所有相关性。它是打印整个df大小而不管其大小还是控制热图大小的方法吗?
17 visualization  pandas  plotting  machine-learning  neural-network  svm  decision-trees  svm  efficiency  python  linear-regression  machine-learning  nlp  topic-model  lda  named-entity-recognition  naive-bayes-classifier  association-rules  fuzzy-logic  kaggle  deep-learning  tensorflow  inception  classification  feature-selection  feature-engineering  machine-learning  scikit-learn  tensorflow  keras  encoding  nlp  text-mining  nlp  rnn  python  neural-network  feature-extraction  machine-learning  predictive-modeling  python  r  linear-regression  clustering  r  ggplot2  neural-network  neural-network  training  python  neural-network  deep-learning  rnn  predictive-modeling  databases  sql  programming  distribution  dataset  cross-validation  neural-network  deep-learning  rnn  machine-learning  machine-learning  python  deep-learning  data-mining  tensorflow  visualization  tools  sql  embeddings  orange  feature-extraction  unsupervised-learning  gan  machine-learning  python  data-mining  pandas  machine-learning  data-mining  bigdata  apache-spark  apache-hadoop  deep-learning  python  convnet  keras  aggregation  clustering  k-means  r  random-forest  decision-trees  reference-request  visualization  data  pandas  plotting  neural-network  keras  rnn  theano  deep-learning  tensorflow  inception  predictive-modeling  deep-learning  regression  sentiment-analysis  nlp  encoding  deep-learning  python  scikit-learn  lda  convnet  keras  predictive-modeling  regression  overfitting  regression  svm  prediction  machine-learning  similarity  word2vec  information-retrieval  word-embeddings  neural-network  deep-learning  rnn 


2
快速的k均值算法,例如10 ^ 10分?
我正在寻找在一组10维点上进行k均值聚类的方法。问题是:有10 ^ 10分。 我只是在寻找最大群集的中心和大小(假设10到100个群集);我不在乎每个点最终会聚在什么簇上。专门使用k均值并不重要;我只是在寻找类似的效果,任何近似的k均值或相关算法都很好(minibatch-SGD表示,...)。由于GMM在某种意义上与k均值存在相同的问题,因此在相同大小的数据上执行GMM也很有趣。 在这种规模下,对数据进行二次采样可能不会显着改变结果:使用第1/10000个数据样本查找相同的前10个聚类的几率非常高。但是即使那样,这仍然是一个10 ^ 6的问题,超出了易处理的范围。

3
是否有适用于python的好的即用型语言模型?
我正在为一个应用程序制作原型,我需要一个语言模型来计算一些生成的句子的困惑度。 我可以随时使用经过训练的python语言模型吗?简单的东西 model = LanguageModel('en') p1 = model.perplexity('This is a well constructed sentence') p2 = model.perplexity('Bunny lamp robert junior pancake') assert p1 < p2 我看过一些框架,但找不到我想要的。我知道我可以使用类似: from nltk.model.ngram import NgramModel lm = NgramModel(3, brown.words(categories='news')) 这在Brown Corpus上使用了很好的图林概率分布,但是我正在一些大型数据集(例如1b单词数据集)上寻找精心设计的模型。我可以真正相信一般领域的结果(不仅是新闻)
11 python  nlp  language-model  r  statistics  linear-regression  machine-learning  classification  random-forest  xgboost  python  sampling  data-mining  orange  predictive-modeling  recommender-system  statistics  dimensionality-reduction  pca  machine-learning  python  deep-learning  keras  reinforcement-learning  neural-network  image-classification  r  dplyr  deep-learning  keras  tensorflow  lstm  dropout  machine-learning  sampling  categorical-data  data-imputation  machine-learning  deep-learning  machine-learning-model  dropout  deep-network  pandas  data-cleaning  data-science-model  aggregation  python  neural-network  reinforcement-learning  policy-gradients  r  dataframe  dataset  statistics  prediction  forecasting  r  k-means  python  scikit-learn  labels  python  orange  cloud-computing  machine-learning  neural-network  deep-learning  rnn  recurrent-neural-net  logistic-regression  missing-data  deep-learning  autoencoder  apache-hadoop  time-series  data  preprocessing  classification  predictive-modeling  time-series  machine-learning  python  feature-selection  autoencoder  deep-learning  keras  tensorflow  lstm  word-embeddings  predictive-modeling  prediction  machine-learning-model  machine-learning  classification  binary  theory  machine-learning  neural-network  time-series  lstm  rnn  neural-network  deep-learning  keras  tensorflow  convnet  computer-vision 

1
Hartigan-Wong k-means方法和其他算法的收敛性
我一直试图理解主要stats在R语言包中实现的不同的k均值聚类算法。 我了解劳埃德(Lloyd)算法和麦昆(MacQueen)的在线算法。我对它们的理解如下: 劳埃德算法: 最初选择“ k”个随机观测值作为“ k”簇的质心。然后,以下步骤迭代进行,直到质心收敛。 计算每个观测值与所选质心之间的欧几里得距离。 最接近每个质心的观测值标记在“ k”桶中。 每个存储桶中所有观测值的平均值用作新的质心。 新的质心取代了旧的质心,如果旧的和新的质心尚未收敛,则迭代返回到步骤1。 收敛的条件如下:旧质心和新质心完全相同,质心之间的差异很小(约为10 ^ -3)或达到最大迭代次数(10或100)。 麦昆的算法: 这是一个在线版本,其中第一个“ k”实例被选为质心。 然后,根据哪个质心最接近该实例,将每个实例放置在存储桶中。重新计算各个质心。 重复此步骤,直到将每个实例放置在适当的存储桶中。 此算法只有一次迭代,并且循环针对“ x”个实例进行 Hartigan-Wong算法: 将所有点/实例分配给随机存储桶并计算相应的质心。 从第一个实例开始,找到最近的质心并装配该铲斗。如果存储桶已更改,则重新计算新质心,即新分配的存储区的质心和旧存储区分配的质心,因为这是受更改影响的两个质心 遍历所有点并获得新的质心。 对点2和3进行第二次迭代,这将执行某种清理操作并将杂散点重新分配给正确的存储桶。 因此,该算法执行2次迭代,然后才能看到收敛结果。 现在,我不确定在Hartigan-Wong算法的第4点中我认为的方法是否正确。我的问题是,Hartigan-Wong的以下方法是否是实现k-means的正确方法?此方法只有两次迭代吗?如果不是,收敛的条件是什么(何时停止)? 我了解的另一个可能的实现说明是。 将所有点/实例分配给随机存储桶并计算相应的质心。 从第一个实例开始,找到最近的质心并分配该存储桶。如果存储桶已更改,则重新计算新质心,即新分配的存储区的质心和旧存储区分配的质心,因为这是受更改影响的两个质心。 一旦存储桶中的任何点发生更改,请回到第一实例并再次重复这些步骤。 当所有实例都被迭代且所有点均未更改存储桶时,迭代结束。 这样,每次实例更改存储桶时,都会从数据集的开头一次又一次地进行很多迭代。 任何说明都将有所帮助,如果我对这些方法中的任何一种理解有误,请告诉我。
10 r  clustering  k-means 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.