Skip to content

Commit 93663df

Browse files
committed
Pushing the docs to dev/ for branch: main, commit e4fbc3735c51018a9b30c5d6c749249f83d37132
1 parent ef5e19e commit 93663df

File tree

1,577 files changed

+6084
-6084
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,577 files changed

+6084
-6084
lines changed

dev/_downloads/00ae629d652473137a3905a5e08ea815/plot_iris_dtc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363

6464
# Plot the training points
6565
for i, color in zip(range(n_classes), plot_colors):
66-
idx = np.where(y == i)
66+
idx = np.asarray(y == i).nonzero()
6767
plt.scatter(
6868
X[idx, 0],
6969
X[idx, 1],
Binary file not shown.
Binary file not shown.

dev/_downloads/036b9372e2e7802453cbb994da7a6786/plot_linearsvc_support_vectors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
# decision_function = np.dot(X, clf.coef_[0]) + clf.intercept_[0]
3232
# The support vectors are the samples that lie within the margin
3333
# boundaries, whose size is conventionally constrained to 1
34-
support_vector_indices = np.where(np.abs(decision_function) <= 1 + 1e-15)[0]
34+
support_vector_indices = (np.abs(decision_function) <= 1 + 1e-15).nonzero()[0]
3535
support_vectors = X[support_vector_indices]
3636

3737
plt.subplot(1, 2, i + 1)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

dev/_downloads/0dd5e0a7942f1446accf7dffd47aed28/plot_label_propagation_digits_active_learning.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
sub.axis("off")
109109

110110
# labeling 5 points, remote from labeled set
111-
(delete_index,) = np.where(unlabeled_indices == image_index)
111+
(delete_index,) = (unlabeled_indices == image_index).nonzero()
112112
delete_indices = np.concatenate((delete_indices, delete_index))
113113

114114
unlabeled_indices = np.delete(unlabeled_indices, delete_indices)
Binary file not shown.

dev/_downloads/12a392e818ac5fa47dd91461855f3f77/plot_linearsvc_support_vectors.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
},
1616
"outputs": [],
1717
"source": [
18-
"# Authors: The scikit-learn developers\n# SPDX-License-Identifier: BSD-3-Clause\n\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nfrom sklearn.datasets import make_blobs\nfrom sklearn.inspection import DecisionBoundaryDisplay\nfrom sklearn.svm import LinearSVC\n\nX, y = make_blobs(n_samples=40, centers=2, random_state=0)\n\nplt.figure(figsize=(10, 5))\nfor i, C in enumerate([1, 100]):\n # \"hinge\" is the standard SVM loss\n clf = LinearSVC(C=C, loss=\"hinge\", random_state=42).fit(X, y)\n # obtain the support vectors through the decision function\n decision_function = clf.decision_function(X)\n # we can also calculate the decision function manually\n # decision_function = np.dot(X, clf.coef_[0]) + clf.intercept_[0]\n # The support vectors are the samples that lie within the margin\n # boundaries, whose size is conventionally constrained to 1\n support_vector_indices = np.where(np.abs(decision_function) <= 1 + 1e-15)[0]\n support_vectors = X[support_vector_indices]\n\n plt.subplot(1, 2, i + 1)\n plt.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=plt.cm.Paired)\n ax = plt.gca()\n DecisionBoundaryDisplay.from_estimator(\n clf,\n X,\n ax=ax,\n grid_resolution=50,\n plot_method=\"contour\",\n colors=\"k\",\n levels=[-1, 0, 1],\n alpha=0.5,\n linestyles=[\"--\", \"-\", \"--\"],\n )\n plt.scatter(\n support_vectors[:, 0],\n support_vectors[:, 1],\n s=100,\n linewidth=1,\n facecolors=\"none\",\n edgecolors=\"k\",\n )\n plt.title(\"C=\" + str(C))\nplt.tight_layout()\nplt.show()"
18+
"# Authors: The scikit-learn developers\n# SPDX-License-Identifier: BSD-3-Clause\n\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nfrom sklearn.datasets import make_blobs\nfrom sklearn.inspection import DecisionBoundaryDisplay\nfrom sklearn.svm import LinearSVC\n\nX, y = make_blobs(n_samples=40, centers=2, random_state=0)\n\nplt.figure(figsize=(10, 5))\nfor i, C in enumerate([1, 100]):\n # \"hinge\" is the standard SVM loss\n clf = LinearSVC(C=C, loss=\"hinge\", random_state=42).fit(X, y)\n # obtain the support vectors through the decision function\n decision_function = clf.decision_function(X)\n # we can also calculate the decision function manually\n # decision_function = np.dot(X, clf.coef_[0]) + clf.intercept_[0]\n # The support vectors are the samples that lie within the margin\n # boundaries, whose size is conventionally constrained to 1\n support_vector_indices = (np.abs(decision_function) <= 1 + 1e-15).nonzero()[0]\n support_vectors = X[support_vector_indices]\n\n plt.subplot(1, 2, i + 1)\n plt.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=plt.cm.Paired)\n ax = plt.gca()\n DecisionBoundaryDisplay.from_estimator(\n clf,\n X,\n ax=ax,\n grid_resolution=50,\n plot_method=\"contour\",\n colors=\"k\",\n levels=[-1, 0, 1],\n alpha=0.5,\n linestyles=[\"--\", \"-\", \"--\"],\n )\n plt.scatter(\n support_vectors[:, 0],\n support_vectors[:, 1],\n s=100,\n linewidth=1,\n facecolors=\"none\",\n edgecolors=\"k\",\n )\n plt.title(\"C=\" + str(C))\nplt.tight_layout()\nplt.show()"
1919
]
2020
}
2121
],
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

dev/_downloads/2840d928d4f93cd381486b35c2031752/plot_stock_market.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
},
106106
"outputs": [],
107107
"source": [
108-
"import matplotlib.pyplot as plt\nfrom matplotlib.collections import LineCollection\n\nplt.figure(1, facecolor=\"w\", figsize=(10, 8))\nplt.clf()\nax = plt.axes([0.0, 0.0, 1.0, 1.0])\nplt.axis(\"off\")\n\n# Plot the graph of partial correlations\npartial_correlations = edge_model.precision_.copy()\nd = 1 / np.sqrt(np.diag(partial_correlations))\npartial_correlations *= d\npartial_correlations *= d[:, np.newaxis]\nnon_zero = np.abs(np.triu(partial_correlations, k=1)) > 0.02\n\n# Plot the nodes using the coordinates of our embedding\nplt.scatter(\n embedding[0], embedding[1], s=100 * d**2, c=labels, cmap=plt.cm.nipy_spectral\n)\n\n# Plot the edges\nstart_idx, end_idx = np.where(non_zero)\n# a sequence of (*line0*, *line1*, *line2*), where::\n# linen = (x0, y0), (x1, y1), ... (xm, ym)\nsegments = [\n [embedding[:, start], embedding[:, stop]] for start, stop in zip(start_idx, end_idx)\n]\nvalues = np.abs(partial_correlations[non_zero])\nlc = LineCollection(\n segments, zorder=0, cmap=plt.cm.hot_r, norm=plt.Normalize(0, 0.7 * values.max())\n)\nlc.set_array(values)\nlc.set_linewidths(15 * values)\nax.add_collection(lc)\n\n# Add a label to each node. The challenge here is that we want to\n# position the labels to avoid overlap with other labels\nfor index, (name, label, (x, y)) in enumerate(zip(names, labels, embedding.T)):\n dx = x - embedding[0]\n dx[index] = 1\n dy = y - embedding[1]\n dy[index] = 1\n this_dx = dx[np.argmin(np.abs(dy))]\n this_dy = dy[np.argmin(np.abs(dx))]\n if this_dx > 0:\n horizontalalignment = \"left\"\n x = x + 0.002\n else:\n horizontalalignment = \"right\"\n x = x - 0.002\n if this_dy > 0:\n verticalalignment = \"bottom\"\n y = y + 0.002\n else:\n verticalalignment = \"top\"\n y = y - 0.002\n plt.text(\n x,\n y,\n name,\n size=10,\n horizontalalignment=horizontalalignment,\n verticalalignment=verticalalignment,\n bbox=dict(\n facecolor=\"w\",\n edgecolor=plt.cm.nipy_spectral(label / float(n_labels)),\n alpha=0.6,\n ),\n )\n\nplt.xlim(\n embedding[0].min() - 0.15 * np.ptp(embedding[0]),\n embedding[0].max() + 0.10 * np.ptp(embedding[0]),\n)\nplt.ylim(\n embedding[1].min() - 0.03 * np.ptp(embedding[1]),\n embedding[1].max() + 0.03 * np.ptp(embedding[1]),\n)\n\nplt.show()"
108+
"import matplotlib.pyplot as plt\nfrom matplotlib.collections import LineCollection\n\nplt.figure(1, facecolor=\"w\", figsize=(10, 8))\nplt.clf()\nax = plt.axes([0.0, 0.0, 1.0, 1.0])\nplt.axis(\"off\")\n\n# Plot the graph of partial correlations\npartial_correlations = edge_model.precision_.copy()\nd = 1 / np.sqrt(np.diag(partial_correlations))\npartial_correlations *= d\npartial_correlations *= d[:, np.newaxis]\nnon_zero = np.abs(np.triu(partial_correlations, k=1)) > 0.02\n\n# Plot the nodes using the coordinates of our embedding\nplt.scatter(\n embedding[0], embedding[1], s=100 * d**2, c=labels, cmap=plt.cm.nipy_spectral\n)\n\n# Plot the edges\nstart_idx, end_idx = non_zero.nonzero()\n# a sequence of (*line0*, *line1*, *line2*), where::\n# linen = (x0, y0), (x1, y1), ... (xm, ym)\nsegments = [\n [embedding[:, start], embedding[:, stop]] for start, stop in zip(start_idx, end_idx)\n]\nvalues = np.abs(partial_correlations[non_zero])\nlc = LineCollection(\n segments, zorder=0, cmap=plt.cm.hot_r, norm=plt.Normalize(0, 0.7 * values.max())\n)\nlc.set_array(values)\nlc.set_linewidths(15 * values)\nax.add_collection(lc)\n\n# Add a label to each node. The challenge here is that we want to\n# position the labels to avoid overlap with other labels\nfor index, (name, label, (x, y)) in enumerate(zip(names, labels, embedding.T)):\n dx = x - embedding[0]\n dx[index] = 1\n dy = y - embedding[1]\n dy[index] = 1\n this_dx = dx[np.argmin(np.abs(dy))]\n this_dy = dy[np.argmin(np.abs(dx))]\n if this_dx > 0:\n horizontalalignment = \"left\"\n x = x + 0.002\n else:\n horizontalalignment = \"right\"\n x = x - 0.002\n if this_dy > 0:\n verticalalignment = \"bottom\"\n y = y + 0.002\n else:\n verticalalignment = \"top\"\n y = y - 0.002\n plt.text(\n x,\n y,\n name,\n size=10,\n horizontalalignment=horizontalalignment,\n verticalalignment=verticalalignment,\n bbox=dict(\n facecolor=\"w\",\n edgecolor=plt.cm.nipy_spectral(label / float(n_labels)),\n alpha=0.6,\n ),\n )\n\nplt.xlim(\n embedding[0].min() - 0.15 * np.ptp(embedding[0]),\n embedding[0].max() + 0.10 * np.ptp(embedding[0]),\n)\nplt.ylim(\n embedding[1].min() - 0.03 * np.ptp(embedding[1]),\n embedding[1].max() + 0.03 * np.ptp(embedding[1]),\n)\n\nplt.show()"
109109
]
110110
}
111111
],

dev/_downloads/2a14e362a70d246e83fa6a89ca069cee/plot_sparse_coding.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def ricker_matrix(width, resolution, n_components):
106106
dictionary=D, transform_algorithm="threshold", transform_alpha=20
107107
)
108108
x = coder.transform(y.reshape(1, -1))
109-
_, idx = np.where(x != 0)
109+
_, idx = (x != 0).nonzero()
110110
x[0, idx], _, _, _ = np.linalg.lstsq(D[idx, :].T, y, rcond=None)
111111
x = np.ravel(np.dot(x, D))
112112
squared_error = np.sum((y - x) ** 2)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

dev/_downloads/3f7191b01d0103d1886c959ed7687c4d/plot_bicluster_newsgroups.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
},
1616
"outputs": [],
1717
"source": [
18-
"# Authors: The scikit-learn developers\n# SPDX-License-Identifier: BSD-3-Clause\nfrom collections import Counter\nfrom time import time\n\nimport numpy as np\n\nfrom sklearn.cluster import MiniBatchKMeans, SpectralCoclustering\nfrom sklearn.datasets import fetch_20newsgroups\nfrom sklearn.feature_extraction.text import TfidfVectorizer\nfrom sklearn.metrics.cluster import v_measure_score\n\n\ndef number_normalizer(tokens):\n \"\"\"Map all numeric tokens to a placeholder.\n\n For many applications, tokens that begin with a number are not directly\n useful, but the fact that such a token exists can be relevant. By applying\n this form of dimensionality reduction, some methods may perform better.\n \"\"\"\n return (\"#NUMBER\" if token[0].isdigit() else token for token in tokens)\n\n\nclass NumberNormalizingVectorizer(TfidfVectorizer):\n def build_tokenizer(self):\n tokenize = super().build_tokenizer()\n return lambda doc: list(number_normalizer(tokenize(doc)))\n\n\n# exclude 'comp.os.ms-windows.misc'\ncategories = [\n \"alt.atheism\",\n \"comp.graphics\",\n \"comp.sys.ibm.pc.hardware\",\n \"comp.sys.mac.hardware\",\n \"comp.windows.x\",\n \"misc.forsale\",\n \"rec.autos\",\n \"rec.motorcycles\",\n \"rec.sport.baseball\",\n \"rec.sport.hockey\",\n \"sci.crypt\",\n \"sci.electronics\",\n \"sci.med\",\n \"sci.space\",\n \"soc.religion.christian\",\n \"talk.politics.guns\",\n \"talk.politics.mideast\",\n \"talk.politics.misc\",\n \"talk.religion.misc\",\n]\nnewsgroups = fetch_20newsgroups(categories=categories)\ny_true = newsgroups.target\n\nvectorizer = NumberNormalizingVectorizer(stop_words=\"english\", min_df=5)\ncocluster = SpectralCoclustering(\n n_clusters=len(categories), svd_method=\"arpack\", random_state=0\n)\nkmeans = MiniBatchKMeans(\n n_clusters=len(categories), batch_size=20000, random_state=0, n_init=3\n)\n\nprint(\"Vectorizing...\")\nX = vectorizer.fit_transform(newsgroups.data)\n\nprint(\"Coclustering...\")\nstart_time = time()\ncocluster.fit(X)\ny_cocluster = cocluster.row_labels_\nprint(\n f\"Done in {time() - start_time:.2f}s. V-measure: \\\n{v_measure_score(y_cocluster, y_true):.4f}\"\n)\n\n\nprint(\"MiniBatchKMeans...\")\nstart_time = time()\ny_kmeans = kmeans.fit_predict(X)\nprint(\n f\"Done in {time() - start_time:.2f}s. V-measure: \\\n{v_measure_score(y_kmeans, y_true):.4f}\"\n)\n\n\nfeature_names = vectorizer.get_feature_names_out()\ndocument_names = list(newsgroups.target_names[i] for i in newsgroups.target)\n\n\ndef bicluster_ncut(i):\n rows, cols = cocluster.get_indices(i)\n if not (np.any(rows) and np.any(cols)):\n import sys\n\n return sys.float_info.max\n row_complement = np.nonzero(np.logical_not(cocluster.rows_[i]))[0]\n col_complement = np.nonzero(np.logical_not(cocluster.columns_[i]))[0]\n # Note: the following is identical to X[rows[:, np.newaxis],\n # cols].sum() but much faster in scipy <= 0.16\n weight = X[rows][:, cols].sum()\n cut = X[row_complement][:, cols].sum() + X[rows][:, col_complement].sum()\n return cut / weight\n\n\nbicluster_ncuts = list(bicluster_ncut(i) for i in range(len(newsgroups.target_names)))\nbest_idx = np.argsort(bicluster_ncuts)[:5]\n\nprint()\nprint(\"Best biclusters:\")\nprint(\"----------------\")\nfor idx, cluster in enumerate(best_idx):\n n_rows, n_cols = cocluster.get_shape(cluster)\n cluster_docs, cluster_words = cocluster.get_indices(cluster)\n if not len(cluster_docs) or not len(cluster_words):\n continue\n\n # categories\n counter = Counter(document_names[doc] for doc in cluster_docs)\n\n cat_string = \", \".join(\n f\"{(c / n_rows * 100):.0f}% {name}\" for name, c in counter.most_common(3)\n )\n\n # words\n out_of_cluster_docs = cocluster.row_labels_ != cluster\n out_of_cluster_docs = np.where(out_of_cluster_docs)[0]\n word_col = X[:, cluster_words]\n word_scores = np.array(\n word_col[cluster_docs, :].sum(axis=0)\n - word_col[out_of_cluster_docs, :].sum(axis=0)\n )\n word_scores = word_scores.ravel()\n important_words = list(\n feature_names[cluster_words[i]] for i in word_scores.argsort()[:-11:-1]\n )\n\n print(f\"bicluster {idx} : {n_rows} documents, {n_cols} words\")\n print(f\"categories : {cat_string}\")\n print(f\"words : {', '.join(important_words)}\\n\")"
18+
"# Authors: The scikit-learn developers\n# SPDX-License-Identifier: BSD-3-Clause\nfrom collections import Counter\nfrom time import time\n\nimport numpy as np\n\nfrom sklearn.cluster import MiniBatchKMeans, SpectralCoclustering\nfrom sklearn.datasets import fetch_20newsgroups\nfrom sklearn.feature_extraction.text import TfidfVectorizer\nfrom sklearn.metrics.cluster import v_measure_score\n\n\ndef number_normalizer(tokens):\n \"\"\"Map all numeric tokens to a placeholder.\n\n For many applications, tokens that begin with a number are not directly\n useful, but the fact that such a token exists can be relevant. By applying\n this form of dimensionality reduction, some methods may perform better.\n \"\"\"\n return (\"#NUMBER\" if token[0].isdigit() else token for token in tokens)\n\n\nclass NumberNormalizingVectorizer(TfidfVectorizer):\n def build_tokenizer(self):\n tokenize = super().build_tokenizer()\n return lambda doc: list(number_normalizer(tokenize(doc)))\n\n\n# exclude 'comp.os.ms-windows.misc'\ncategories = [\n \"alt.atheism\",\n \"comp.graphics\",\n \"comp.sys.ibm.pc.hardware\",\n \"comp.sys.mac.hardware\",\n \"comp.windows.x\",\n \"misc.forsale\",\n \"rec.autos\",\n \"rec.motorcycles\",\n \"rec.sport.baseball\",\n \"rec.sport.hockey\",\n \"sci.crypt\",\n \"sci.electronics\",\n \"sci.med\",\n \"sci.space\",\n \"soc.religion.christian\",\n \"talk.politics.guns\",\n \"talk.politics.mideast\",\n \"talk.politics.misc\",\n \"talk.religion.misc\",\n]\nnewsgroups = fetch_20newsgroups(categories=categories)\ny_true = newsgroups.target\n\nvectorizer = NumberNormalizingVectorizer(stop_words=\"english\", min_df=5)\ncocluster = SpectralCoclustering(\n n_clusters=len(categories), svd_method=\"arpack\", random_state=0\n)\nkmeans = MiniBatchKMeans(\n n_clusters=len(categories), batch_size=20000, random_state=0, n_init=3\n)\n\nprint(\"Vectorizing...\")\nX = vectorizer.fit_transform(newsgroups.data)\n\nprint(\"Coclustering...\")\nstart_time = time()\ncocluster.fit(X)\ny_cocluster = cocluster.row_labels_\nprint(\n f\"Done in {time() - start_time:.2f}s. V-measure: \\\n{v_measure_score(y_cocluster, y_true):.4f}\"\n)\n\n\nprint(\"MiniBatchKMeans...\")\nstart_time = time()\ny_kmeans = kmeans.fit_predict(X)\nprint(\n f\"Done in {time() - start_time:.2f}s. V-measure: \\\n{v_measure_score(y_kmeans, y_true):.4f}\"\n)\n\n\nfeature_names = vectorizer.get_feature_names_out()\ndocument_names = list(newsgroups.target_names[i] for i in newsgroups.target)\n\n\ndef bicluster_ncut(i):\n rows, cols = cocluster.get_indices(i)\n if not (np.any(rows) and np.any(cols)):\n import sys\n\n return sys.float_info.max\n row_complement = np.nonzero(np.logical_not(cocluster.rows_[i]))[0]\n col_complement = np.nonzero(np.logical_not(cocluster.columns_[i]))[0]\n # Note: the following is identical to X[rows[:, np.newaxis],\n # cols].sum() but much faster in scipy <= 0.16\n weight = X[rows][:, cols].sum()\n cut = X[row_complement][:, cols].sum() + X[rows][:, col_complement].sum()\n return cut / weight\n\n\nbicluster_ncuts = list(bicluster_ncut(i) for i in range(len(newsgroups.target_names)))\nbest_idx = np.argsort(bicluster_ncuts)[:5]\n\nprint()\nprint(\"Best biclusters:\")\nprint(\"----------------\")\nfor idx, cluster in enumerate(best_idx):\n n_rows, n_cols = cocluster.get_shape(cluster)\n cluster_docs, cluster_words = cocluster.get_indices(cluster)\n if not len(cluster_docs) or not len(cluster_words):\n continue\n\n # categories\n counter = Counter(document_names[doc] for doc in cluster_docs)\n\n cat_string = \", \".join(\n f\"{(c / n_rows * 100):.0f}% {name}\" for name, c in counter.most_common(3)\n )\n\n # words\n out_of_cluster_docs = cocluster.row_labels_ != cluster\n out_of_cluster_docs = out_of_cluster_docs.nonzero()[0]\n word_col = X[:, cluster_words]\n word_scores = np.array(\n word_col[cluster_docs, :].sum(axis=0)\n - word_col[out_of_cluster_docs, :].sum(axis=0)\n )\n word_scores = word_scores.ravel()\n important_words = list(\n feature_names[cluster_words[i]] for i in word_scores.argsort()[:-11:-1]\n )\n\n print(f\"bicluster {idx} : {n_rows} documents, {n_cols} words\")\n print(f\"categories : {cat_string}\")\n print(f\"words : {', '.join(important_words)}\\n\")"
1919
]
2020
}
2121
],
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)