タグ付けされた質問 「k-means」

k-meansは、期待するクラスターの数を指定するクラスター分析手法のファミリーです。これは、階層的クラスター分析手法とは対照的です。

13
数値データとカテゴリデータが混在するK平均クラスタリング
データセットには、いくつかの数値属性と1つのカテゴリが含まれています。 、と言いますNumericAttr1, NumericAttr2, ..., NumericAttrN, CategoricalAttr、 はCategoricalAttr、次の3つの可能な値のいずれかを取ります:CategoricalAttrValue1、CategoricalAttrValue2またはCategoricalAttrValue3。 Octave https://blog.west.uni-koblenz.de/2012-07-14/a-working-k-means-code-for-octave/のデフォルトのk-meansクラスタリングアルゴリズムの実装を使用しています。数値データのみで機能します。 だから私の質問:カテゴリ属性CategoricalAttrを3つの数値(バイナリ)変数に分割するのは正しい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() 距離関数としてHaversine式ではなくユークリッド距離を使用するため、地理位置情報クラスタリングにK-meansを使用するのは正しいですか?

1
xgboostがsklearn GradientBoostingClassifierよりもずっと速いのはなぜですか?
私は、100個の数値特徴を備えた50kの例で勾配ブースティングモデルをトレーニングしようとしています。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はエルボ法、BIC、分散の説明、およびシルエットを使用してKを選択するインコヒーレントな動作を意味します
K-meansで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
シーボーンヒートマップを大きくする
corr()元のdfからdf を作成します。corr()DFは、70 X 70から出てきたし、ヒートマップを可視化することは不可能です... sns.heatmap(df)。を表示しようとするcorr = df.corr()と、テーブルが画面に収まらず、すべての相関関係を確認できます。dfサイズに関係なく全体を印刷する方法ですか、ヒートマップのサイズを制御する方法ですか?
16 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平均とオンラインK平均
K-meansはクラスタリング用のよく知られたアルゴリズムですが、そのようなアルゴリズムのオンラインバリエーションもあります(オンラインK-means)。これらのアプローチの長所と短所は何ですか?また、それぞれをいつ優先すべきですか?

2
10 ^ 10ポイントのアルゴリズムのような高速k-means?
10次​​元の点のセットでk-meansクラスタリングを実行しようとしています。キャッチ:10 ^ 10ポイントがあります。 最大のクラスター(たとえば、10〜100個のクラスター)の中心とサイズだけを探しています。各ポイントがどのクラスターになるかは気にしません。k-meansの使用は特に重要ではありません。私は同様の効果を探していますが、近似的なk-meansまたは関連するアルゴリズムは素晴らしいでしょう(ミニバッチ-SGD平均、...)。GMMはある意味でk-meansと同じ問題なので、同じサイズのデータ​​で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')) これはブラウンコーパスの優れたチューリング確率分布を使用していますが、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平均クラスタリングアルゴリズムを理解しようとしています。 私はロイドのアルゴリズムとマックイーンのオンラインアルゴリズムを理解しています。それらを理解する方法は次のとおりです。 ロイドのアルゴリズム: 最初に、「k」個のクラスターの重心として機能する「k」個のランダムな観測値が選択されます。次に、重心が収束するまで、次のステップが反復で発生します。 各観測値と選択された重心間のユークリッド距離が計算されます。 各重心に最も近い観測値は、「k」バケット内でタグ付けされます。 各バケットのすべての観測値の平均は、新しい重心として機能します。 新しい重心は古い重心を置き換え、古い重心と新しい重心が収束していない場合、反復はステップ1に戻ります。 収束する条件は次のとおりです。古い重心と新しい重心がまったく同じであるか、重心の差が小さい(10 ^ -3のオーダー)か、最大反復回数(10または100)に達しています。 MacQueenのアルゴリズム: これは、最初の「k」インスタンスが重心として選択されるオンラインバージョンです。 次に、各インスタンスは、そのインスタンスに最も近い重心に応じてバケットに配置されます。それぞれの重心が再計算されます。 各インスタンスが適切なバケットに配置されるまで、この手順を繰り返します。 このアルゴリズムには反復が1つしかなく、ループは 'x'インスタンスに対して続行されます Hartigan-Wongアルゴリズム: すべてのポイント/インスタンスをランダムなバケットに割り当て、それぞれの重心を計算します。 最初のインスタンスから始めて、最も近い重心を見つけ、そのバケットを割り当てます。バケットが変更された場合、新しい重心、つまり、新しく割り当てられたバケットの重心と古いバケット割り当ての重心が、変更の影響を受ける2つの重心であるため、それらを再計算します。 すべてのポイントをループして、新しい重心を取得します。 ポイント2と3の2回目の反復を実行します。これは、一種のクリーンアップ操作を実行し、漂遊ポイントを正しいバケットに再割り当てします。 したがって、このアルゴリズムは、収束結果を確認する前に2回の反復を実行します。 さて、Hartigan-Wongアルゴリズムのポイント4で私が考えることがアルゴリズムの正しい方法であるかどうかはわかりません。私の質問は、次のHartigan-Wongのメソッドがk-meansを実装する正しい方法であるかどうかです。この方法の反復は2つだけですか?そうでない場合、収束の条件は何ですか(いつ停止するか)? 私が理解しているもう1つの可能な実装の説明は次のとおりです。 すべてのポイント/インスタンスをランダムなバケットに割り当て、それぞれの重心を計算します。 最初のインスタンスから始めて、最も近い重心を見つけ、そのバケットを割り当てます。バケットが変更された場合は、新しい重心、つまり新しく割り当てられたバケットの重心と古いバケット割り当ての重心が変更の影響を受ける2つの重心であるため、それらを再計算します。 いずれかの時点でバケットに変更があったら、最初のインスタンスに戻って手順を繰り返します。 すべてのインスタンスが反復され、どのポイントもバケットを変更しない場合、反復は終了します。 このように、インスタンスがバケットを変更するたびに、データセットの最初から何度も繰り返される多くの反復があります。 説明があれば役に立ちます。これらの方法のいずれかについて私の理解が間違っている場合はお知らせください。
10 r  clustering  k-means 

4
数値と名義の混合離散データのクラスタリング
私のデータには、2進数(数値)および名目/カテゴリーの調査回答が含まれています。すべての応答は離散的で、個人レベルです。 データは形状です(n = 7219、p = 105)。 カップルのもの: カテゴリカルおよび数値のバイナリデータで機能する類似性の測度を使用して、クラスタリング手法を特定しようとしています。このタイプの問題のために設計されたR kmodesクラスタリングとkprototypeにはテクニックがありますが、私はPythonを使用していて、このタイプの問題にうまく機能するsklearnクラスタリングのテクニックが必要です。 個人のセグメントのプロファイルを作成したい。つまり、この個人グループは、これらの機能のセットをより重視します。

1
指定された変数に直交する(相関しない)予測を生成する
私が持っているXマトリックス、y変数、および他の変数をORTHO_VAR。私はをy使用して変数を予測する必要がありますXが、そのモデルからの予測は、可能な限りORTHO_VAR相関する一方で、直交する必要がありますy。 私は予測がノンパラメトリックな方法で生成されることを望みxgboost.XGBRegressorますが、どうしても必要な場合は線形法を使用できます。 このコード: import numpy as np import pandas as pd from sklearn.datasets import make_regression from xgboost import XGBRegressor ORTHO_VAR = 'ortho_var' TARGET = 'target' PRED = 'yhat' # Create regression dataset with two correlated targets X, y = make_regression(n_features=20, random_state=245, n_targets=2) indep_vars = ['var{}'.format(i) for i in range(X.shape[1])] # …
8 correlation  machine-learning  dataset  logistic-regression  prediction  linear-regression  prediction  dummy-variables  neural-network  image-classification  python  k-nn  python  neural-network  neural-network  deep-learning  keras  tensorflow  image-classification  tensorflow  reinforcement-learning  policy-gradients  machine-learning  decision-trees  neural-network  overfitting  data-analysis  metric  python  scikit-learn  distance  scipy  machine-learning  python  scikit-learn  decision-trees  logistic-regression  keras  image-classification  implementation  machine-learning  python  scikit-learn  random-forest  decision-trees  machine-learning  feature-selection  feature-engineering  word2vec  word-embeddings  natural-language-process  scikit-learn  time-series  clustering  k-means  python  cross-validation  pyspark  statistics  cross-validation  multiclass-classification  evaluation  machine-learning  nlp  machine-translation  neural-network  deep-learning  keras  tensorflow  image-classification  machine-learning  python  similarity  distance  lstm  text  named-entity-recognition  machine-learning  keras  optimization  gan  learning-rate  neural-network  data-mining  dataset  databases  books  neural-network  rnn 

2
高次元データのクラスタリング
TL; DR:ラベル付けされていないデータの大きな画像データセット(生のピクセルが約36 GiB)がある場合、K最初にクラスターの数を知らずに(ピクセル値に基づいて)画像をクラスター化するにはどうすればよいですか? 私は現在、画像をクラスター化するための教師なし学習プロジェクトに取り組んでいます。16x16x3のRGBピクセル値でMNISTをクラスタリングすると考えてください。クラスタリングする必要があるのは約4800万の例だけです。それらのアイデンティティを知らなくても、一部の画像は同じソースからのものであるため、確実に関連していることはわかりますが、たとえばK、セットでK平均法を「ただ」実行するための適切な方法もまだわかりません。 t-SNEを使用して手動の2D埋め込みを実行し、埋め込みスペースで手動でクラスター化することを考えていました(16x16x3-d で手動で実行するよりも簡単なタスク)。ただし、すべてのt-SNE実装で、データをメモリにロードする必要がありました。最初にt-SNEを実行し、次にt-SNE埋め込みデータでK-meansを実行することも考えましたが、MNISTからのt-SNEの結果を見ると、これらのクラスターが歪んでいる可能性があり、歪んでいる可能性があることは明らかです非線形の方法で。したがって、私がを知っていたKとしても、クラスターはおそらく分割されます。K平均にマハラノビス距離を使用することは興味深いかもしれませんが、そもそも共分散がわからないので、これも行き止まりのようです。 現在、サンプルでPCA圧縮を実行して、少なくともt-SNEのメモリをいくらか取り戻すことができるかどうかを試していますが、それが機能する場合と機能しない場合があります。 誰かが私にこれを行うための正しい方向へのポインタを与えることができますか(理想的には、Python、TensorFlow、またはApache Beam / Dataflowコンテキストでは必ずしも必要ではありません)?私は少し前にストリーミング/ボールK-meansの移植に取り組んでいましたが、「オンデマンド」で新しいクラスターを作成するという優れた特性がありますが、それをPython / TensorFlow / Dataflowに再び実装する前に、誰かができることを望んでいましたどこから始めるべきか、何を避けるべきか、いくつかのアイデアを教えてください。

3
k-meansのクラスターに属する確率を取得する方法は?
データセットの各ポイントの確率を取得する必要があります。考え方は、距離行列を計算することです(最初の列は最初のクラスターまでの距離、2番目の列は2番目のクラスターまでの距離など)。最も近いポイントの確率は1、最も遠い確率は0です。問題は線形関数(MinMaxScallerなど)で、ほとんどすべてのポイントがほぼ同じ確率で出力されます。 このタスクの非線形性を選択する方法は?Pythonでこのプロセスを自動化する方法は?たとえば、最も近いポイントのp=1場合、cluster p=0.5に属する最も遠いポイントの場合、最も遠いポイントのpはalmols 0です。 または、この確率を計算する別の方法を提案できます。

1
視覚的な言葉のバッグ
私がやろうとしていること: 一部の画像をローカルおよびグローバル機能を使用して分類しようとしています。 これまでに行ったこと: 各画像のシフト記述子を抽出しました。これをk平均の入力として使用して、すべての画像のすべての機能から語彙を作成しています。ここから、画像のふるい分け機能をk平均法の予測メソッドに渡してクラスターのラベルを取得することで、各画像のクラスターからヒストグラムを作成します。ここから、各ビンのラベルの数をカウントしてヒストグラムを作成します。これでnxm行列ができました。nは画像の数、mは各画像のクラスター(特徴/単語)の数です。 このマトリックスを分類器に送り、画像の分類を取得します。 一言で言えば、ステップ: 各画像にnx128行列を与えるシフト機能記述子を抽出します すべての機能記述子を1つの大きなリストにスタックします これらの機能すべてをkmeansアルゴリズム設定k = 100に適合させます。 すべての画像について、そのシフト機能を使用して、同じトレーニング済みkmeansモデルを使用してクラスターのラベルを予測します ビンの数としてkを使用してクラスターからヒストグラムを作成し、モデルの各ラベルのビンに1を追加します。(画像にシフトからの10個の特徴がある場合、10個のラベルが与えられ、これらの10個のラベルはkの範囲にあるため、各ラベルについて、ヒストグラムの対応するビンに追加します)。 これでnxk行列ができました。nは画像の数、kはクラスターの数です。 次に、ヒストグラムを分類子にフィードし、テストデータを予測するように依頼します。 問題: Bag of Visual Wordsを正しく実行していますか? これが私のコードです: def extract_features(df): IF = imageFeatures() global_features = [] sift_features = [] labels = [] for i, (index, sample) in enumerate(df.iterrows()): image = cv2.imread(sample["location"]) image = cv2.resize(image, shape) hist = …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.