{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":629094954,"defaultBranch":"main","name":"go-ai-tools","ownerLogin":"hamidreza01","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-04-17T15:53:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/97837767?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1681746829.0","currentOid":""},"activityList":{"items":[{"before":"14d7c8ab063404f7c112766acbc71ac244dd6818","after":"3e4b9b18e47cae2acf4a1a1f3de4d6a67a8a7a40","ref":"refs/heads/main","pushedAt":"2023-04-18T09:49:55.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Merge pull request #2 from KhodeAmirreza/main\n\nUpdate README.md","shortMessageHtmlLink":"Merge pull request #2 from KhodeAmirreza/main"}},{"before":"5f1532997317b8505c659a74cd659429cc900985","after":"14d7c8ab063404f7c112766acbc71ac244dd6818","ref":"refs/heads/main","pushedAt":"2023-04-17T22:55:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Create README.md","shortMessageHtmlLink":"Create README.md"}},{"before":"e54e7494cb078f97b68fc20b78b73583590de7be","after":"5f1532997317b8505c659a74cd659429cc900985","ref":"refs/heads/main","pushedAt":"2023-04-17T17:07:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Update dt.go","shortMessageHtmlLink":"Update dt.go"}},{"before":"9364011188576a2f95557f63c8c83e3a03dc23fb","after":"e54e7494cb078f97b68fc20b78b73583590de7be","ref":"refs/heads/main","pushedAt":"2023-04-17T17:05:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Update knn.go","shortMessageHtmlLink":"Update knn.go"}},{"before":"7ba3cd93d9e2a5b1ddce47aaee80796430c0aba9","after":"9364011188576a2f95557f63c8c83e3a03dc23fb","ref":"refs/heads/main","pushedAt":"2023-04-17T17:04:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Update nn.go","shortMessageHtmlLink":"Update nn.go"}},{"before":"b6ba20f5d16c90b41e8255bee06403c7fa9d2a4e","after":"7ba3cd93d9e2a5b1ddce47aaee80796430c0aba9","ref":"refs/heads/main","pushedAt":"2023-04-17T17:04:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Update pca.go","shortMessageHtmlLink":"Update pca.go"}},{"before":"4885ac3caeccc2cdbb2721083479c389709f111a","after":"b6ba20f5d16c90b41e8255bee06403c7fa9d2a4e","ref":"refs/heads/main","pushedAt":"2023-04-17T17:02:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Update svm.go","shortMessageHtmlLink":"Update svm.go"}},{"before":"a731a7896010b498a1165191027d78ed471780cd","after":"4885ac3caeccc2cdbb2721083479c389709f111a","ref":"refs/heads/main","pushedAt":"2023-04-17T17:01:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Implementation of RNN algorithm\n\nThe RNN struct defined here has fields for the input size, hidden size, output size, and the weights and biases for the input-to-hidden, hidden-to-hidden, and hidden-to-output layers. The Train method takes in a sequence of inputs and their corresponding outputs and trains the RNN using backpropagation through time (BPTT).\r\n\r\nThe Forward method takes in a sequence of inputs and returns a sequence of outputs, where each output is generated based on the previous hidden state and the current input. The Softmax function is used to normalize the output to a probability distribution.\r\n\r\nThe CrossEntropyDerivative function calculates the derivative of the cross-entropy loss function with respect to the output probability and the true label.","shortMessageHtmlLink":"Implementation of RNN algorithm"}},{"before":"2a5e7342b3a7ac9613b773d9bf7bd5418ef4795f","after":"a731a7896010b498a1165191027d78ed471780cd","ref":"refs/heads/main","pushedAt":"2023-04-17T16:46:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Implementation of PCA(Principal Component Analysis) algorithm\n\nThis commit adds an implementation of the PCA (Principal Component Analysis). PCA is a widely used technique for dimensionality reduction in machine learning and data analysis. The implementation is based on the QR algorithm for computing the eigendecomposition of a symmetric matrix. The PCA class takes a matrix of input data and returns a set of eigenvalues and eigenvectors that can be used to transform the data into a lower-dimensional space.","shortMessageHtmlLink":"Implementation of PCA(Principal Component Analysis) algorithm"}},{"before":"3a89a0c72ac6c4785a09e91fd86f64a46b567d2b","after":"2a5e7342b3a7ac9613b773d9bf7bd5418ef4795f","ref":"refs/heads/main","pushedAt":"2023-04-17T16:37:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Implementation of SVM algorithm\n\nThe implementation defines an SVM struct that has fields for the model weights (weights), bias (bias), and regularization parameter (c). \r\n\r\nThe NewSVM function creates a new SVM struct with the specified regularization parameter.\r\n\r\nThe fit method takes a matrix of input features (X), a vector of corresponding labels (y), the number of epochs to train for (epochs), and the learning rate (alpha). The method trains the SVM by repeatedly updating the weights and bias based on the hinge loss function until convergence.\r\n\r\nThe predict method takes a single input feature vector (X) and returns the predicted label for the input based on the trained SVM model.","shortMessageHtmlLink":"Implementation of SVM algorithm"}},{"before":"dca0ac8562765e6d30ae2163385247ef1d3ae1d1","after":"3a89a0c72ac6c4785a09e91fd86f64a46b567d2b","ref":"refs/heads/main","pushedAt":"2023-04-17T16:31:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Implementation of decision tree algorithm\n\nThe implementation defines a `DecisionTree` struct that has a `root` field, which represents the root of the decision tree. The `node` struct represents a single node in the tree and has fields for the feature that the node splits on (`splitFeature`), the value of the feature that the node splits on (`splitValue`), and the left and right child nodes (`left` and `right`).\r\n\r\nThe `DataPoint` struct represents a single data point in the input data, and has fields for the features and the label.\r\n\r\nThe `NewDecisionTree` function takes a slice of `DataPoint` structs and returns a new `DecisionTree` struct that has been trained on the input data.\r\n\r\nThe `classify` method takes a slice of feature values and returns the predicted label for the input data based on the trained decision tree.\r\n\r\nThe `buildTree` function is a helper function that recursively builds the decision tree by splitting the input data based on the feature that maximizes the information gain. The `traverseTree` function is a helper function that recursively traverses the decision tree to classify input data.\r\n\r\nThe `computeInfoGain` function calculates the information gain of splitting the input data on a given feature, and the `computeEntropy` function calculates the entropy of a set of data points.\r\n\r\nThe `computeSplitValue` function calculates the average value of a feature across a set of data points.","shortMessageHtmlLink":"Implementation of decision tree algorithm"}},{"before":"081b29fc257d6a8b8f1e8d9e80dea254c37fc4df","after":"dca0ac8562765e6d30ae2163385247ef1d3ae1d1","ref":"refs/heads/main","pushedAt":"2023-04-17T16:31:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Delete dt.go","shortMessageHtmlLink":"Delete dt.go"}},{"before":"e373c60fc6cbcfb7d53e3520d243bcfdb401f2af","after":"081b29fc257d6a8b8f1e8d9e80dea254c37fc4df","ref":"refs/heads/main","pushedAt":"2023-04-17T16:21:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Implementation of Decision Trees algorithm\n\nThe implementation defines a `DecisionTree` struct that has a `root` field, which represents the root of the decision tree. The `node` struct represents a single node in the tree and has fields for the feature that the node splits on (`splitFeature`), the value of the feature that the node splits on (`splitValue`), and the left and right child nodes (`left` and `right`).\r\n\r\nThe `DataPoint` struct represents a single data point in the input data, and has fields for the features and the label.\r\n\r\nThe `NewDecisionTree` function takes a slice of `DataPoint` structs and returns a new `DecisionTree` struct that has been trained on the input data.\r\n\r\nThe `classify` method takes a slice of feature values and returns the predicted label for the input data based on the trained decision tree.\r\n\r\nThe `buildTree` function is a helper function that recursively builds the decision tree by splitting the input data based on the feature that maximizes the information gain. The `traverseTree` function is a helper function that recursively traverses the decision tree to classify input data.\r\n\r\nThe `computeInfoGain` function calculates the information gain of splitting the input data on a given feature, and the `computeEntropy` function calculates the entropy of a set of data points.\r\n\r\nThe `computeSplitValue` function calculates the average value of a feature across a set of data points.","shortMessageHtmlLink":"Implementation of Decision Trees algorithm"}},{"before":"a00ac48940c601c30d82937793e0ad0508933285","after":"e373c60fc6cbcfb7d53e3520d243bcfdb401f2af","ref":"refs/heads/main","pushedAt":"2023-04-17T16:09:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Implement K-Nearest Neighbors algorithm\n\nThis commit adds a new function, KNN, which implements the K-Nearest Neighbors algorithm. The KNN algorithm is a simple machine learning algorithm that can be used for classification problems. Given a set of data points with known labels, and a new data point without a label, the algorithm finds the K closest data points to the new point and assigns the most common label among those data points to the new point.\r\n\r\nThe KNN function takes two inputs: K, the number of nearest neighbors to consider, and dataPoints, a slice of DataPoint structs, where each DataPoint struct contains a set of features and a label. The function returns a pointer to a KNN struct, which contains the input data and provides a classify function for making predictions on new data.\r\n\r\nThe classify function takes a point with a slice of features as input, computes the Euclidean distance between the new point and each of the input data points, sorts the input data points by distance, selects the K nearest data points, and assigns the most common label among those data points to the new point.","shortMessageHtmlLink":"Implement K-Nearest Neighbors algorithm"}},{"before":"a6e690c3bf69f5c83ea1240a7157a729d39d41b3","after":"a00ac48940c601c30d82937793e0ad0508933285","ref":"refs/heads/main","pushedAt":"2023-04-17T16:00:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Add neural network function\n\nThis commit adds a new function for neural networks. The function is support multiple hidden layers, adjustable number of neurons per layer, and sigmoid activation function.\r\n\r\nThe function includes a NeuralNetwork struct with fields for the number of inputs, outputs, hidden layers, and neurons per layer, as well as a weights matrix to store the learned parameters of the network. The function also includes helper functions for initializing the weights matrix and computing the sigmoid function.\r\n\r\nThe forward function implements feedforward propagation in the neural network, starting with the input layer and passing through each hidden layer before producing the final output layer. The function returns the output layer as a slice of floats.","shortMessageHtmlLink":"Add neural network function"}},{"before":"e86f1e02edce71e0149b3e2168eedbc507763d94","after":"a6e690c3bf69f5c83ea1240a7157a729d39d41b3","ref":"refs/heads/main","pushedAt":"2023-04-17T15:55:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Create go.mod","shortMessageHtmlLink":"Create go.mod"}},{"before":null,"after":"e86f1e02edce71e0149b3e2168eedbc507763d94","ref":"refs/heads/main","pushedAt":"2023-04-17T15:53:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"hamidreza01","name":"hamidreza ghahremani ","path":"/hamidreza01","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/97837767?s=80&v=4"},"commit":{"message":"Initial commit","shortMessageHtmlLink":"Initial commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADGwf16AA","startCursor":null,"endCursor":null}},"title":"Activity ยท hamidreza01/go-ai-tools"}