Skip to main content

FeatureHasher

Struct FeatureHasher 

Source
pub struct FeatureHasher { /* private fields */ }
Expand description

Fixed-dimension feature hasher.

Uses two independent hash functions:

  • The first determines the target bucket (hash1 % dimension).
  • The second determines the sign (hash2 & 1) when signed = true.

The hash is deterministic given the same seed, ensuring reproducible output across runs.

Implementations§

Source§

impl FeatureHasher

Source

pub fn new(dimension: usize, seed: u64) -> Result<Self, RillError>

Create a new hasher with the given dimension and seed.

Uses signed hashing by default.

Source

pub fn with_config(config: FeatureHasherConfig) -> Result<Self, RillError>

Create a new hasher with a custom configuration.

Source

pub const fn dimension(&self) -> usize

The output dimension.

Source

pub const fn seed(&self) -> u64

The random seed.

Source

pub const fn signed(&self) -> bool

Whether signed hashing is enabled.

Source

pub fn hash_string(&self, name: &str) -> FeatureId

Hash a string feature name to a FeatureId.

Source

pub fn hash_strings( &self, pairs: &[(&str, f64)], ) -> Result<SparseFeatures, RillError>

Create SparseFeatures from string name/value pairs.

Each string is hashed to a FeatureId, then the pairs are sorted and duplicates are merged by summing values.

Source

pub fn transform( &self, features: &SparseFeatures, ) -> Result<Vec<f64>, RillError>

Transform SparseFeatures into a dense Vec<f64>.

Each feature’s value is added to its target bucket (multiplied by the sign if signed hashing is enabled). Collisions cause values to accumulate.

Trait Implementations§

Source§

impl Clone for FeatureHasher

Source§

fn clone(&self) -> FeatureHasher

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FeatureHasher

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V