giuse/machine_learning_workbench

View on GitHub
examples/neuroevolution.rb

Summary

Maintainability
A
0 mins
Test Coverage

Space missing after comma.
Open

NET = FFNN.new [2,2,1], act_fn: :logistic
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Checks for comma (,) not followed by some kind of space.

Example:

# bad
[1,2]
{ foo:bar,}

# good
[1, 2]
{ foo:bar, }

Line is too long. [84/80]
Open

# nes = WB::Optimizer::NaturalEvolutionStrategies::BDNES.new NET.nweights_per_layer,
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [89/80]
Open

# In a real task, best using an oversized network, more iterations, and try several seeds
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [89/80]
Open

puts "The found network achieves a score of #{result} out of #{XOR.size} in the XOR task"
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Space missing after comma.
Open

XOR = {[0,0] => 0, [1,0] => 1, [0,1] => 1, [1,1] => 0}
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Checks for comma (,) not followed by some kind of space.

Example:

# bad
[1,2]
{ foo:bar,}

# good
[1, 2]
{ foo:bar, }

Useless assignment to variable - score.
Open

  score = Float(pred_obs.count { |pr, ob| pr == ob })
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

This cop checks for every useless assignment to local variable in every scope. The basic idea for this cop was from the warning of ruby -cw:

assigned but unused variable - foo

Currently this cop has advanced logic that detects unreferenced reassignments and properly handles varied cases such as branch, loop, rescue, ensure, etc.

Example:

# bad

def some_method
  some_var = 1
  do_something
end

Example:

# good

def some_method
  some_var = 1
  do_something(some_var)
end

Space missing after comma.
Open

XOR = {[0,0] => 0, [1,0] => 1, [0,1] => 1, [1,1] => 0}
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Checks for comma (,) not followed by some kind of space.

Example:

# bad
[1,2]
{ foo:bar,}

# good
[1, 2]
{ foo:bar, }

Space missing after comma.
Open

XOR = {[0,0] => 0, [1,0] => 1, [0,1] => 1, [1,1] => 0}
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Checks for comma (,) not followed by some kind of space.

Example:

# bad
[1,2]
{ foo:bar,}

# good
[1, 2]
{ foo:bar, }

Line is too long. [81/80]
Open

# That's it! 18 lines and you got a working neuroevolution algorithm, congrats :)
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Space inside { missing.
Open

XOR = {[0,0] => 0, [1,0] => 1, [0,1] => 1, [1,1] => 0}
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

Example: EnforcedStyle: space

# The `space` style enforces that hash literals have
# surrounding space.

# bad
h = {a: 1, b: 2}

# good
h = { a: 1, b: 2 }

Example: EnforcedStyle: no_space

# The `no_space` style enforces that hash literals have
# no surrounding space.

# bad
h = { a: 1, b: 2 }

# good
h = {a: 1, b: 2}

Example: EnforcedStyle: compact

# The `compact` style normally requires a space inside
# hash braces, with the exception that successive left
# braces or right braces are collapsed together in nested hashes.

# bad
h = { a: { b: 2 } }

# good
h = { a: { b: 2 }}

Space missing after comma.
Open

XOR = {[0,0] => 0, [1,0] => 1, [0,1] => 1, [1,1] => 0}
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Checks for comma (,) not followed by some kind of space.

Example:

# bad
[1,2]
{ foo:bar,}

# good
[1, 2]
{ foo:bar, }

Line is too long. [88/80]
Open

# Alternatively, add `gem 'machine_learning_workbench'` to your Gemfile if using Bundle,
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [82/80]
Open

# We will search for the network's weights with a black-box optimization algorithm
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [92/80]
Open

# Note BDNES requires `NET.nweights_per_layer` rather than `NET.nweights` in initialization:
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [86/80]
Open

# Note: the process is exactly the same, from instantiation to training, for recurrent
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [85/80]
Open

# The scoring process will work as follows: use the numbers as weights for the neural
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Freeze mutable objects assigned to constants.
Open

XOR = {[0,0] => 0, [1,0] => 1, [0,1] => 1, [1,1] => 0}
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

This cop checks whether some constant value isn't a mutable literal (e.g. array or hash).

Example:

# bad
CONST = [1, 2, 3]

# good
CONST = [1, 2, 3].freeze

Extra blank line detected.
Open


# Nothing left but to run the optimization algorithm
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

This cops checks for two or more consecutive blank lines.

Example:

# bad - It has two empty lines.
some_method
# one empty line
# two empty lines
some_method

# good
some_method
# one empty line
some_method

Line is too long. [87/80]
Open

# NOTE: In practical applications it is best to delegate parallelization to the fitness
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

puts "Done!"
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Checks if uses of quotes match the configured preference.

Example: EnforcedStyle: single_quotes (default)

# bad
"No special symbols"
"No string interpolation"
"Just text"

# good
'No special symbols'
'No string interpolation'
'Just text'
"Wait! What's #{this}!"

Example: EnforcedStyle: double_quotes

# bad
'Just some text'
'No special chars or interpolation'

# good
"Just some text"
"No special chars or interpolation"
"Every string in #{project} uses double_quotes"

Line is too long. [84/80]
Open

# network, test the network on classifying the 4 cases of XOR, use that count as the
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [84/80]
Open

# function instead of computing the fitness of one individual at a time. This can be
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [85/80]
Open

# achieved by passing  an objective function defined on a _list_ of weight-lists, and
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Use def with parentheses when there are parameters.
Open

def fitness weights
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

This cops checks for parentheses around the arguments in method definitions. Both instance and class/singleton methods are checked.

Example: EnforcedStyle: require_parentheses (default)

# The `require_parentheses` style requires method definitions
# to always use parentheses

# bad
def bar num1, num2
  num1 + num2
end

def foo descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name
  do_something
end

# good
def bar(num1, num2)
  num1 + num2
end

def foo(descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name)
  do_something
end

Example: EnforcedStyle: requirenoparentheses

# The `require_no_parentheses` style requires method definitions
# to never use parentheses

# bad
def bar(num1, num2)
  num1 + num2
end

def foo(descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name)
  do_something
end

# good
def bar num1, num2
  num1 + num2
end

def foo descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name
  do_something
end

Example: EnforcedStyle: requirenoparenthesesexceptmultiline

# The `require_no_parentheses_except_multiline` style prefers no
# parantheses when method definition arguments fit on single line,
# but prefers parantheses when arguments span multiple lines.

# bad
def bar(num1, num2)
  num1 + num2
end

def foo descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name
  do_something
end

# good
def bar num1, num2
  num1 + num2
end

def foo(descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name)
  do_something
end

Space missing after comma.
Open

NET = FFNN.new [2,2,1], act_fn: :logistic
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Checks for comma (,) not followed by some kind of space.

Example:

# bad
[1,2]
{ foo:bar,}

# good
[1, 2]
{ foo:bar, }

Useless assignment to variable - best_fit. Use _ or _best_fit as a variable name to indicate that it won't be used.
Open

best_fit, best_weights = nes.best
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

This cop checks for every useless assignment to local variable in every scope. The basic idea for this cop was from the warning of ruby -cw:

assigned but unused variable - foo

Currently this cop has advanced logic that detects unreferenced reassignments and properly handles varied cases such as branch, loop, rescue, ensure, etc.

Example:

# bad

def some_method
  some_var = 1
  do_something
end

Example:

# good

def some_method
  some_var = 1
  do_something(some_var)
end

Space inside } missing.
Open

XOR = {[0,0] => 0, [1,0] => 1, [0,1] => 1, [1,1] => 0}
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

Example: EnforcedStyle: space

# The `space` style enforces that hash literals have
# surrounding space.

# bad
h = {a: 1, b: 2}

# good
h = { a: 1, b: 2 }

Example: EnforcedStyle: no_space

# The `no_space` style enforces that hash literals have
# no surrounding space.

# bad
h = { a: 1, b: 2 }

# good
h = {a: 1, b: 2}

Example: EnforcedStyle: compact

# The `compact` style normally requires a space inside
# hash braces, with the exception that successive left
# braces or right braces are collapsed together in nested hashes.

# bad
h = { a: { b: 2 } }

# good
h = { a: { b: 2 }}

Line is too long. [84/80]
Open

# Make sure the gem is installed first with `gem install machine_learning_workbench`
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [83/80]
Open

# NOTE: If your network grows above few thousands of weights, XNES may be too slow.
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

Line is too long. [91/80]
Open

# We are searching for the network's weights, this gives us the search space dimensionality
Severity: Minor
Found in examples/neuroevolution.rb by rubocop

There are no issues that match your filters.

Category
Status