Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix kmeans.v #199

Merged
merged 2 commits into from
Feb 21, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ml/kmeans.v
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ pub fn new_kmeans(mut data Data[f64], nb_classes int, name string) &Kmeans {

// bins
ndiv := [10, 10] // TODO: make this a parameter
bins := gm.new_bins(stat.min_x, stat.max_x, ndiv) // TODO: make sure minx and maxx are 2D or 3D; i.e. nb_features ≤ 2
mut bins := gm.new_bins(stat.min_x, stat.max_x, ndiv) // TODO: make sure minx and maxx are 2D or 3D; i.e. nb_features ≤ 2
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change to make the bins variable mutable by declaring it with mut is crucial for the dynamic nature of the k-means algorithm. This allows the bins to be updated as the algorithm iterates, which is necessary for accurately clustering data points. However, it's important to ensure that the mutability of bins is handled carefully to avoid unintended side effects or data races, especially in a concurrent context. If the k-means algorithm is intended to be used in a concurrent environment, consider adding safeguards or documentation to prevent data race conditions.

mut o := Kmeans{
name: name
data: data
Expand Down