// Make a modified version of the space that projects the bias vectors to 0.
// Then weight each row of that space by "applicability", the probability
// that each row should be de-biased.
modified_component = reject_subspace(frame, components_to_reject).mul(applicability, axis=0)
del components_to_reject
// Make another component representing the vectors that should not be
// de-biased: the original space times (1 - applicability).
After Change
// Make another component representing the vectors that should not be
// de-biased: the original space times (1 - applicability).
np.multiply(1 - applicability.reshape((len(frame), 1)), frame.values,
out=frame.values)
// The sum of these two components is the de-biased space, where de-biasing