{"id":27167246,"url":"https://github.com/ableinc/machine-learning","last_synced_at":"2025-04-09T04:51:20.107Z","repository":{"id":286328143,"uuid":"961080996","full_name":"ableinc/machine-learning","owner":"ableinc","description":"A repository of machine learning models and examples using Tensorflow. If you notice areas of improvment, raise a PR!","archived":false,"fork":false,"pushed_at":"2025-04-05T18:29:40.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T19:19:49.625Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ableinc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-05T17:58:28.000Z","updated_at":"2025-04-05T18:29:43.000Z","dependencies_parsed_at":"2025-04-05T19:19:53.188Z","dependency_job_id":"fe102a7f-cd45-4c2a-8883-c4d37a962d37","html_url":"https://github.com/ableinc/machine-learning","commit_stats":null,"previous_names":["ableinc/machine-learning"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ableinc%2Fmachine-learning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ableinc%2Fmachine-learning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ableinc%2Fmachine-learning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ableinc%2Fmachine-learning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ableinc","download_url":"https://codeload.github.com/ableinc/machine-learning/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247980820,"owners_count":21027804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-09T04:51:19.579Z","updated_at":"2025-04-09T04:51:20.102Z","avatar_url":"https://github.com/ableinc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Machine Learning\n\nA repository of common machine learning algorithms and example usages.\n\n🧠 1. Supervised Learning Models\na. Regression\n\n    What: Predict continuous values.\n\n    Example: Predict house prices, accident count, temperature, or stock prices.\n\nb. Classification\n\n    What: Predict class labels.\n\n    Example: Spam detection, disease diagnosis, image classification (cat vs. dog).\n\n🧩 2. Unsupervised Learning Models\na. Clustering\n\n    What: Group similar data points.\n\n    Example: Customer segmentation, traffic accident hotspots.\n\nb. Dimensionality Reduction\n\n    What: Reduce number of features.\n\n    Example: Visualizing high-dimensional data, preprocessing for modeling.\n\n🔁 3. Sequence Models\na. Recurrent Neural Networks (RNN)\n\n    What: Handle sequential/time-series data.\n\n    Example: Predict weather patterns, accident trends, stock market.\n\nb. Long Short-Term Memory (LSTM) / GRU\n\n    What: Improved RNNs with memory control.\n\n    Example: Text generation, traffic prediction, music generation.\n\n🔍 4. Attention-Based Models\na. Transformer\n\n    What: State-of-the-art for sequence tasks.\n\n    Example: Translation, summarization, time-series forecasting.\n\nb. BERT / GPT-style Models\n\n    What: Pretrained language understanding/generation.\n\n    Example: Chatbots, document search, summarization.\n\n🧱 5. Convolutional Neural Networks (CNN)\n\n    What: Process grid-like data such as images or time-frequency.\n\n    Example: Object detection, medical imaging, self-driving car vision.\n\n📦 6. Autoencoders\n\n    What: Compress and reconstruct data.\n\n    Example: Anomaly detection (e.g., rare accident types), denoising, latent representation learning.\n\n💡 7. Generative Models\na. Generative Adversarial Networks (GANs)\n\n    What: Generate new, realistic data.\n\n    Example: Synthetic images, data augmentation, video generation.\n\nb. Variational Autoencoders (VAEs)\n\n    What: Probabilistic generation of data.\n\n    Example: Face morphing, anomaly detection.\n\n🤖 8. Reinforcement Learning Models\n\n    What: Learn via trial and error with rewards.\n\n    Example: Traffic signal optimization, autonomous driving policies, dynamic pricing.\n\n📈 9. Time Series Forecasting Models\n\n    What: Predict future values.\n\n    Example: Sales prediction, accident trends, resource demand.\n\n🔐 10. Recommendation Systems\n\n    What: Suggest relevant items.\n\n    Example: Movie/music recommendations, driver insurance personalization.\n\n🌐 11. Graph Neural Networks (GNN)\n\n    What: Model relationships between entities.\n\n    Example: Social network analysis, traffic network optimization.\n\n🧬 12. Multi-Modal Models\n\n    What: Combine text, image, audio, etc.\n\n    Example: Video captioning, accident report analysis with images + text.\n\n🧠 13. Meta Learning / Few-Shot Learning\n\n    What: Learn from few examples.\n\n    Example: Medical imaging (rare diseases), fraud detection.\n\n🛠️ 14. Custom Models with Functional or Subclassing APIs\n\n    What: Full control over model behavior.\n\n    Example: Building hybrid architectures (e.g., CNN+LSTM), interpretable AI.\n\n🧮 15. Probabilistic Models (with TensorFlow Probability)\n\n    What: Add uncertainty awareness.\n\n    Example: Bayesian neural networks for risk assessment, probabilistic forecasting.\n\n\n# TensorFlow Model Templates by Category\n\n\n## 1. Regression (Supervised Learning)\n```python\nmodel = tf.keras.Sequential([\n    tf.keras.layers.Dense(64, activation='relu', input_shape=(input_dim,)),\n    tf.keras.layers.Dense(1)\n])\nmodel.compile(optimizer='adam', loss='mse')\n```\n\n## 2. Classification\n```python\nmodel = tf.keras.Sequential([\n    tf.keras.layers.Dense(128, activation='relu', input_shape=(input_dim,)),\n    tf.keras.layers.Dense(num_classes, activation='softmax')\n])\nmodel.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])\n```\n\n## 3. Clustering (using KMeans from Scikit-learn)\n```python\nfrom sklearn.cluster import KMeans\nkmeans = KMeans(n_clusters=5)\nkmeans.fit(data)\n```\n\n## 4. Dimensionality Reduction (PCA with sklearn)\n```python\nfrom sklearn.decomposition import PCA\npca = PCA(n_components=2)\nX_reduced = pca.fit_transform(X)\n```\n\n## 5. RNN (for sequence data)\n```python\nmodel = tf.keras.Sequential([\n    tf.keras.layers.SimpleRNN(64, return_sequences=True, input_shape=(timesteps, features)),\n    tf.keras.layers.SimpleRNN(64),\n    tf.keras.layers.Dense(1)\n])\nmodel.compile(optimizer='adam', loss='mse')\n```\n\n## 6. LSTM\n```python\nmodel = tf.keras.Sequential([\n    tf.keras.layers.LSTM(64, return_sequences=True, input_shape=(timesteps, features)),\n    tf.keras.layers.LSTM(32),\n    tf.keras.layers.Dense(1)\n])\nmodel.compile(optimizer='adam', loss='mse')\n```\n\n## 7. Transformer (Simple version)\n```python\ninput_layer = tf.keras.layers.Input(shape=(seq_len, d_model))\nattention = tf.keras.layers.MultiHeadAttention(num_heads=2, key_dim=64)(input_layer, input_layer)\noutput = tf.keras.layers.Dense(1)(attention)\nmodel = tf.keras.Model(inputs=input_layer, outputs=output)\nmodel.compile(optimizer='adam', loss='mse')\n```\n\n## 8. BERT (via Hugging Face)\n```python\nfrom transformers import TFBertModel\nbert = TFBertModel.from_pretrained('bert-base-uncased')\ninput_ids = tf.keras.Input(shape=(max_len,), dtype=tf.int32)\nattention_mask = tf.keras.Input(shape=(max_len,), dtype=tf.int32)\noutputs = bert(input_ids, attention_mask=attention_mask)[0][:, 0, :]\noutputs = tf.keras.layers.Dense(1, activation='sigmoid')(outputs)\nmodel = tf.keras.Model(inputs=[input_ids, attention_mask], outputs=outputs)\n```\n\n## 9. CNN\n```python\nmodel = tf.keras.Sequential([\n    tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(height, width, channels)),\n    tf.keras.layers.MaxPooling2D((2, 2)),\n    tf.keras.layers.Flatten(),\n    tf.keras.layers.Dense(64, activation='relu'),\n    tf.keras.layers.Dense(num_classes, activation='softmax')\n])\nmodel.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])\n```\n\n## 10. Autoencoder\n```python\ninput_img = tf.keras.Input(shape=(input_dim,))\nencoded = tf.keras.layers.Dense(64, activation='relu')(input_img)\ndecoded = tf.keras.layers.Dense(input_dim, activation='sigmoid')(encoded)\nautoencoder = tf.keras.Model(input_img, decoded)\nautoencoder.compile(optimizer='adam', loss='mse')\n```\n\n## 11. GAN\n```python\n# Generator\ngenerator = tf.keras.Sequential([\n    tf.keras.layers.Dense(128, activation='relu', input_shape=(100,)),\n    tf.keras.layers.Dense(784, activation='sigmoid')\n])\n# Discriminator\ndiscriminator = tf.keras.Sequential([\n    tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)),\n    tf.keras.layers.Dense(1, activation='sigmoid')\n])\n# Compile discriminator\ndiscriminator.compile(optimizer='adam', loss='binary_crossentropy')\n\n# GAN\nz = tf.keras.Input(shape=(100,))\nimg = generator(z)\nvalidity = discriminator(img)\n\ngan = tf.keras.Model(z, validity)\ndiscriminator.trainable = False\ngan.compile(optimizer='adam', loss='binary_crossentropy')\n```\n\n## 12. VAE\n```python\nclass Sampling(tf.keras.layers.Layer):\n    def call(self, inputs):\n        z_mean, z_log_var = inputs\n        epsilon = tf.random.normal(shape=tf.shape(z_mean))\n        return z_mean + tf.exp(0.5 * z_log_var) * epsilon\n\ninputs = tf.keras.Input(shape=(input_dim,))\nx = tf.keras.layers.Dense(64, activation='relu')(inputs)\nz_mean = tf.keras.layers.Dense(32)(x)\nz_log_var = tf.keras.layers.Dense(32)(x)\nz = Sampling()([z_mean, z_log_var])\nencoder = tf.keras.Model(inputs, [z_mean, z_log_var, z])\n```\n\n## 13. Reinforcement Learning (with TF-Agents)\n```python\n# Install tf-agents\n# pip install tf-agents\nfrom tf_agents.environments import suite_gym\nfrom tf_agents.agents.dqn import dqn_agent\nfrom tf_agents.networks import q_network\nfrom tf_agents.utils import common\n\nenv = suite_gym.load('CartPole-v0')\nq_net = q_network.QNetwork(env.observation_spec(), env.action_spec())\noptimizer = tf.keras.optimizers.Adam(learning_rate=0.001)\ntrain_step = tf.Variable(0)\nagent = dqn_agent.DqnAgent(\n    env.time_step_spec(),\n    env.action_spec(),\n    q_network=q_net,\n    optimizer=optimizer,\n    td_errors_loss_fn=common.element_wise_squared_loss,\n    train_step_counter=train_step\n)\nagent.initialize()\n```\n\n## 14. Time Series Forecasting (Using LSTM)\n```python\nmodel = tf.keras.Sequential([\n    tf.keras.layers.LSTM(64, input_shape=(time_steps, features)),\n    tf.keras.layers.Dense(1)\n])\nmodel.compile(optimizer='adam', loss='mse')\n```\n\n## 15. Recommendation Systems (Matrix Factorization)\n```python\nuser_input = tf.keras.layers.Input(shape=(1,))\nitem_input = tf.keras.layers.Input(shape=(1,))\nuser_embed = tf.keras.layers.Embedding(num_users, 50)(user_input)\nitem_embed = tf.keras.layers.Embedding(num_items, 50)(item_input)\n\ndot_product = tf.keras.layers.Dot(axes=2)([user_embed, item_embed])\nmodel = tf.keras.Model([user_input, item_input], dot_product)\nmodel.compile(optimizer='adam', loss='mse')\n```\n\n## 16. Graph Neural Networks (with Spektral)\n```python\n# pip install spektral\nfrom spektral.layers import GCNConv\nX_in = tf.keras.Input(shape=(num_features,))\nA_in = tf.keras.Input((None,), sparse=True)\nx = GCNConv(32, activation='relu')([X_in, A_in])\nx = GCNConv(1)([x, A_in])\nmodel = tf.keras.Model(inputs=[X_in, A_in], outputs=x)\nmodel.compile(optimizer='adam', loss='mse')\n```\n\n## 17. Multi-Modal Model (Text + Image)\n```python\ntext_input = tf.keras.Input(shape=(text_len,))\nimg_input = tf.keras.Input(shape=(height, width, channels))\n\ntext_branch = tf.keras.layers.Embedding(10000, 64)(text_input)\ntext_branch = tf.keras.layers.GlobalAveragePooling1D()(text_branch)\n\nimg_branch = tf.keras.applications.ResNet50(include_top=False, pooling='avg')(img_input)\n\ncombined = tf.keras.layers.concatenate([text_branch, img_branch])\noutput = tf.keras.layers.Dense(1, activation='sigmoid')(combined)\nmodel = tf.keras.Model(inputs=[text_input, img_input], outputs=output)\n```\n\n## 18. Few-Shot Learning (Siamese Network)\n```python\ndef create_base_network(input_shape):\n    input = tf.keras.Input(shape=input_shape)\n    x = tf.keras.layers.Dense(128, activation='relu')(input)\n    x = tf.keras.layers.Dense(128, activation='relu')(x)\n    return tf.keras.Model(input, x)\n\ninput_a = tf.keras.Input(shape=(input_dim,))\ninput_b = tf.keras.Input(shape=(input_dim,))\n\nbase_network = create_base_network((input_dim,))\nprocessed_a = base_network(input_a)\nprocessed_b = base_network(input_b)\n\nL1_layer = tf.keras.layers.Lambda(lambda tensors: tf.abs(tensors[0] - tensors[1]))\nL1_distance = L1_layer([processed_a, processed_b])\nprediction = tf.keras.layers.Dense(1, activation='sigmoid')(L1_distance)\nmodel = tf.keras.Model(inputs=[input_a, input_b], outputs=prediction)\nmodel.compile(optimizer='adam', loss='binary_crossentropy')\n```\n\n## 19. Probabilistic Model (TensorFlow Probability)\n```python\nimport tensorflow_probability as tfp\ntfp = tfp.layers\nmodel = tf.keras.Sequential([\n    tf.keras.layers.Dense(64, activation='relu'),\n    tfp.DenseFlipout(1)\n])\nmodel.compile(optimizer='adam', loss='mse')\n```\n\n## 20. Custom Model with Functional API\n```python\ninputs = tf.keras.Input(shape=(input_dim,))\nx = tf.keras.layers.Dense(64, activation='relu')(inputs)\nx = tf.keras.layers.Dense(64, activation='relu')(x)\noutputs = tf.keras.layers.Dense(1)(x)\nmodel = tf.keras.Model(inputs, outputs)\nmodel.compile(optimizer='adam', loss='mse')\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fableinc%2Fmachine-learning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fableinc%2Fmachine-learning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fableinc%2Fmachine-learning/lists"}