[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CXS6DKBT6WAC4T63MF5EF5":3,"skill-same:01M6CXS6DKBT6WAC4T63MF5EF5":51},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":31,"commitSha":32,"skillDirectory":5,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":36,"install":37,"resources":50},"01M6CXS6DKBT6WAC4T63MF5EF5","unsupervised-learning",null,"Unsupervised learning techniques","ffsshhttiikk\u002Fopencode-agents-skills","ffsshhttiikk","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F226346827?v=4","01M6CWD9RR3Y7VRQX3MXYC8FYH","01M6CWD9WVPYAZW0J82G1VKGHY",3,"MIT","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Funsupervised-learning\u002FSKILL.md",[],[18,19,20,21,22],"learning","unsupervised learning","machine-learning","opencode","intelligence","2026-11-10 10:12:30",false,"---\nname: unsupervised-learning\ndescription: Unsupervised learning techniques\nlicense: MIT\ncompatibility: opencode\nmetadata:\n  audience: machine-learning-engineers\n  category: artificial-intelligence\n---\n\n## What I do\n\n- Find patterns in unlabeled data\n- Cluster similar data points\n- Reduce data dimensionality\n- Detect anomalies\n- Learn representations\n- Segment data populations\n\n## When to use me\n\nUse me when:\n- Data has no labels\n- Exploratory analysis needed\n- Dimensionality reduction required\n- Anomaly detection needed\n- Customer segmentation\n- Data compression\n\n## Key Concepts\n\n### Clustering Methods\n```python\nimport numpy as np\nfrom sklearn.cluster import KMeans, DBSCAN, AgglomerativeClustering\nfrom sklearn.mixture import GaussianMixture\nfrom sklearn.metrics import silhouette_score\n\n# K-Means\nkmeans = KMeans(n_clusters=3, random_state=42)\nlabels = kmeans.fit_predict(X)\ncenters = kmeans.cluster_centers_\n\n# Find optimal k\nsilhouette_scores = []\nfor k in range(2, 10):\n    kmeans = KMeans(n_clusters=k)\n    score = silhouette_score(X, kmeans.fit_predict(X))\n    silhouette_scores.append(score)\n\n# DBSCAN (density-based)\ndbscan = DBSCAN(eps=0.5, min_samples=5)\nlabels = dbscan.fit_predict(X)\n\n# Hierarchical\nhierarchical = AgglomerativeClustering(n_clusters=3)\nlabels = hierarchical.fit_predict(X)\n\n# Gaussian Mixture (probabilistic)\ngmm = GaussianMixture(n_components=3)\ngmm.fit(X)\nlabels = gmm.predict(X)\nprobs = gmm.predict_proba(X)\n```\n\n### Dimensionality Reduction\n```python\nfrom sklearn.decomposition import PCA, TruncatedSVD\nfrom sklearn.manifold import TSNE\n\n# PCA\npca = PCA(n_components=0.95)  # 95% variance\nX_pca = pca.fit_transform(X)\n\n# t-SNE (visualization)\ntsne = TSNE(n_components=2, perplexity=30)\nX_tsne = tsne.fit_transform(X)\n\n# SVD (sparse data)\nsvd = TruncatedSVD(n_components=100)\nX_svd = svd.fit_transform(X)\n```\n\n### Anomaly Detection\n```python\nfrom sklearn.ensemble import IsolationForest\nfrom sklearn.neighbors import LocalOutlierFactor\n\n# Isolation Forest\niso = IsolationForest(contamination=0.1)\noutliers = iso.fit_predict(X)\n\n# LOF\nlof = LocalOutlierFactor(n_neighbors=20, contamination=0.1)\noutliers = lof.fit_predict(X)\n```\n","## What I do\n\n- Find patterns in unlabeled data\n- Cluster similar data points\n- Reduce data dimensionality\n- Detect anomalies\n- Learn representations\n- Segment data populations\n\n## When to use me\n\nUse me when:\n- Data has no labels\n- Exploratory analysis needed\n- Dimensionality reduction required\n- Anomaly detection needed\n- Customer segmentation\n- Data compression\n\n## Key Concepts\n\n### Clustering Methods\n```python\nimport numpy as np\nfrom sklearn.cluster import KMeans, DBSCAN, AgglomerativeClustering\nfrom sklearn.mixture import GaussianMixture\nfrom sklearn.metrics import silhouette_score\n\n# K-Means\nkmeans = KMeans(n_clusters=3, random_state=42)\nlabels = kmeans.fit_predict(X)\ncenters = kmeans.cluster_centers_\n\n# Find optimal k\nsilhouette_scores = []\nfor k in range(2, 10):\n    kmeans = KMeans(n_clusters=k)\n    score = silhouette_score(X, kmeans.fit_predict(X))\n    silhouette_scores.append(score)\n\n# DBSCAN (density-based)\ndbscan = DBSCAN(eps=0.5, min_samples=5)\nlabels = dbscan.fit_predict(X)\n\n# Hierarchical\nhierarchical = AgglomerativeClustering(n_clusters=3)\nlabels = hierarchical.fit_predict(X)\n\n# Gaussian Mixture (probabilistic)\ngmm = GaussianMixture(n_components=3)\ngmm.fit(X)\nlabels = gmm.predict(X)\nprobs = gmm.predict_proba(X)\n```\n\n### Dimensionality Reduction\n```python\nfrom sklearn.decomposition import PCA, TruncatedSVD\nfrom sklearn.manifold import TSNE\n\n# PCA\npca = PCA(n_components=0.95)  # 95% variance\nX_pca = pca.fit_transform(X)\n\n# t-SNE (visualization)\ntsne = TSNE(n_components=2, perplexity=30)\nX_tsne = tsne.fit_transform(X)\n\n# SVD (sparse data)\nsvd = TruncatedSVD(n_components=100)\nX_svd = svd.fit_transform(X)\n```\n\n### Anomaly Detection\n```python\nfrom sklearn.ensemble import IsolationForest\nfrom sklearn.neighbors import LocalOutlierFactor\n\n# Isolation Forest\niso = IsolationForest(contamination=0.1)\noutliers = iso.fit_predict(X)\n\n# LOF\nlof = LocalOutlierFactor(n_neighbors=20, contamination=0.1)\noutliers = lof.fit_predict(X)\n```\n",{"name":5,"license":14,"metadata":28,"description":7,"compatibility":21},{"audience":29,"category":30},"machine-learning-engineers","artificial-intelligence","main","5f7a3e453c98261f93d19a6a7de44ad8f7b72d41",2,"https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk","2026-03-01 06:55:40",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill unsupervised-learning",{"tool":43,"command":44},"bunx","bunx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill unsupervised-learning",{"tool":46,"command":47},"pnpm","pnpm dlx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill unsupervised-learning","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Funsupervised-learning\u002FSKILL.md",true,[],[52,63,73,82,92,101],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":23},"01M6CXT9TXDF79BWJTMQAPB49G","xamarin","Xamarin cross-platform development","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fxamarin\u002FSKILL.md",[],[54,59,60,61,21,62],"platform","cross-platform","mobile","development",{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":23},"01M6CXT8AD04MFYDA32VW3FKAG","wrangling","Data wrangling fundamentals","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwrangling\u002FSKILL.md",[],[65,70,21,71,72],"data wrangling","science","data",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":23},"01M6CXT717GCN7SRRNPBDP4508","windows","Windows operating system administration and scripting","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwindows\u002FSKILL.md",[],[75,80,21,81],"system","scripting",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":23},"01M6CXT54K794NMEM3XAPZZDKT","wide-column","Wide-column data model","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column\u002FSKILL.md",[],[89,90,21,91,72],"wide column","databases","model",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":23},"01M6CXT28FMT2P4V9GZE67WA8E","wide-column-stores","Wide-column database stores","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column-stores\u002FSKILL.md",[],[99,90,21,100],"wide column stores","database",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":23},"01M6CXT0D0M0Q4T2N7C2RX7DSN","websockets","WebSocket implementation and best practices","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwebsockets\u002FSKILL.md",[],[103,108,109,110,21,111,112],"websocket","real-time","time","best practices","implementation"]