āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ (āĻā§āĻĄāĻŧāĻž) āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻāĻžāĻŖāĻŋāĻ¤āĻŋāĻ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°ā§āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻŦāĻŋāĻŦā§āĻāĻŋāĻ¤ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻŦāĻ°ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŋ:
- āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨
- āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ
- āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ
āĻāĻāĻāĻŋ āĻ¸āĻ°āĻ˛ āĻ°ā§āĻāĻžāĻ° āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§, āĻ¯āĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°ā§āĻ āĻ˛ā§āĻāĻž āĻšāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦāĻŋāĻāĻā§āĻ¤āĨ¤ āĻ¨āĻŽā§āĻ° āĻāĻŦāĻ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻāĻŖāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻŽā§āĻ°. āĻāĻāĻž āĻĻāĻā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻŽā§āĻ° āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻāĻ°āĻ āĻāĻŽāĻžāĻŦā§.
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻĄ āĻ˛ā§āĻāĻž āĻāĻā§ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻā§āĻ¸āĻāĻ¨āĻāĻāĻāĻŽāĻāĻā§āĻ¸ āĻ¸āĻā§āĻā§ Jupyter āĻ¨ā§āĻāĻŦā§āĻ. āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻāĻŦāĻ āĻ¨āĻŽā§āĻ¨āĻž āĻĄā§āĻāĻž āĻĢāĻžāĻāĻ˛ āĻāĻāĻžāĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ
āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻ¨āĻ¤ā§āĻ¨āĻĻā§āĻ° āĻāĻŦāĻ āĻ¯āĻžāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ§ā§āĻ°ā§ āĻ§ā§āĻ°ā§ āĻā§āĻ¤ā§āĻ°āĻŋāĻŽ āĻŦā§āĻĻā§āĻ§āĻŋāĻŽāĻ¤ā§āĻ¤āĻž - āĻŽā§āĻļāĻŋāĻ¨ āĻ˛āĻžāĻ°ā§āĻ¨āĻŋāĻ-āĻāĻ° āĻāĻāĻāĻŋ āĻā§āĻŦ āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻŦāĻŋāĻāĻžāĻā§āĻ° āĻ āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ā§ āĻāĻ¯āĻŧāĻ¤ā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻ¯āĻŧā§āĻ° āĻĻāĻŋāĻā§āĻ āĻŦā§āĻļāĻŋ āĻĻā§āĻˇā§āĻāĻŋ āĻ¨āĻŋāĻŦāĻĻā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻļāĻ°ā§āĻ¤āĻžāĻŦāĻ˛ā§
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻžāĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻāĻā§ āĻ¯āĻž āĻāĻ¸āĻā§āĻ¤āĻŋāĻā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°ā§ Y āĻĨā§āĻā§ X (1 āĻ¨āĻ āĻā§āĻŦāĻŋāĻ˛):
āĻ¸āĻžāĻ°āĻŖāĻŋ āĻ¨āĻ 1 "āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻļāĻ°ā§āĻ¤āĻžāĻŦāĻ˛ā§"
āĻāĻŽāĻ°āĻž āĻ¯ā§ āĻŽāĻžāĻ¨ āĻ
āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻŦā§ āĻŦāĻāĻ°ā§āĻ° āĻŽāĻžāĻ¸, āĻāĻŦāĻ - āĻāĻ āĻŽāĻžāĻ¸ā§ āĻāĻ¯āĻŧāĨ¤ āĻ
āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻ°āĻžāĻāĻ¸ā§āĻŦ āĻŦāĻāĻ°ā§āĻ° āĻŽāĻžāĻ¸ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŦāĻ - āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻāĻŋāĻšā§āĻ¨ āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻ°āĻžāĻāĻ¸ā§āĻŦ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻ¤āĻžāĻ, āĻŦāĻāĻ°ā§āĻ° āĻŽāĻžāĻ¸ā§ āĻ°āĻžāĻāĻ¸ā§āĻŦā§āĻ° āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§āĻā§āĻˇ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻŦāĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ - āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻŦ āĻāĻŽāĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻ°āĻ˛ā§āĻāĻ°āĻŖ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§, āĻ¯ā§āĻŽāĻ¨ āĻ¤āĻžāĻ°āĻž āĻāĻā§āĻā§āĻ˛ā§āĻ° āĻāĻĒāĻ° āĻŦāĻ˛ā§, āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¸āĻšāĻā§ āĻ¨āĻ¯āĻŧ, āĻ¨āĻ¤ā§āĻ¨āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¤ā§āĻ¤ā§āĻā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĨ¤ āĻāĻŦāĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻ¸āĻ°āĻ˛āĻ¤āĻž āĻ¤āĻžāĻĻā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§ āĻ¯āĻžāĻ°āĻž āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻļā§āĻ°āĻŽ āĻāĻ°āĻ āĻāĻžāĻĄāĻŧāĻžāĻ "āĻāĻžāĻāĻā§āĻ°" āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧāĨ¤
āĻ§āĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻ°āĻ˛ (āĻā§āĻĄāĻŧāĻž) āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻāĻžāĻŖāĻŋāĻ¤āĻŋāĻ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻļ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¯ā§ āĻŽāĻžāĻ¸ā§ āĻ āĻ°ā§āĻĨ āĻā§āĻšā§āĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, - āĻŽāĻžāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ°āĻžāĻāĻ¸ā§āĻŦ, и āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻšāĻāĨ¤
āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻ¸āĻšāĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻĸāĻžāĻ˛ āĻŦāĻž āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ; āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¯āĻāĻ¨ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ .
āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ, āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻ āĻšāĻ˛ āĻ¸āĻŽā§āĻāĻ°āĻŖā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸āĻšāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻž и , āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻ¤ā§āĻ¯ āĻāĻ¤ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻŽāĻžāĻ¸āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻ°āĻžāĻāĻ¸ā§āĻŦ āĻŽāĻžāĻ¨ā§āĻ° āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋ, āĻ¯ā§āĻŽāĻ¨ āĻ¨āĻŽā§āĻ¨āĻžāĻ¯āĻŧ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻŽāĻžāĻ¨ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻšāĻŦā§āĨ¤
āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻŦāĻ°ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻŦāĻ°ā§āĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°ā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻļāĻ˛ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻĒāĻžāĻ°āĻ¸ā§āĻĒāĻ°āĻŋāĻ āĻĒāĻ°āĻŋāĻļā§āĻ§ āĻāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻ˛āĻā§āĻˇāĻŖ āĻĨāĻžāĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋ āĻšāĻ¯āĻŧ +5 (āĻ¸āĻš āĻĒāĻžāĻāĻāĻāĻŋ), āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻāĻŋāĻ¤ā§ -5 (āĻŽāĻžāĻāĻ¨āĻžāĻ¸ āĻĒāĻžāĻāĻ), āĻ¤āĻžāĻšāĻ˛ā§ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¯ā§āĻāĻĢāĻ˛ āĻĒāĻžāĻ°āĻ¸ā§āĻĒāĻ°āĻŋāĻāĻāĻžāĻŦā§ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻšāĻŦā§ āĻāĻŦāĻ āĻšāĻŦā§ 0 (āĻļā§āĻ¨ā§āĻ¯)āĨ¤ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻŦāĻ°ā§āĻ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻŽāĻĄā§āĻ˛āĻžāĻ¸ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋ āĻ§āĻ¨āĻžāĻ¤ā§āĻŽāĻ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻŽāĻž āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻ¨āĻž, āĻ¤āĻŦā§ āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŦ āĻ¯ā§ āĻāĻŖāĻ¨āĻžāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻā§ āĻŦāĻ°ā§āĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻĨāĻžāĻāĻ¤āĨ¤
āĻ¸ā§āĻ¤ā§āĻ°āĻāĻŋ āĻāĻāĻžāĻŦā§āĻ āĻĻā§āĻāĻžāĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻŦāĻ°ā§āĻāĻā§āĻˇā§āĻ¤ā§āĻ° āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻā§āĻˇā§āĻĻā§āĻ°āĻ¤āĻŽ āĻ¯ā§āĻāĻĢāĻ˛ (āĻ¤ā§āĻ°ā§āĻāĻŋ) āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻŦ:
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻ¤ā§āĻ¯ āĻāĻ¤ā§āĻ¤āĻ°ā§āĻ° āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ (āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻ°āĻžāĻāĻ¸ā§āĻŦ),
āĻ¸āĻ āĻŋāĻ āĻāĻ¤ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋ (āĻ¨āĻŽā§āĻ¨āĻžāĻ¯āĻŧ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ°āĻžāĻāĻ¸ā§āĻŦ),
āĻ¨āĻŽā§āĻ¨āĻžāĻ° āĻ¸ā§āĻāĻ (āĻ¯ā§ āĻŽāĻžāĻ¸ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ¯āĻŧ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ)
āĻāĻ¸ā§āĻ¨ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°āĻŋ, āĻāĻāĻļāĻŋāĻ āĻĄāĻŋāĻĢāĻžāĻ°ā§āĻ¨āĻļāĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻŽā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻšāĻāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻ¸ā§āĻ¨ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻā§ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻĄāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ āĻāĻŦāĻ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻā§āĻ¯āĻžāĻŽāĻŋāĻ¤āĻŋāĻ āĻ āĻ°ā§āĻĨāĻāĻŋ āĻ¸ā§āĻŽāĻ°āĻŖ āĻāĻ°āĻŋāĨ¤
āĻĒā§āĻĨāĻā§āĻāĻ°āĻŖ
āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĨ¤
āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ āĻāĻŋ āĻāĻ¨ā§āĻ¯? āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻšāĻžāĻ°āĻā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¤āĻžāĻ° āĻĻāĻŋāĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻāĻāĻŋ āĻ§āĻ¨āĻžāĻ¤ā§āĻŽāĻ āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻŦāĻžāĻĄāĻŧāĻā§; āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻĒāĻžāĻā§āĻā§āĨ¤ āĻāĻŦāĻ āĻŽāĻĄā§āĻ˛ā§ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻ¯āĻ¤ āĻŦā§āĻļāĻŋ āĻšāĻŦā§, āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻšāĻžāĻ° āĻ¤āĻ¤ āĻŦā§āĻļāĻŋ āĻšāĻŦā§, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻ°āĻžāĻĢā§āĻ° āĻĸāĻžāĻ˛ āĻ¤āĻ¤ āĻŦā§āĻļāĻŋ āĻšāĻŦā§āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻļāĻ°ā§āĻ¤ā§, M(0,0) āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻžāĻ¨ +25 āĻŽāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§, āĻ¯āĻāĻ¨ āĻŽāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤ āĻāĻāĻ¨āĻŋāĻ, āĻŽāĻžāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĄāĻžāĻ¨āĻĻāĻŋāĻā§ 25āĻāĻŋ āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤ āĻāĻāĻ¨āĻŋāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻā§āĻ°āĻžāĻĢā§, āĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻŦā§āĻĻā§āĻ§āĻŋāĻ° āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻāĻžāĻĄāĻŧāĻž āĻā§āĻŖā§āĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻĨā§āĻā§āĨ¤
āĻāĻ°ā§āĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ. āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻšāĻ˛ -0,1 āĻ¨āĻžāĻĄāĻŧāĻžāĻāĻžāĻĄāĻŧāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤ āĻāĻāĻ¨āĻŋāĻ āĻĒā§āĻ°āĻ¤āĻŋ, āĻŽāĻžāĻ¨ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° 0,1 āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤ āĻāĻāĻ¨āĻŋāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻšā§āĻ°āĻžāĻ¸ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻā§āĻ°āĻžāĻĢā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻŦā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻā§āĻˇāĻŖā§āĻ¯āĻŧ āĻ¨āĻŋāĻŽā§āĻ¨āĻāĻžāĻŽā§ āĻĸāĻžāĻ˛ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻŦāĻ¤ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻĻā§āĻļā§āĻ¯ āĻāĻāĻāĻ˛ā§, āĻāĻāĻŋ āĻ¯ā§āĻ¨ āĻāĻŽāĻ°āĻž āĻā§āĻŦ āĻ§ā§āĻ°ā§ āĻ§ā§āĻ°ā§ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻŦāĻ¤ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻŽā§āĻĻā§ āĻĸāĻžāĻ˛ā§ āĻ¨āĻžāĻŽāĻāĻŋ, āĻāĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻŦ āĻāĻžāĻĄāĻŧāĻž āĻļāĻŋāĻāĻ° āĻ¨āĻŋāĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ :)
āĻāĻāĻāĻžāĻŦā§, āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻŽāĻ¤āĻā§āĻĻ āĻĻā§āĻŦāĻžāĻ°āĻž и , āĻāĻŽāĻ°āĻž 1 āĻŽ āĻā§āĻ°āĻŽā§āĻ° āĻāĻāĻļāĻŋāĻ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŋāĨ¤ āĻ¸āĻŽā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻŋ āĻ¸āĻŽā§āĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒāĻžāĻŦ, āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ и , āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻŦ, āĻā§āĻŦ āĻ āĻ˛ā§āĻĒ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŽā§āĻā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻĒā§āĻāĻā§ āĻ¯āĻžāĻŦā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻļāĻŋāĻ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻļā§āĻ¨ā§āĻ¯ā§āĻ° āĻ¸āĻŽāĻžāĻ¨ āĻšāĻŦā§āĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ā§āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻ¸āĻšāĻā§āĻ° āĻ¸āĻžāĻĒā§āĻā§āĻˇā§ ā§§āĻŽ āĻā§āĻ°āĻŽāĻāĻŋāĻ° āĻāĻāĻļāĻŋāĻ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻĢāĻ°ā§āĻŽ āĻ¨ā§āĻŦā§:
1āĻŽ āĻā§āĻ°āĻŽ āĻāĻāĻļāĻŋāĻ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻ¸āĻžāĻĒā§āĻā§āĻˇā§ āĻĢāĻ°ā§āĻŽ āĻ¨ā§āĻŦā§:
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¸āĻšāĻ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§:
āĻļā§āĻ°ā§{āĻ¸āĻŽā§āĻāĻ°āĻŖ*}
āĻļā§āĻ°ā§
na + bsumlimits_{i=1}^nx_i - sumlimits_{i=1}^ny_i = 0
sumlimits_{i=1}^nx_i(a +bsumlimits_{i=1}^nx_i - sumlimits_{i=1}^ny_i) = 0
āĻļā§āĻˇ{āĻā§āĻ¸}
āĻļā§āĻˇ{āĻ¸āĻŽā§āĻāĻ°āĻŖ*}
āĻ¸āĻŽā§āĻāĻ°āĻŖāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄ āĻāĻ°āĻŋ, āĻ˛ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻ āĻŋāĻāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻŋāĨ¤
āĻĄā§āĻāĻž āĻ˛ā§āĻĄ āĻāĻŦāĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻā§āĻĄāĻāĻŋ āĻĻā§āĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨āĻ¤āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ: āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŽā§āĻ° āĻāĻŦāĻ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°ā§, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĄā§āĻāĻž āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ (āĻā§āĻĄ āĻĻā§āĻā§āĻ¨)āĨ¤
āĻĄā§āĻāĻž āĻ˛ā§āĻĄāĻŋāĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻ āĻā§āĻĄ
# иĐŧĐŋĐžŅŅиŅŅĐĩĐŧ вŅĐĩ ĐŊŅĐļĐŊŅĐĩ ĐŊĐ°Đŧ йийĐģиОŅĐĩĐēи
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import math
import pylab as pl
import random
# ĐŗŅĐ°ŅиĐēи ĐžŅОйŅаСиĐŧ в Jupyter
%matplotlib inline
# ŅĐēĐ°ĐļĐĩĐŧ ŅаСĐŧĐĩŅ ĐŗŅĐ°ŅиĐēОв
from pylab import rcParams
rcParams['figure.figsize'] = 12, 6
# ĐžŅĐēĐģŅŅиĐŧ ĐŋŅĐĩĐ´ŅĐŋŅĐĩĐļĐ´ĐĩĐŊиŅ Anaconda
import warnings
warnings.simplefilter('ignore')
# СаĐŗŅŅСиĐŧ СĐŊĐ°ŅĐĩĐŊиŅ
table_zero = pd.read_csv('data_example.txt', header=0, sep='t')
# ĐŋĐžŅĐŧĐžŅŅиĐŧ иĐŊŅĐžŅĐŧĐ°ŅиŅ Đž ŅĐ°ĐąĐģиŅĐĩ и ĐŊĐ° ŅĐ°ĐŧŅ ŅĐ°ĐąĐģиŅŅ
print table_zero.info()
print '********************************************'
print table_zero
print '********************************************'
# ĐŋОдĐŗĐžŅОвиĐŧ Đ´Đ°ĐŊĐŊŅĐĩ ĐąĐĩС иŅĐŋĐžĐģŅСОваĐŊиŅ NumPy
x_us = []
[x_us.append(float(i)) for i in table_zero['x']]
print x_us
print type(x_us)
print '********************************************'
y_us = []
[y_us.append(float(i)) for i in table_zero['y']]
print y_us
print type(y_us)
print '********************************************'
# ĐŋОдĐŗĐžŅОвиĐŧ Đ´Đ°ĐŊĐŊŅĐĩ Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ NumPy
x_np = table_zero[['x']].values
print x_np
print type(x_np)
print x_np.shape
print '********************************************'
y_np = table_zero[['y']].values
print y_np
print type(y_np)
print y_np.shape
print '********************************************'
āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨
āĻāĻāĻ¨, āĻāĻŽāĻ°āĻž, āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻĄā§āĻāĻž āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻ˛ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻ āĻŋāĻāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻˇā§ āĻĄā§āĻāĻž āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻŦāĨ¤ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻĒā§āĻ¯āĻŧāĻžāĻ°āĻĒā§āĻ˛āĻ āĻā§āĻ°āĻ¨ā§āĻĨāĻžāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĻā§āĻ°āĻ¯ā§āĻā§āĻ¤. āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻ¸ā§āĻŽāĻŋāĻ¤ āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻžāĻ°āĻŖā§, āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻ¨ āĻŽāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¸āĻŽā§āĻĻā§āĻ°āĻ¯ā§āĻā§āĻ¤. āĻāĻŽāĻ°āĻž āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻŽā§āĻ¯āĻžāĻāĻĒā§āĻ˛ā§āĻ˛ā§āĻŦ āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° scatterplot āĻ¤āĻžāĻāĻžāĻ¨.
āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ°āĻĒā§āĻ˛āĻ āĻā§āĻĄ
print 'ĐŅĐ°ŅиĐē â1 "ĐавиŅиĐŧĐžŅŅŅ вŅŅŅŅĐēи ĐžŅ ĐŧĐĩŅŅŅĐ° ĐŗОда"'
plt.plot(x_us,y_us,'o',color='green',markersize=16)
plt.xlabel('$Months$', size=16)
plt.ylabel('$Sales$', size=16)
plt.show()
āĻāĻžāĻ°ā§āĻ āĻ¨āĻ 1 "āĻŦāĻāĻ°ā§āĻ° āĻŽāĻžāĻ¸ā§āĻ° āĻāĻĒāĻ° āĻ°āĻžāĻāĻ¸ā§āĻŦ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž"
āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨
āĻāĻŽāĻ°āĻž āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻŦāĻ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§āĻ¨:
āĻļā§āĻ°ā§{āĻ¸āĻŽā§āĻāĻ°āĻŖ*}
āĻļā§āĻ°ā§
na + bsumlimits_{i=1}^nx_i - sumlimits_{i=1}^ny_i = 0
sumlimits_{i=1}^nx_i(a +bsumlimits_{i=1}^nx_i - sumlimits_{i=1}^ny_i) = 0
āĻļā§āĻˇ{āĻā§āĻ¸}
āĻļā§āĻˇ{āĻ¸āĻŽā§āĻāĻ°āĻŖ*}
āĻā§āĻ°ā§āĻŽāĻžāĻ°ā§āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻ, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻ āĻā§āĻāĻā§āĻ¨ āĻāĻŦāĻ āĻĻā§āĻŦāĻžāĻ°āĻž , āĻ¯āĻžāĻ° āĻĒāĻ°ā§, āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻāĻā§ āĻāĻžāĻ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻā§āĻ° āĻāĻžāĻā§ - āĻ¸āĻšāĻ āĻā§āĻāĻā§āĻ¨ , āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻ°āĻž āĻ¸āĻšāĻ āĻā§āĻāĻā§ āĻĒāĻžāĻ .
āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻā§āĻĄ
# ĐžĐŋŅĐĩĐ´ĐĩĐģиĐŧ ŅŅĐŊĐēŅиŅ Đ´ĐģŅ ŅĐ°ŅŅĐĩŅĐ° ĐēĐžŅŅŅиŅиĐĩĐŊŅОв a и b ĐŋĐž ĐŋŅавиĐģŅ ĐŅĐ°ĐŧĐĩŅĐ°
def Kramer_method (x,y):
# ŅŅĐŧĐŧĐ° СĐŊĐ°ŅĐĩĐŊиК (вŅĐĩ ĐŧĐĩŅŅŅĐ°)
sx = sum(x)
# ŅŅĐŧĐŧĐ° иŅŅиĐŊĐŊŅŅ
ĐžŅвĐĩŅОв (вŅŅŅŅĐēĐ° Са вĐĩŅŅ ĐŋĐĩŅиОд)
sy = sum(y)
# ŅŅĐŧĐŧĐ° ĐŋŅОиСвĐĩĐ´ĐĩĐŊиŅ СĐŊĐ°ŅĐĩĐŊиК ĐŊĐ° иŅŅиĐŊĐŊŅĐĩ ĐžŅвĐĩŅŅ
list_xy = []
[list_xy.append(x[i]*y[i]) for i in range(len(x))]
sxy = sum(list_xy)
# ŅŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв СĐŊĐ°ŅĐĩĐŊиК
list_x_sq = []
[list_x_sq.append(x[i]**2) for i in range(len(x))]
sx_sq = sum(list_x_sq)
# ĐēĐžĐģиŅĐĩŅŅвО СĐŊĐ°ŅĐĩĐŊиК
n = len(x)
# ОйŅиК ĐžĐŋŅĐĩĐ´ĐĩĐģиŅĐĩĐģŅ
det = sx_sq*n - sx*sx
# ĐžĐŋŅĐĩĐ´ĐĩĐģиŅĐĩĐģŅ ĐŋĐž a
det_a = sx_sq*sy - sx*sxy
# иŅĐēĐžĐŧŅĐš ĐŋĐ°ŅĐ°ĐŧĐĩŅŅ a
a = (det_a / det)
# ĐžĐŋŅĐĩĐ´ĐĩĐģиŅĐĩĐģŅ ĐŋĐž b
det_b = sxy*n - sy*sx
# иŅĐēĐžĐŧŅĐš ĐŋĐ°ŅĐ°ĐŧĐĩŅŅ b
b = (det_b / det)
# ĐēĐžĐŊŅŅĐžĐģŅĐŊŅĐĩ СĐŊĐ°ŅĐĩĐŊиŅ (ĐŋŅООвĐĩŅĐēĐ°)
check1 = (n*b + a*sx - sy)
check2 = (b*sx + a*sx_sq - sxy)
return [round(a,4), round(b,4)]
# СаĐŋŅŅŅиĐŧ ŅŅĐŊĐēŅиŅ и СаĐŋиŅĐĩĐŧ ĐŋŅавиĐģŅĐŊŅĐĩ ĐžŅвĐĩŅŅ
ab_us = Kramer_method(x_us,y_us)
a_us = ab_us[0]
b_us = ab_us[1]
print ' 33[1m' + ' 33[4m' + "ĐĐŋŅиĐŧĐ°ĐģŅĐŊŅĐĩ СĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв a и b:" + ' 33[0m'
print 'a =', a_us
print 'b =', b_us
print
# ĐžĐŋŅĐĩĐ´ĐĩĐģиĐŧ ŅŅĐŊĐēŅиŅ Đ´ĐģŅ ĐŋОдŅŅĐĩŅĐ° ŅŅĐŧĐŧŅ ĐēвадŅĐ°ŅОв ĐžŅийОĐē
def errors_sq_Kramer_method(answers,x,y):
list_errors_sq = []
for i in range(len(x)):
err = (answers[0] + answers[1]*x[i] - y[i])**2
list_errors_sq.append(err)
return sum(list_errors_sq)
# СаĐŋŅŅŅиĐŧ ŅŅĐŊĐēŅиŅ и СаĐŋиŅĐĩĐŧ СĐŊĐ°ŅĐĩĐŊиĐĩ ĐžŅийĐēи
error_sq = errors_sq_Kramer_method(ab_us,x_us,y_us)
print ' 33[1m' + ' 33[4m' + "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК" + ' 33[0m'
print error_sq
print
# СаĐŧĐĩŅиĐŧ вŅĐĩĐŧŅ ŅĐ°ŅŅĐĩŅĐ°
# print ' 33[1m' + ' 33[4m' + "ĐŅĐĩĐŧŅ вŅĐŋĐžĐģĐŊĐĩĐŊиŅ ŅĐ°ŅŅĐĩŅĐ° ŅŅĐŧĐŧŅ ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК:" + ' 33[0m'
# % timeit error_sq = errors_sq_Kramer_method(ab,x_us,y_us)
āĻāĻŽāĻ°āĻž āĻ¯āĻž āĻĒā§āĻ¯āĻŧā§āĻāĻŋ āĻ¤āĻž āĻāĻāĻžāĻ¨ā§:
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ, āĻŦāĻ°ā§āĻā§āĻ¯āĻŧ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¯ā§āĻāĻĢāĻ˛ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¸āĻšāĻ āĻ
āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻŦāĻŋāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻšāĻŋāĻ¸ā§āĻā§āĻā§āĻ°āĻžāĻŽā§ āĻāĻāĻāĻŋ āĻ¸āĻ°āĻ˛ āĻ°ā§āĻāĻž āĻāĻāĻā§āĻ¨āĨ¤
āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ˛āĻžāĻāĻ¨ āĻā§āĻĄ
# ĐžĐŋŅĐĩĐ´ĐĩĐģиĐŧ ŅŅĐŊĐēŅиŅ Đ´ĐģŅ ŅĐžŅĐŧиŅОваĐŊиŅ ĐŧĐ°ŅŅива ŅĐ°ŅŅŅĐĩŅĐŊŅŅ
СĐŊĐ°ŅĐĩĐŊиК вŅŅŅŅĐēи
def sales_count(ab,x,y):
line_answers = []
[line_answers.append(ab[0]+ab[1]*x[i]) for i in range(len(x))]
return line_answers
# ĐŋĐžŅŅŅОиĐŧ ĐŗŅĐ°ŅиĐēи
print 'ĐŅŅиĐēâ2 "ĐŅавиĐģŅĐŊŅĐĩ и ŅĐ°ŅŅĐĩŅĐŊŅĐĩ ĐžŅвĐĩŅŅ"'
plt.plot(x_us,y_us,'o',color='green',markersize=16, label = '$True$ $answers$')
plt.plot(x_us, sales_count(ab_us,x_us,y_us), color='red',lw=4,
label='$Function: a + bx,$ $where$ $a='+str(round(ab_us[0],2))+',$ $b='+str(round(ab_us[1],2))+'$')
plt.xlabel('$Months$', size=16)
plt.ylabel('$Sales$', size=16)
plt.legend(loc=1, prop={'size': 16})
plt.show()
āĻāĻžāĻ°ā§āĻ āĻ¨āĻ 2 "āĻ¸āĻ āĻŋāĻ āĻāĻŦāĻ āĻāĻŖāĻ¨āĻžāĻā§āĻ¤ āĻāĻ¤ā§āĻ¤āĻ°"
āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻā§āĻ°āĻžāĻĢ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻĨā§āĻā§ āĻā§āĻ¨āĻ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻŽā§āĻ˛ā§āĻ¯ āĻ
āĻ°ā§āĻāĻ¨ āĻāĻ°āĻŦ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻā§āĻ¤ā§āĻšāĻ˛āĻā§ āĻ¸āĻ¨ā§āĻ¤ā§āĻˇā§āĻ āĻāĻ°āĻŦ āĻ¯ā§ āĻ¸āĻ°āĻ˛ āĻ°ā§āĻāĻŋāĻ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻāĻ°āĻŖāĻāĻŋ āĻŦāĻāĻ°ā§āĻ° āĻŽāĻžāĻ¸ā§āĻ° āĻāĻĒāĻ° āĻ°āĻžāĻāĻ¸ā§āĻŦ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻžāĻā§ āĻāĻ¤āĻāĻž āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°ā§āĨ¤
āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋ āĻāĻžāĻ°ā§āĻ āĻā§āĻĄ
# ĐžĐŋŅĐĩĐ´ĐĩĐģиĐŧ ŅŅĐŊĐēŅиŅ Đ´ĐģŅ ŅĐžŅĐŧиŅОваĐŊиŅ ĐŧĐ°ŅŅива ĐžŅĐēĐģĐžĐŊĐĩĐŊиК в ĐŋŅĐžŅĐĩĐŊŅĐ°Ņ
def error_per_month(ab,x,y):
sales_c = sales_count(ab,x,y)
errors_percent = []
for i in range(len(x)):
errors_percent.append(100*(sales_c[i]-y[i])/y[i])
return errors_percent
# ĐŋĐžŅŅŅОиĐŧ ĐŗŅĐ°ŅиĐē
print 'ĐŅĐ°ŅиĐēâ3 "ĐŅĐēĐģĐžĐŊĐĩĐŊиŅ ĐŋĐž-ĐŧĐĩŅŅŅĐŊĐž, %"'
plt.gca().bar(x_us, error_per_month(ab_us,x_us,y_us), color='brown')
plt.xlabel('Months', size=16)
plt.ylabel('Calculation error, %', size=16)
plt.show()
āĻāĻžāĻ°ā§āĻ āĻ¨āĻ 3 "āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋ,%"
āĻ¨āĻŋāĻā§āĻāĻ¤ āĻ¨āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻ āĻāĻ°ā§āĻāĻŋ.
āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ˛āĻŋāĻāĻŋ āĻ¯āĻž āĻ¸āĻšāĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ и āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻŽā§āĻ°, āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ˛āĻŋāĻāĻŦ: āĻāĻāĻāĻŋ āĻāĻĻā§āĻŽ-āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ (āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻāĻŖāĻ¨āĻžāĻāĻ¤āĻāĻžāĻŦā§ āĻāĻāĻŋāĻ˛ āĻāĻŦāĻ āĻ āĻ¸ā§āĻĨāĻŋāĻ°), āĻ āĻ¨ā§āĻ¯āĻāĻŋ āĻāĻāĻāĻŋ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻā§āĻĄ (NumPy)
# Đ´ĐģŅ ĐŊĐ°ŅĐ°ĐģĐ° дОйавиĐŧ ŅŅĐžĐģĐąĐĩŅ Ņ ĐŊĐĩ иСĐŧĐĩĐŊŅŅŅиĐŧŅŅ СĐŊĐ°ŅĐĩĐŊиĐĩĐŧ в 1.
# ĐĐ°ĐŊĐŊŅĐš ŅŅĐžĐģĐąĐĩŅ ĐŊŅĐļĐĩĐŊ Đ´ĐģŅ ŅĐžĐŗĐž, ŅŅОйŅ ĐŊĐĩ ОйŅайаŅŅваŅŅ ĐžŅĐ´ĐĩĐģŅĐŊĐž ĐēĐžŅŅŅиŅĐĩĐŊŅ a
vector_1 = np.ones((x_np.shape[0],1))
x_np = table_zero[['x']].values # ĐŊĐ° вŅŅĐēиК ŅĐģŅŅĐ°Đš ĐŋŅивĐĩĐ´ĐĩĐŧ в ĐŋĐĩŅвиŅĐŊŅĐš ŅĐžŅĐŧĐ°Ņ вĐĩĐēŅĐžŅ x_np
x_np = np.hstack((vector_1,x_np))
# ĐŋŅОвĐĩŅиĐŧ ŅĐž, ŅŅĐž вŅĐĩ ŅĐ´ĐĩĐģĐ°Đģи ĐŋŅавиĐģŅĐŊĐž
print vector_1[0:3]
print x_np[0:3]
print '***************************************'
print
# ĐŊĐ°ĐŋиŅĐĩĐŧ ŅŅĐŊĐēŅиŅ, ĐēĐžŅĐžŅĐ°Ņ ĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩŅ СĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв a и b Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ ĐŋŅĐĩвдООйŅĐ°ŅĐŊОК ĐŧĐ°ŅŅиŅŅ
def pseudoinverse_matrix(X, y):
# СадаĐĩĐŧ ŅвĐŊŅĐš ŅĐžŅĐŧĐ°Ņ ĐŧĐ°ŅŅиŅŅ ĐŋŅиСĐŊĐ°ĐēОв
X = np.matrix(X)
# ĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ ŅŅĐ°ĐŊŅĐŋĐžĐŊиŅОваĐŊĐŊŅŅ ĐŧĐ°ŅŅиŅŅ
XT = X.T
# ĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ ĐēвадŅĐ°ŅĐŊŅŅ ĐŧĐ°ŅŅиŅŅ
XTX = XT*X
# ĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ ĐŋŅĐĩвдООйŅĐ°ŅĐŊŅŅ ĐŧĐ°ŅŅиŅŅ
inv = np.linalg.pinv(XTX)
# СадаĐĩĐŧ ŅвĐŊŅĐš ŅĐžŅĐŧĐ°Ņ ĐŧĐ°ŅŅиŅŅ ĐžŅвĐĩŅОв
y = np.matrix(y)
# ĐŊĐ°Ņ
ОдиĐŧ вĐĩĐēŅĐžŅ вĐĩŅОв
return (inv*XT)*y
# СаĐŋŅŅŅиĐŧ ŅŅĐŊĐēŅиŅ
ab_np = pseudoinverse_matrix(x_np, y_np)
print ab_np
print '***************************************'
print
# ĐŊĐ°ĐŋиŅĐĩĐŧ ŅŅĐŊĐēŅиŅ, ĐēĐžŅĐžŅĐ°Ņ иŅĐŋĐžĐģŅСŅĐĩŅ Đ´ĐģŅ ŅĐĩŅĐĩĐŊиŅ ĐŧĐ°ŅŅиŅĐŊĐžĐĩ ŅŅавĐŊĐĩĐŊиĐĩ
def matrix_equation(X,y):
a = np.dot(X.T, X)
b = np.dot(X.T, y)
return np.linalg.solve(a, b)
# СаĐŋŅŅŅиĐŧ ŅŅĐŊĐēŅиŅ
ab_np = matrix_equation(x_np,y_np)
print ab_np
āĻ¸āĻšāĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻ¯ā§ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛ā§āĻā§āĻā§ āĻ¤āĻžāĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨ и , āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ 3 āĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§āĨ¤
āĻāĻŖāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŖāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ
print ' 33[1m' + ' 33[4m' + "ĐŅĐĩĐŧŅ вŅĐŋĐžĐģĐŊĐĩĐŊиŅ ŅĐ°ŅŅĐĩŅĐ° ĐēĐžŅŅŅиŅиĐĩĐŊŅОв ĐąĐĩС иŅĐŋĐžĐģŅСОваĐŊиŅ йийĐģиОŅĐĩĐēи NumPy:" + ' 33[0m'
% timeit ab_us = Kramer_method(x_us,y_us)
print '***************************************'
print
print ' 33[1m' + ' 33[4m' + "ĐŅĐĩĐŧŅ вŅĐŋĐžĐģĐŊĐĩĐŊиŅ ŅĐ°ŅŅĐĩŅĐ° ĐēĐžŅŅŅиŅиĐĩĐŊŅОв Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ ĐŋŅĐĩвдООйŅĐ°ŅĐŊОК ĐŧĐ°ŅŅиŅŅ:" + ' 33[0m'
%timeit ab_np = pseudoinverse_matrix(x_np, y_np)
print '***************************************'
print
print ' 33[1m' + ' 33[4m' + "ĐŅĐĩĐŧŅ вŅĐŋĐžĐģĐŊĐĩĐŊиŅ ŅĐ°ŅŅĐĩŅĐ° ĐēĐžŅŅŅиŅиĐĩĐŊŅОв Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ ĐŧĐ°ŅŅиŅĐŊĐžĐŗĐž ŅŅавĐŊĐĩĐŊиŅ:" + ' 33[0m'
%timeit ab_np = matrix_equation(x_np, y_np)
āĻ
āĻ˛ā§āĻĒ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĄā§āĻāĻžāĻ¤ā§, āĻāĻāĻāĻŋ "āĻ¸ā§āĻŦ-āĻ˛āĻŋāĻāĻŋāĻ¤" āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§, āĻ¯āĻž āĻā§āĻ°ā§āĻŽāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻšāĻ āĻā§āĻāĻā§ āĻĒāĻžāĻ¯āĻŧāĨ¤
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻšāĻ āĻā§āĻāĻāĻ¤ā§ āĻ āĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ и .
āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ
āĻĒā§āĻ°āĻĨāĻŽā§, āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŋ āĻ¤āĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧā§, āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¯āĻž āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻŦā§āĻĻā§āĻ§āĻŋāĻ° āĻĻāĻŋāĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ āĻāĻĄāĻŧāĻžāĻ-āĻā§āĻ°āĻžāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĻā§āĻļā§āĻ¯ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĻā§āĻāĻžāĻ¯āĻŧ, āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĒāĻžāĻšāĻžāĻĄāĻŧā§āĻ° āĻā§āĻĄāĻŧāĻžāĻ¯āĻŧ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻžāĻĄāĻŧāĻž āĻāĻ°ā§āĻšāĻŖāĨ¤ āĻĒāĻ°ā§āĻŦāĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻŦāĻŋāĻāĻžāĻļ, āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻ¯āĻ¤ āĻ¤āĻžāĻĄāĻŧāĻžāĻ¤āĻžāĻĄāĻŧāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻ¨āĻŋāĻŽā§āĻ¨ā§ āĻĒā§āĻāĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻžāĻĄāĻŧāĻž āĻ āĻŦāĻ¤āĻ°āĻŖ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻ āĻ°ā§āĻĨāĻžā§, āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ - āĻāĻŽāĻ¨ āĻāĻžāĻ¯āĻŧāĻāĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧ āĻ¨āĻž āĻāĻŦāĻ āĻšā§āĻ°āĻžāĻ¸ āĻĒāĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ āĻļā§āĻ¨ā§āĻ¯ āĻšāĻŦā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ°ā§āĻ§ā§ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ. āĻ ā§āĻ¯āĻžāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻŦāĻ˛ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ -1 (āĻŦāĻŋāĻ¯āĻŧā§āĻ āĻāĻ).
āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻ°āĻž āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋāĻ° āĻĻāĻŋāĻā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ āĻ¯ā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻŽ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¨ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋāĻ¤ā§ āĻ¨ā§āĻŽā§ āĻāĻ¸āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ āĻ¨ā§āĻ¯ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻā§āĻāĻā§ āĻĒāĻžāĻŦ āĻ¨āĻž, āĻ¯āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻŽ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ°āĻžāĻŽ āĻāĻ°ā§āĻ¨, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻĒāĻĻā§ āĻ¨ā§āĻ! āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻĨā§āĻā§, āĻāĻāĻāĻŋ āĻāĻāĻ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻāĻŋ āĻā§āĻ°āĻžāĻĢā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŦā§āĻ˛āĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻāĻ˛ā§āĻ° āĻ¸ā§āĻā§āĻ˛ā§āĻ° āĻāĻŖāĻŋāĻ¤ āĻā§āĻ°ā§āĻ¸ āĻĨā§āĻā§ āĻā§āĻŦ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻāĻžāĻ¨āĻž āĻāĻāĻŋāĻ¤, āĻāĻāĻāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŦā§āĻ˛āĻžāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĨāĻžāĻā§āĨ¤
āĻāĻŽāĻ°āĻž āĻā§āĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŦāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻŽā§āĻ¨ā§āĻ, āĻ āĻ°ā§āĻĨāĻžā§, āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻā§āĻāĻ°, āĻ¯āĻž āĻ āĻŋāĻ āĻāĻāĻ āĻ¸āĻšāĻāĨ¤ и āĻāĻŽāĻ°āĻž āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻŽāĻŋ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻžāĻā§āĻ¯ āĻĒāĻĄāĻŧāĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāĻā§āĻāĻŋ:
- āĻāĻŽāĻ°āĻž āĻ¸āĻŋāĻāĻĄā§-āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻŋ и . āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž āĻļā§āĻ¨ā§āĻ¯ā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻ¸āĻšāĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŦāĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ āĻā§āĻ¯āĻžāĻ¸, āĻ¤āĻŦā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧ āĻĨā§āĻā§ āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§ 1āĻŽ āĻā§āĻ°āĻŽāĻāĻŋāĻ° āĻāĻāĻļāĻŋāĻ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨ . āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¯āĻĻāĻŋ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻŦāĻžāĻĄāĻŧāĻā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻŦā§āĻĻā§āĻ§āĻŋāĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻĻāĻŋāĻā§ āĻ¯āĻžāĻŦā§, āĻ āĻ°ā§āĻĨāĻžā§ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻĻāĻŋāĻā§āĨ¤ āĻ¯āĻĻāĻŋ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ āĻ¨ā§āĻ¤āĻŋāĻŦāĻžāĻāĻ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻŽāĻā§ āĻāĻŦāĻ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°āĻā§, āĻāĻŽāĻ°āĻž āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻĻāĻŋāĻā§ āĻ¯āĻžāĻā§āĻāĻŋāĨ¤
- āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¨ā§āĻŦāĻ¯āĻŧā§āĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŋ : āĻŦāĻŋāĻ¨ā§āĻĻā§āĻ¤ā§ āĻāĻāĻļāĻŋāĻ āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨ āĻŦāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨ .
- āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻāĻĒāĻ° āĻāĻžāĻāĻĒ āĻ¨āĻž āĻāĻŦāĻ āĻāĻā§āĻ° āĻŽāĻšāĻžāĻāĻžāĻļā§ āĻĻā§āĻ°ā§ āĻāĻĄāĻŧā§ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻ āĻŦāĻ¤āĻ°āĻŖ āĻĻāĻŋāĻā§ āĻ§āĻžāĻĒā§āĻ° āĻāĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻāĻŖāĻ¨āĻžāĻ° āĻāĻ°āĻ āĻāĻŽāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻāĻžāĻŦā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻāĻŋ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋāĻā§ āĻ āĻŦāĻ¤āĻ°āĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻāĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻžāĻ āĻāĻā§, āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻŦā§āĻā§āĻāĻžāĻ¨āĻŋāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ§āĻžāĻĒā§āĻ° āĻāĻāĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŦ "āĻĒā§āĻ" āĻŦāĻž, āĻ¯ā§āĻŽāĻ¨ āĻ¤āĻžāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŽāĻžāĻ¨ā§āĻˇ āĻŦāĻ˛ā§, āĻ āĻāĻŋāĻā§āĻāĻ¤āĻžāĻāĻ¤āĻāĻžāĻŦā§āĨ¤
- āĻāĻāĻŦāĻžāĻ° āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻĨāĻžāĻāĻŋ и āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻŦāĻŋāĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻŽāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻ āĻĒāĻžāĻ и . āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒ (āĻŦāĻŋāĻ¯āĻŧā§āĻ) āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŋ, āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŖāĻ¨āĻžāĻā§āĻ¤ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻ āĻĨā§āĻā§āĨ¤ āĻāĻŦāĻ āĻ¤āĻžāĻ āĻāĻā§āĻ°āĻāĻŋ āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ, āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻ¨āĻāĻžāĻ°āĻā§āĻ¨ā§āĻ¸ā§ āĻĒā§āĻāĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻŽāĻ¸ā§āĻ¤ ! āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻŽāĻžāĻ°āĻŋāĻ¯āĻŧāĻžāĻ¨āĻž āĻā§āĻ°ā§āĻā§āĻā§āĻ° āĻāĻā§āĻ°āĻ¤āĻŽ āĻāĻžāĻĻā§āĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤ āĻāĻ˛ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ.
āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻā§āĻĄ
# ĐŊĐ°ĐŋиŅĐĩĐŧ ŅŅĐŊĐēŅиŅ ĐŗŅадиĐĩĐŊŅĐŊĐžĐŗĐž ŅĐŋŅŅĐēĐ° ĐąĐĩС иŅĐŋĐžĐģŅСОваĐŊиŅ йийĐģиОŅĐĩĐēи NumPy.
# ФŅĐŊĐēŅиŅ ĐŊĐ° вŅ
Од ĐŋŅиĐŊиĐŧĐ°ĐĩŅ диаĐŋаСОĐŊŅ СĐŊĐ°ŅĐĩĐŊиК x,y, Đ´ĐģиĐŊŅ ŅĐ°ĐŗĐ° (ĐŋĐž ŅĐŧĐžĐģŅĐ°ĐŊиŅ=0,1), Đ´ĐžĐŋŅŅŅиĐŧŅŅ ĐŋĐžĐŗŅĐĩŅĐŊĐžŅŅŅ(tolerance)
def gradient_descent_usual(x_us,y_us,l=0.1,tolerance=0.000000000001):
# ŅŅĐŧĐŧĐ° СĐŊĐ°ŅĐĩĐŊиК (вŅĐĩ ĐŧĐĩŅŅŅĐ°)
sx = sum(x_us)
# ŅŅĐŧĐŧĐ° иŅŅиĐŊĐŊŅŅ
ĐžŅвĐĩŅОв (вŅŅŅŅĐēĐ° Са вĐĩŅŅ ĐŋĐĩŅиОд)
sy = sum(y_us)
# ŅŅĐŧĐŧĐ° ĐŋŅОиСвĐĩĐ´ĐĩĐŊиŅ СĐŊĐ°ŅĐĩĐŊиК ĐŊĐ° иŅŅиĐŊĐŊŅĐĩ ĐžŅвĐĩŅŅ
list_xy = []
[list_xy.append(x_us[i]*y_us[i]) for i in range(len(x_us))]
sxy = sum(list_xy)
# ŅŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв СĐŊĐ°ŅĐĩĐŊиК
list_x_sq = []
[list_x_sq.append(x_us[i]**2) for i in range(len(x_us))]
sx_sq = sum(list_x_sq)
# ĐēĐžĐģиŅĐĩŅŅвО СĐŊĐ°ŅĐĩĐŊиК
num = len(x_us)
# ĐŊĐ°ŅĐ°ĐģŅĐŊŅĐĩ СĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв, ĐžĐŋŅĐĩĐ´ĐĩĐģĐĩĐŊĐŊŅĐĩ ĐŋŅĐĩвдОŅĐģŅŅĐ°ĐšĐŊŅĐŧ ОйŅаСОĐŧ
a = float(random.uniform(-0.5, 0.5))
b = float(random.uniform(-0.5, 0.5))
# ŅОСдаĐĩĐŧ ĐŧĐ°ŅŅив Ņ ĐžŅийĐēĐ°Đŧи, Đ´ĐģŅ ŅŅĐ°ŅŅĐ° иŅĐŋĐžĐģŅСŅĐĩĐŧ СĐŊĐ°ŅĐĩĐŊиŅ 1 и 0
# ĐŋĐžŅĐģĐĩ СавĐĩŅŅĐĩĐŊиŅ ŅĐŋŅŅĐēĐ° ŅŅĐ°ŅŅОвŅĐĩ СĐŊĐ°ŅĐĩĐŊиŅ ŅĐ´Đ°ĐģиĐŧ
errors = [1,0]
# СаĐŋŅŅĐēĐ°ĐĩĐŧ ŅиĐēĐģ ŅĐŋŅŅĐēĐ°
# ŅиĐēĐģ ŅайОŅĐ°ĐĩŅ Đ´Đž ŅĐĩŅ
ĐŋĐžŅ, ĐŋĐžĐēĐ° ĐžŅĐēĐģĐžĐŊĐĩĐŊиĐĩ ĐŋĐžŅĐģĐĩĐ´ĐŊĐĩĐš ĐžŅийĐēи ŅŅĐŧĐŧŅ ĐēвадŅĐ°ŅОв ĐžŅ ĐŋŅĐĩĐ´ŅĐ´ŅŅĐĩĐš, ĐŊĐĩ ĐąŅĐ´ĐĩŅ ĐŧĐĩĐŊŅŅĐĩ tolerance
while abs(errors[-1]-errors[-2]) > tolerance:
a_step = a - l*(num*a + b*sx - sy)/num
b_step = b - l*(a*sx + b*sx_sq - sxy)/num
a = a_step
b = b_step
ab = [a,b]
errors.append(errors_sq_Kramer_method(ab,x_us,y_us))
return (ab),(errors[2:])
# СаĐŋиŅĐĩĐŧ ĐŧĐ°ŅŅив СĐŊĐ°ŅĐĩĐŊиК
list_parametres_gradient_descence = gradient_descent_usual(x_us,y_us,l=0.1,tolerance=0.000000000001)
print ' 33[1m' + ' 33[4m' + "ĐĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв a и b:" + ' 33[0m'
print 'a =', round(list_parametres_gradient_descence[0][0],3)
print 'b =', round(list_parametres_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК:" + ' 33[0m'
print round(list_parametres_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĐžĐģиŅĐĩŅŅвО иŅĐĩŅĐ°ŅиК в ĐŗŅадиĐĩĐŊŅĐŊĐžĐŧ ŅĐŋŅŅĐēĐĩ:" + ' 33[0m'
print len(list_parametres_gradient_descence[1])
print
āĻāĻŽāĻ°āĻž āĻŽāĻžāĻ°āĻŋāĻ¯āĻŧāĻžāĻ¨āĻž āĻā§āĻ°ā§āĻā§āĻā§āĻ° āĻāĻā§āĻŦāĻžāĻ°ā§ āĻ¨ā§āĻā§ āĻĄā§āĻŦ āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻ āĻŽāĻžāĻ¨ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ и āĻ¯āĻž āĻāĻ¸āĻ˛ā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤āĨ¤
āĻāĻ˛ā§āĻ¨ āĻāĻ°ā§āĻāĻāĻž āĻĄāĻžāĻāĻ āĻāĻ°āĻž āĻ¯āĻžāĻ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻā§āĻ° āĻ¸āĻŽā§āĻĻā§āĻ°ā§āĻ° āĻ¯āĻžāĻ¨ā§āĻ° āĻ¸ā§āĻāĻžāĻĢāĻŋāĻ āĻšāĻŦā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ, āĻ¯āĻĨāĻž āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¨āĻŽā§āĻ°.
āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻā§āĻĄ (NumPy)
# ĐŋĐĩŅĐĩĐ´ ŅĐĩĐŧ ĐžĐŋŅĐĩĐ´ĐĩĐģиŅŅ ŅŅĐŊĐēŅиŅ Đ´ĐģŅ ĐŗŅадиĐĩĐŊŅĐŊĐžĐŗĐž ŅĐŋŅŅĐēĐ° Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ йийĐģиОŅĐĩĐēи NumPy,
# ĐŊĐ°ĐŋиŅĐĩĐŧ ŅŅĐŊĐēŅиŅ ĐžĐŋŅĐĩĐ´ĐĩĐģĐĩĐŊиŅ ŅŅĐŧĐŧŅ ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК ŅĐ°ĐēĐļĐĩ Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ NumPy
def error_square_numpy(ab,x_np,y_np):
y_pred = np.dot(x_np,ab)
error = y_pred - y_np
return sum((error)**2)
# ĐŊĐ°ĐŋиŅĐĩĐŧ ŅŅĐŊĐēŅиŅ ĐŗŅадиĐĩĐŊŅĐŊĐžĐŗĐž ŅĐŋŅŅĐēĐ° Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ йийĐģиОŅĐĩĐēи NumPy.
# ФŅĐŊĐēŅиŅ ĐŊĐ° вŅ
Од ĐŋŅиĐŊиĐŧĐ°ĐĩŅ диаĐŋаСОĐŊŅ СĐŊĐ°ŅĐĩĐŊиК x,y, Đ´ĐģиĐŊŅ ŅĐ°ĐŗĐ° (ĐŋĐž ŅĐŧĐžĐģŅĐ°ĐŊиŅ=0,1), Đ´ĐžĐŋŅŅŅиĐŧŅŅ ĐŋĐžĐŗŅĐĩŅĐŊĐžŅŅŅ(tolerance)
def gradient_descent_numpy(x_np,y_np,l=0.1,tolerance=0.000000000001):
# ŅŅĐŧĐŧĐ° СĐŊĐ°ŅĐĩĐŊиК (вŅĐĩ ĐŧĐĩŅŅŅĐ°)
sx = float(sum(x_np[:,1]))
# ŅŅĐŧĐŧĐ° иŅŅиĐŊĐŊŅŅ
ĐžŅвĐĩŅОв (вŅŅŅŅĐēĐ° Са вĐĩŅŅ ĐŋĐĩŅиОд)
sy = float(sum(y_np))
# ŅŅĐŧĐŧĐ° ĐŋŅОиСвĐĩĐ´ĐĩĐŊиŅ СĐŊĐ°ŅĐĩĐŊиК ĐŊĐ° иŅŅиĐŊĐŊŅĐĩ ĐžŅвĐĩŅŅ
sxy = x_np*y_np
sxy = float(sum(sxy[:,1]))
# ŅŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв СĐŊĐ°ŅĐĩĐŊиК
sx_sq = float(sum(x_np[:,1]**2))
# ĐēĐžĐģиŅĐĩŅŅвО СĐŊĐ°ŅĐĩĐŊиК
num = float(x_np.shape[0])
# ĐŊĐ°ŅĐ°ĐģŅĐŊŅĐĩ СĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв, ĐžĐŋŅĐĩĐ´ĐĩĐģĐĩĐŊĐŊŅĐĩ ĐŋŅĐĩвдОŅĐģŅŅĐ°ĐšĐŊŅĐŧ ОйŅаСОĐŧ
a = float(random.uniform(-0.5, 0.5))
b = float(random.uniform(-0.5, 0.5))
# ŅОСдаĐĩĐŧ ĐŧĐ°ŅŅив Ņ ĐžŅийĐēĐ°Đŧи, Đ´ĐģŅ ŅŅĐ°ŅŅĐ° иŅĐŋĐžĐģŅСŅĐĩĐŧ СĐŊĐ°ŅĐĩĐŊиŅ 1 и 0
# ĐŋĐžŅĐģĐĩ СавĐĩŅŅĐĩĐŊиŅ ŅĐŋŅŅĐēĐ° ŅŅĐ°ŅŅОвŅĐĩ СĐŊĐ°ŅĐĩĐŊиŅ ŅĐ´Đ°ĐģиĐŧ
errors = [1,0]
# СаĐŋŅŅĐēĐ°ĐĩĐŧ ŅиĐēĐģ ŅĐŋŅŅĐēĐ°
# ŅиĐēĐģ ŅайОŅĐ°ĐĩŅ Đ´Đž ŅĐĩŅ
ĐŋĐžŅ, ĐŋĐžĐēĐ° ĐžŅĐēĐģĐžĐŊĐĩĐŊиĐĩ ĐŋĐžŅĐģĐĩĐ´ĐŊĐĩĐš ĐžŅийĐēи ŅŅĐŧĐŧŅ ĐēвадŅĐ°ŅОв ĐžŅ ĐŋŅĐĩĐ´ŅĐ´ŅŅĐĩĐš, ĐŊĐĩ ĐąŅĐ´ĐĩŅ ĐŧĐĩĐŊŅŅĐĩ tolerance
while abs(errors[-1]-errors[-2]) > tolerance:
a_step = a - l*(num*a + b*sx - sy)/num
b_step = b - l*(a*sx + b*sx_sq - sxy)/num
a = a_step
b = b_step
ab = np.array([[a],[b]])
errors.append(error_square_numpy(ab,x_np,y_np))
return (ab),(errors[2:])
# СаĐŋиŅĐĩĐŧ ĐŧĐ°ŅŅив СĐŊĐ°ŅĐĩĐŊиК
list_parametres_gradient_descence = gradient_descent_numpy(x_np,y_np,l=0.1,tolerance=0.000000000001)
print ' 33[1m' + ' 33[4m' + "ĐĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв a и b:" + ' 33[0m'
print 'a =', round(list_parametres_gradient_descence[0][0],3)
print 'b =', round(list_parametres_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК:" + ' 33[0m'
print round(list_parametres_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĐžĐģиŅĐĩŅŅвО иŅĐĩŅĐ°ŅиК в ĐŗŅадиĐĩĐŊŅĐŊĐžĐŧ ŅĐŋŅŅĐēĐĩ:" + ' 33[0m'
print len(list_parametres_gradient_descence[1])
print
āĻ¸āĻšāĻ āĻŽāĻžāĻ¨ и āĻ
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤
āĻāĻ¸ā§āĻ¨ āĻĻā§āĻāĻŋ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ āĻ°ā§āĻĨāĻžā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ§āĻžāĻĒā§ āĻŦāĻ°ā§āĻāĻā§āĻˇā§āĻ¤ā§āĻ° āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¯ā§āĻāĻĢāĻ˛ āĻā§āĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¸āĻŽāĻˇā§āĻāĻŋ āĻŦāĻ°ā§āĻ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋ āĻĒā§āĻ˛āĻā§āĻ° āĻā§āĻĄ
print 'ĐŅĐ°ŅиĐēâ4 "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК ĐŋĐž-ŅĐ°ĐŗОвО"'
plt.plot(range(len(list_parametres_gradient_descence[1])), list_parametres_gradient_descence[1], color='red', lw=3)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
āĻāĻžāĻ°ā§āĻ #4 "āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§ āĻŦāĻ°ā§āĻā§āĻ¯āĻŧ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋ"
āĻā§āĻ°āĻžāĻĢā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻĻāĻā§āĻˇā§āĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻĒāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ
āĻ¨ā§āĻā§āĻŽāĻŋāĻ āĻ°ā§āĻāĻž āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻŋāĨ¤
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻ¸ā§āĻ¨ āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻŋ:
āĻāĻžāĻāĻŽāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻāĻŖāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ
print ' 33[1m' + ' 33[4m' + "ĐŅĐĩĐŧŅ вŅĐŋĐžĐģĐŊĐĩĐŊиŅ ĐŗŅадиĐĩĐŊŅĐŊĐžĐŗĐž ŅĐŋŅŅĐēĐ° ĐąĐĩС иŅĐŋĐžĐģŅСОваĐŊиŅ йийĐģиОŅĐĩĐēи NumPy:" + ' 33[0m'
%timeit list_parametres_gradient_descence = gradient_descent_usual(x_us,y_us,l=0.1,tolerance=0.000000000001)
print '***************************************'
print
print ' 33[1m' + ' 33[4m' + "ĐŅĐĩĐŧŅ вŅĐŋĐžĐģĐŊĐĩĐŊиŅ ĐŗŅадиĐĩĐŊŅĐŊĐžĐŗĐž ŅĐŋŅŅĐēĐ° Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ йийĐģиОŅĐĩĐēи NumPy:" + ' 33[0m'
%timeit list_parametres_gradient_descence = gradient_descent_numpy(x_np,y_np,l=0.1,tolerance=0.000000000001)
āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻā§āĻ˛ āĻāĻ°āĻāĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŦāĻžāĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ "āĻ¸ā§āĻŦ-āĻ˛āĻŋāĻāĻŋāĻ¤" āĻĢāĻžāĻāĻļāĻ¨ āĻ¯āĻž āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻž āĻ¨āĻŽā§āĻ° āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻŖāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻā§ āĻ¨āĻŽā§āĻ°.
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĨāĻŋāĻ° āĻ¨āĻ, āĻŦāĻ°āĻ āĻ¸āĻ°āĻ˛ āĻ°ā§āĻāĻŋāĻ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻāĻ¤ā§āĻ¤ā§āĻāĻ¨āĻžāĻĒā§āĻ°ā§āĻŖ āĻāĻĒāĻžāĻ¯āĻŧ āĻļā§āĻāĻžāĻ° āĻĻāĻŋāĻā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻā§āĻāĻŋāĨ¤ āĻ¸āĻŽā§āĻŽā§āĻ˛āĻ¨!
āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ
āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻĻā§āĻ°ā§āĻ¤ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻĨā§āĻā§ āĻāĻ° āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯āĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻāĻžāĻ˛āĨ¤ āĻāĻŽāĻ°āĻž, āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻ° āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻ¸āĻŽā§āĻāĻ°āĻŖā§ и āĻ¨āĻŽā§āĻ¨āĻžāĻ¯āĻŧ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻ¸āĻ¤ā§āĻ¯ āĻāĻ¤ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻā§ (āĻ āĻ°ā§āĻĨāĻžā§, āĻ¸āĻāĻ˛ā§āĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋ и ) āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§, āĻāĻŽāĻ°āĻž āĻ¨āĻŽā§āĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻ¨āĻž, āĻ¤āĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻĻā§āĻŽ-āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻ¨āĻŽā§āĻ¨āĻž āĻ¸ā§āĻāĻ āĻŦā§āĻā§ āĻ¨ā§āĻŦ āĻāĻŦāĻ āĻāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻ¸ā§āĻāĻāĻāĻŋāĻā§ 3 (āĻ¤āĻŋāĻ¨) āĻ¨āĻŽā§āĻŦāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŋ и , āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻ°āĻž āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻā§āĻ° āĻ¸āĻŽā§āĻāĻ°āĻŖā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻŋāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§, āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻŦāĻžāĻ° āĻāĻĻā§āĻŽ-āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻ¨āĻŽā§āĻ¨āĻž āĻ¸ā§āĻāĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻŋ, āĻāĻāĻļāĻŋāĻ āĻĄāĻŋāĻĢāĻžāĻ°ā§āĻ¨āĻļāĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻŽā§āĻāĻ°āĻŖā§ āĻ¸ā§āĻāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻŋ и āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ¸āĻŦā§āĻ āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻāĻ°ā§, āĻŽāĻ¨ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻāĻŋ āĻ¸āĻŦ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻ¸āĻ¤ā§āĻ¯, āĻāĻāĻŋ āĻ˛āĻā§āĻˇ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻĻāĻā§āĻˇā§āĻĒā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻĒāĻžāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻŦāĻŖāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻā§ āĻā§? āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŽā§āĻ¨āĻžāĻ° āĻāĻāĻžāĻ° āĻā§āĻŦ āĻŦāĻĄāĻŧ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ° āĻŽāĻžāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒā§āĻ°ā§ āĻ¨āĻŽā§āĻ¨āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ°ā§āĻ° āĻŽāĻ¤ā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻ āĻ¨ā§āĻ āĻ¸āĻšāĻāĨ¤ āĻāĻāĻžāĻ¨ā§āĻ āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŦ āĻ¨āĻžāĨ¤
āĻāĻ° āĻā§āĻĄ āĻ¤āĻžāĻāĻžāĻ¨.
āĻ¸ā§āĻāĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ
# ĐžĐŋŅĐĩĐ´ĐĩĐģиĐŧ ŅŅĐŊĐēŅиŅ ŅŅĐžŅ
.ĐŗŅĐ°Đ´.ŅĐ°ĐŗĐ°
def stoch_grad_step_usual(vector_init, x_us, ind, y_us, l):
# вŅйиŅĐ°ĐĩĐŧ СĐŊĐ°ŅĐĩĐŊиĐĩ иĐēŅ, ĐēĐžŅĐžŅĐžĐĩ ŅООŅвĐĩŅŅŅвŅĐĩŅ ŅĐģŅŅĐ°ĐšĐŊĐžĐŧŅ СĐŊĐ°ŅĐĩĐŊиŅ ĐŋĐ°ŅĐ°ĐŧĐĩŅŅĐ° ind
# (ŅĐŧ.Ņ-ŅиŅ stoch_grad_descent_usual)
x = x_us[ind]
# ŅĐ°ŅŅŅиŅŅвŅĐ°ĐĩĐŧ СĐŊĐ°ŅĐĩĐŊиĐĩ y (вŅŅŅŅĐēŅ), ĐēĐžŅĐžŅĐ°Ņ ŅООŅвĐĩŅŅŅвŅĐĩŅ вŅĐąŅĐ°ĐŊĐŊĐžĐŧŅ СĐŊĐ°ŅĐĩĐŊиŅ x
y_pred = vector_init[0] + vector_init[1]*x_us[ind]
# вŅŅиŅĐģŅĐĩĐŧ ĐžŅийĐēŅ ŅĐ°ŅŅĐĩŅĐŊОК вŅŅŅŅĐēи ĐžŅĐŊĐžŅиŅĐĩĐģŅĐŊĐž ĐŋŅĐĩĐ´ŅŅавĐģĐĩĐŊĐŊОК в вŅйОŅĐēĐĩ
error = y_pred - y_us[ind]
# ĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ ĐŋĐĩŅвŅŅ ĐēООŅдиĐŊĐ°ŅŅ ĐŗŅадиĐĩĐŊŅĐ° ab
grad_a = error
# ĐžĐŋŅĐĩĐ´ĐĩĐģŅĐĩĐŧ вŅĐžŅŅŅ ĐēООŅдиĐŊĐ°ŅŅ ab
grad_b = x_us[ind]*error
# вŅŅиŅĐģŅĐĩĐŧ ĐŊОвŅĐš вĐĩĐēŅĐžŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв
vector_new = [vector_init[0]-l*grad_a, vector_init[1]-l*grad_b]
return vector_new
# ĐžĐŋŅĐĩĐ´ĐĩĐģиĐŧ ŅŅĐŊĐēŅиŅ ŅŅĐžŅ
.ĐŗŅĐ°Đ´.ŅĐŋŅŅĐēĐ°
def stoch_grad_descent_usual(x_us, y_us, l=0.1, steps = 800):
# Đ´ĐģŅ ŅĐ°ĐŧĐžĐŗĐž ĐŊĐ°ŅĐ°ĐģĐ° ŅайОŅŅ ŅŅĐŊĐēŅии СададиĐŧ ĐŊĐ°ŅĐ°ĐģŅĐŊŅĐĩ СĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв
vector_init = [float(random.uniform(-0.5, 0.5)), float(random.uniform(-0.5, 0.5))]
errors = []
# СаĐŋŅŅŅиĐŧ ŅиĐēĐģ ŅĐŋŅŅĐēĐ°
# ŅиĐēĐģ ŅĐ°ŅŅиŅĐ°ĐŊ ĐŊĐ° ĐžĐŋŅĐĩĐ´ĐĩĐģĐĩĐŊĐŊĐžĐĩ ĐēĐžĐģиŅĐĩŅŅвО ŅĐ°ĐŗОв (steps)
for i in range(steps):
ind = random.choice(range(len(x_us)))
new_vector = stoch_grad_step_usual(vector_init, x_us, ind, y_us, l)
vector_init = new_vector
errors.append(errors_sq_Kramer_method(vector_init,x_us,y_us))
return (vector_init),(errors)
# СаĐŋиŅĐĩĐŧ ĐŧĐ°ŅŅив СĐŊĐ°ŅĐĩĐŊиК
list_parametres_stoch_gradient_descence = stoch_grad_descent_usual(x_us, y_us, l=0.1, steps = 800)
print ' 33[1m' + ' 33[4m' + "ĐĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв a и b:" + ' 33[0m'
print 'a =', round(list_parametres_stoch_gradient_descence[0][0],3)
print 'b =', round(list_parametres_stoch_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК:" + ' 33[0m'
print round(list_parametres_stoch_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĐžĐģиŅĐĩŅŅвО иŅĐĩŅĐ°ŅиК в ŅŅĐžŅ
Đ°ŅŅиŅĐĩŅĐēĐžĐŧ ĐŗŅадиĐĩĐŊŅĐŊĐžĐŧ ŅĐŋŅŅĐēĐĩ:" + ' 33[0m'
print len(list_parametres_stoch_gradient_descence[1])
āĻāĻŽāĻ°āĻž āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ° āĻĻāĻŋāĻā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻ¸āĻšāĻāĻžāĻ°ā§ āĻ¤āĻžāĻāĻžāĻ āĻāĻŦāĻ "āĻāĻŋāĻāĻžāĻŦā§ āĻ¤āĻžāĻ?" āĻĒā§āĻ°āĻļā§āĻ¨ā§ āĻ¨āĻŋāĻā§āĻā§ āĻ§āĻ°āĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ° āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŽāĻžāĻ¨ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ и . āĻšāĻ¯āĻŧāĻ¤ā§ āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻ¸āĻŽā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ āĻ
āĻ¨ā§āĻā§āĻ˛ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¯āĻŧā§āĻā§? āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻā§āĻ°āĻŽā§ āĻ¨āĻž. āĻŦāĻ°ā§āĻāĻžāĻāĻžāĻ° āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋāĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻžāĻ¨ā§ āĻāĻŦāĻ āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻāĻŽāĻ°āĻž āĻšāĻ¤āĻžāĻļ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¤āĻžāĻĄāĻŧāĻž āĻ¨ā§āĻāĨ¤ āĻāĻ¸ā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻĢ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋāĨ¤
āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§ āĻŦāĻ°ā§āĻ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋ āĻĒā§āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻā§āĻĄ
print 'ĐŅĐ°ŅиĐē â5 "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК ĐŋĐž-ŅĐ°ĐŗОвО"'
plt.plot(range(len(list_parametres_stoch_gradient_descence[1])), list_parametres_stoch_gradient_descence[1], color='red', lw=2)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
āĻāĻžāĻ°ā§āĻ #5 "āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§ āĻŦāĻ°ā§āĻāĻā§āĻˇā§āĻ¤ā§āĻ° āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋ"
āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻĻā§āĻāĻžāĻ° āĻĒāĻ°ā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧā§ āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻāĻ°āĻŦāĨ¤
āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŋ āĻšāĻ˛ā§? āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻā§āĻā§. āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¸ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻŋ, āĻ¤āĻāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻŽāĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯āĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ°āĻžāĻāĻ¸ā§āĻŦ āĻāĻŖāĻ¨āĻžāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŽāĻžāĻ¤ā§ āĻāĻžāĻ¯āĻŧāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ āĻ¨ā§āĻ¯ āĻŽāĻžāĻ¸ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻŖāĻ¨āĻžāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻŋ, āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻŽāĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻŋāĨ¤ āĻāĻŦāĻ āĻāĻāĻ¨ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻ¯āĻžāĻ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻ āĻŽāĻžāĻ¸ āĻ¸āĻ°āĻ˛ āĻ°ā§āĻāĻŋāĻ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻāĻ°āĻŖā§āĻ° āĻ˛āĻžāĻāĻ¨ āĻĨā§āĻā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻ¯āĻāĻ¨ āĻāĻ āĻĻā§āĻ āĻŽāĻžāĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯ā§āĻā§āĻ¨ā§ āĻāĻāĻāĻŋ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻŽā§āĻ¨āĻžāĻ¤ā§ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋāĻā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦ āĻ¸āĻšāĻāĻžāĻ°ā§ āĻŦāĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻ¤ā§ āĻāĻāĻ¨ āĻāĻŋ āĻāĻ°āĻž? āĻāĻ¤ā§āĻ¤āĻ°āĻāĻŋ āĻ¸āĻšāĻ: āĻāĻĒāĻ¨āĻžāĻā§ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻ§āĻžāĻĒ āĻāĻŽāĻžāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻ¸ā§āĻā§āĻĒ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§, āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻāĻĒāĻ°ā§ āĻŦāĻž āĻ¨ā§āĻā§ āĻšāĻ¯āĻŧ "āĻāĻžāĻŽā§āĻĒāĻŋāĻ" āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻŦā§āĨ¤ āĻ āĻĨāĻŦāĻž āĻŦāĻ°āĻ, "āĻāĻžāĻŽā§āĻĒāĻŋāĻ" āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĨāĻžāĻŽāĻŦā§ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻ¤ āĻ¤āĻžāĻĄāĻŧāĻžāĻ¤āĻžāĻĄāĻŧāĻŋ āĻāĻ°āĻŦā§ āĻ¨āĻž :) āĻāĻ¸ā§āĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
āĻāĻāĻāĻŋ āĻā§āĻ āĻ§āĻžāĻĒā§ SGD āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ
# СаĐŋŅŅŅиĐŧ ŅŅĐŊĐēŅиŅ, ŅĐŧĐĩĐŊŅŅив ŅĐ°Đŗ в 100 ŅаС и ŅвĐĩĐģиŅив ĐēĐžĐģиŅĐĩŅŅвО ŅĐ°ĐŗОв ŅООŅвĐĩŅŅвŅŅŅĐĩ
list_parametres_stoch_gradient_descence = stoch_grad_descent_usual(x_us, y_us, l=0.001, steps = 80000)
print ' 33[1m' + ' 33[4m' + "ĐĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв a и b:" + ' 33[0m'
print 'a =', round(list_parametres_stoch_gradient_descence[0][0],3)
print 'b =', round(list_parametres_stoch_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК:" + ' 33[0m'
print round(list_parametres_stoch_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĐžĐģиŅĐĩŅŅвО иŅĐĩŅĐ°ŅиК в ŅŅĐžŅ
Đ°ŅŅиŅĐĩŅĐēĐžĐŧ ĐŗŅадиĐĩĐŊŅĐŊĐžĐŧ ŅĐŋŅŅĐēĐĩ:" + ' 33[0m'
print len(list_parametres_stoch_gradient_descence[1])
print 'ĐŅĐ°ŅиĐē â6 "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК ĐŋĐž-ŅĐ°ĐŗОвО"'
plt.plot(range(len(list_parametres_stoch_gradient_descence[1])), list_parametres_stoch_gradient_descence[1], color='red', lw=2)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
āĻāĻžāĻ°ā§āĻ #6 "āĻ¸ā§āĻāĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ°ā§āĻāĻā§āĻˇā§āĻ¤ā§āĻ° āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋ (80k āĻ§āĻžāĻĒ)"
āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¨āĻ āĻāĻĻāĻ°ā§āĻļ āĻ¨āĻ¯āĻŧāĨ¤ āĻ
āĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻāĻāĻžāĻŦā§, āĻāĻāĻŋ āĻāĻāĻāĻžāĻŦā§ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻļā§āĻˇ 1000 āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻŋ āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ¸āĻ¤ā§āĻ¯, āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻšāĻāĻā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻāĻ°āĻŦ āĻ¨āĻž, āĻŦāĻ°āĻ āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§āĻ° āĻĻāĻŋāĻā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻāĨ¤ āĻāĻāĻŋ āĻŽāĻ¸ā§āĻŖ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻŽāĻžāĻ¨āĻāĻžāĻŦā§ āĻšā§āĻ°āĻžāĻ¸ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ¸āĻ˛ā§ āĻ¤āĻž āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻĨāĻŽ 1000āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻĻā§āĻāĻŋ āĻāĻŦāĻ āĻļā§āĻˇāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻŋāĨ¤
SGD āĻāĻžāĻ°ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ (āĻĒā§āĻ°āĻĨāĻŽ 1000 āĻ§āĻžāĻĒ)
print 'ĐŅĐ°ŅиĐē â7 "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК ĐŋĐž-ŅĐ°ĐŗОвО. ĐĐĩŅвŅĐĩ 1000 иŅĐĩŅĐ°ŅиК"'
plt.plot(range(len(list_parametres_stoch_gradient_descence[1][:1000])),
list_parametres_stoch_gradient_descence[1][:1000], color='red', lw=2)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
print 'ĐŅĐ°ŅиĐē â7 "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК ĐŋĐž-ŅĐ°ĐŗОвО. ĐĐžŅĐģĐĩĐ´ĐŊиĐĩ 1000 иŅĐĩŅĐ°ŅиК"'
plt.plot(range(len(list_parametres_stoch_gradient_descence[1][-1000:])),
list_parametres_stoch_gradient_descence[1][-1000:], color='red', lw=2)
plt.xlabel('Steps (Iteration)', size=16)
plt.ylabel('Sum of squared deviations', size=16)
plt.show()
āĻāĻžāĻ°ā§āĻ āĻ¨āĻ 7 "SGD āĻāĻ° āĻŦāĻ°ā§āĻāĻā§āĻˇā§āĻ¤ā§āĻ° āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋ (āĻĒā§āĻ°āĻĨāĻŽ 1000 āĻ§āĻžāĻĒ)"
āĻāĻžāĻ°ā§āĻ #8 "SGD āĻāĻ° āĻŦāĻ°ā§āĻāĻā§āĻˇā§āĻ¤ā§āĻ° āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋ (āĻļā§āĻˇ 1000āĻāĻŋ āĻ§āĻžāĻĒ)"
āĻ
āĻŦāĻ¤āĻ°āĻŖā§āĻ° āĻāĻā§āĻŦāĻžāĻ°ā§ āĻļā§āĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻ¤ā§āĻ°ā§āĻāĻŋāĻ¤ā§ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ
āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŦāĻ āĻāĻžāĻĄāĻŧāĻž āĻšā§āĻ°āĻžāĻ¸ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŋāĨ¤ āĻļā§āĻˇ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ āĻ¯ā§ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ 1,475 āĻāĻ° āĻŽāĻžāĻ¨ā§āĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻāĻŦāĻ āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻāĻ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻŽāĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻĒāĻ°ā§āĻ āĻāĻāĻŋ āĻāĻĒāĻ°ā§ āĻ¯āĻžāĻ¯āĻŧ ... āĻāĻŽāĻŋ āĻāĻŦāĻžāĻ°āĻ āĻŦāĻ˛āĻāĻŋ, āĻāĻĒāĻ¨āĻŋ āĻāĻ° āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¸āĻšāĻ и , āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§āĻāĻā§āĻ˛āĻŋ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¨ āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻŋāĻ˛: āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻā§āĻ˛ā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻĒā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° 80 āĻšāĻžāĻāĻžāĻ° āĻĒāĻĻāĻā§āĻˇā§āĻĒ āĻ¨āĻŋāĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ (āĻā§āĻĄ āĻĻā§āĻā§āĻ¨)āĨ¤ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§ āĻāĻŖāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻāĻāĻžāĻ¨ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻ° āĻŦāĻŋāĻ°ā§āĻ§āĻŋāĻ¤āĻž āĻāĻ°ā§āĨ¤ āĻāĻŋ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻŦāĻ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§? āĻāĻāĻž āĻĻā§āĻāĻž āĻāĻ āĻŋāĻ¨ āĻ¨āĻ¯āĻŧ āĻ¯ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĨāĻŋāĻ°āĻāĻžāĻŦā§ āĻ¨āĻŋāĻā§ āĻ¯āĻžāĻā§āĻāĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻ, āĻĒā§āĻ°āĻĨāĻŽ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ§āĻžāĻĒ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻ§āĻžāĻĒāĻāĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻāĻŋ āĻāĻ°āĻŦ āĻ¨āĻž - āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻā§āĻ¨ā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻā§āĻā§āĨ¤ āĻ¯āĻžāĻ°āĻž āĻāĻā§āĻā§āĻ āĻ¤āĻžāĻ°āĻž āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻž āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻāĻāĻž āĻāĻ āĻŋāĻ¨ āĻāĻŋāĻā§ āĻ¨āĻž đ
āĻāĻāĻ¨ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ āĻ¨āĻŽā§āĻ° (āĻāĻŦāĻ āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻ°āĻž āĻāĻā§ āĻļāĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻĒāĻžāĻĨāĻ°ā§āĻ° āĻāĻĒāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻā§āĻ°āĻŽāĻŖ āĻāĻ°āĻŋ āĻ¨āĻž)
āĻ¸ā§āĻāĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ (NumPy)
# Đ´ĐģŅ ĐŊĐ°ŅĐ°ĐģĐ° ĐŊĐ°ĐŋиŅĐĩĐŧ ŅŅĐŊĐēŅиŅ ĐŗŅадиĐĩĐŊŅĐŊĐžĐŗĐž ŅĐ°ĐŗĐ°
def stoch_grad_step_numpy(vector_init, X, ind, y, l):
x = X[ind]
y_pred = np.dot(x,vector_init)
err = y_pred - y[ind]
grad_a = err
grad_b = x[1]*err
return vector_init - l*np.array([grad_a, grad_b])
# ĐžĐŋŅĐĩĐ´ĐĩĐģиĐŧ ŅŅĐŊĐēŅиŅ ŅŅĐžŅ
Đ°ŅŅиŅĐĩŅĐēĐžĐŗĐž ĐŗŅадиĐĩĐŊŅĐŊĐžĐŗĐž ŅĐŋŅŅĐēĐ°
def stoch_grad_descent_numpy(X, y, l=0.1, steps = 800):
vector_init = np.array([[np.random.randint(X.shape[0])], [np.random.randint(X.shape[0])]])
errors = []
for i in range(steps):
ind = np.random.randint(X.shape[0])
new_vector = stoch_grad_step_numpy(vector_init, X, ind, y, l)
vector_init = new_vector
errors.append(error_square_numpy(vector_init,X,y))
return (vector_init), (errors)
# СаĐŋиŅĐĩĐŧ ĐŧĐ°ŅŅив СĐŊĐ°ŅĐĩĐŊиК
list_parametres_stoch_gradient_descence = stoch_grad_descent_numpy(x_np, y_np, l=0.001, steps = 80000)
print ' 33[1m' + ' 33[4m' + "ĐĐŊĐ°ŅĐĩĐŊиŅ ĐēĐžŅŅŅиŅиĐĩĐŊŅОв a и b:" + ' 33[0m'
print 'a =', round(list_parametres_stoch_gradient_descence[0][0],3)
print 'b =', round(list_parametres_stoch_gradient_descence[0][1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĄŅĐŧĐŧĐ° ĐēвадŅĐ°ŅОв ĐžŅĐēĐģĐžĐŊĐĩĐŊиК:" + ' 33[0m'
print round(list_parametres_stoch_gradient_descence[1][-1],3)
print
print ' 33[1m' + ' 33[4m' + "ĐĐžĐģиŅĐĩŅŅвО иŅĐĩŅĐ°ŅиК в ŅŅĐžŅ
Đ°ŅŅиŅĐĩŅĐēĐžĐŧ ĐŗŅадиĐĩĐŊŅĐŊĐžĐŧ ŅĐŋŅŅĐēĐĩ:" + ' 33[0m'
print len(list_parametres_stoch_gradient_descence[1])
print
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°ā§ āĻ¨āĻŋāĻā§ āĻ¨āĻžāĻŽāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻāĻāĻ āĻ°āĻāĻŽ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻā§ āĻ¨āĻŽā§āĻ°. āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĨ¤
āĻ¸ā§āĻā§āĻāĻžāĻ¸ā§āĻāĻŋāĻ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻāĻ¸ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¤āĻāĻž āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
SGD āĻāĻŖāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ (80k āĻ§āĻžāĻĒ)
print ' 33[1m' + ' 33[4m' +
"ĐŅĐĩĐŧŅ вŅĐŋĐžĐģĐŊĐĩĐŊиŅ ŅŅĐžŅ
Đ°ŅŅиŅĐĩŅĐēĐžĐŗĐž ĐŗŅадиĐĩĐŊŅĐŊĐžĐŗĐž ŅĐŋŅŅĐēĐ° ĐąĐĩС иŅĐŋĐžĐģŅСОваĐŊиŅ йийĐģиОŅĐĩĐēи NumPy:"
+ ' 33[0m'
%timeit list_parametres_stoch_gradient_descence = stoch_grad_descent_usual(x_us, y_us, l=0.001, steps = 80000)
print '***************************************'
print
print ' 33[1m' + ' 33[4m' +
"ĐŅĐĩĐŧŅ вŅĐŋĐžĐģĐŊĐĩĐŊиŅ ŅŅĐžŅ
Đ°ŅŅиŅĐĩŅĐēĐžĐŗĐž ĐŗŅадиĐĩĐŊŅĐŊĐžĐŗĐž ŅĐŋŅŅĐēĐ° Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ йийĐģиОŅĐĩĐēи NumPy:"
+ ' 33[0m'
%timeit list_parametres_stoch_gradient_descence = stoch_grad_descent_numpy(x_np, y_np, l=0.001, steps = 80000)
āĻ¯āĻ¤āĻ āĻŦāĻ¨ā§ āĻ¯āĻžāĻŦā§, āĻŽā§āĻ āĻ¤āĻ¤ āĻāĻžāĻĸāĻŧ āĻšāĻŦā§: āĻāĻŦāĻžāĻ°, "āĻ¸ā§āĻŦ-āĻ˛āĻŋāĻāĻŋāĻ¤" āĻ¸ā§āĻ¤ā§āĻ°āĻāĻŋ āĻ¸ā§āĻ°āĻž āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤ āĻāĻ āĻ¸āĻŦ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ°āĻ āĻ¸ā§āĻā§āĻˇā§āĻŽ āĻāĻĒāĻžāĻ¯āĻŧ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¨āĻŽā§āĻ°, āĻ¯āĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻāĻŖāĻ¨āĻžāĻŽā§āĻ˛āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻā§ āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻ° āĻāĻ°ā§āĨ¤ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻļāĻŋāĻāĻŦ āĻ¨āĻžāĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻ
āĻŦāĻ¸āĻ° āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ :)
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻ°āĻž
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻāĻ¤ā§āĻ¤āĻ° āĻĻāĻŋāĻ¤ā§ āĻāĻžāĻ āĻ¯āĻž āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻžāĻ āĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻ¸ā§āĻā§āĨ¤ āĻā§āĻ¨, āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻŦāĻāĻļāĻ§āĻ°āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° "āĻ¯āĻ¨ā§āĻ¤ā§āĻ°āĻŖāĻž" āĻā§āĻ¨, āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻā§āĻŽāĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻžāĻšāĻžāĻĄāĻŧā§āĻ° āĻāĻĒāĻ°ā§ āĻāĻŦāĻ āĻ¨ā§āĻā§ āĻšāĻžāĻāĻāĻ¤ā§ āĻšāĻŦā§ (āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻ¨ā§āĻā§), āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻšāĻžāĻ¤ā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĨāĻžāĻā§, āĻāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ¯āĻž āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ¸āĻ āĻŋāĻ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°ā§?
āĻāĻ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻāĻ¤ā§āĻ¤āĻ° āĻāĻĒāĻ°āĻŋāĻāĻžāĻā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻā§āĻŦ āĻ¸āĻšāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°ā§āĻāĻŋ āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻ¤ā§āĻ¯ āĻāĻ¤ā§āĻ¤āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ . āĻāĻĒāĻ¨āĻŋ āĻā§āĻŦāĻ¨ā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ¨ āĻ¨āĻž, āĻ¤āĻžāĻ āĻāĻ¸ā§āĻ¨ āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° 2, 30, 50 āĻŦāĻž āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋ āĻ˛āĻā§āĻˇāĻŖ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ° āĻāĻŦāĻ āĻāĻŽāĻ¨āĻāĻŋ āĻāĻ¯āĻŧā§āĻ āĻšāĻžāĻāĻžāĻ° āĻŽāĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻžāĻ¤ā§āĻŽāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻāĻŦāĻ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻāĻ° āĻāĻŋāĻ¨ā§āĻ¨āĻ¤āĻž āĻ§ā§āĻ°ā§ āĻ§ā§āĻ°ā§ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸āĻŦā§ - āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽāĨ¤ āĻāĻŦāĻ āĻāĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž - āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻāĻ¨āĻ āĻāĻŽāĻ¨ āĻāĻĒāĻžāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻŦ āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ§āĻžāĻĒā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ (āĻ āĻ°ā§āĻĨāĻžā§ āĻāĻ¤āĻŋ) āĻ¸ā§āĻ āĻāĻŦāĻ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¸āĻžāĻ°āĻ¸āĻāĻā§āĻˇā§āĻĒ āĻāĻ¨ā§āĻ¯.
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻ¸āĻšāĻ (āĻāĻŦāĻ āĻā§āĻŦāĻ˛ āĻ¨āĻ¯āĻŧ) āĻ˛āĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ° āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻŦā§āĻāĻ¤ā§ āĻļāĻŋāĻā§āĻˇāĻžāĻ¨āĻŦāĻŋāĻ¸ "āĻĄā§āĻāĻž āĻŦāĻŋāĻā§āĻāĻžāĻ¨ā§āĻĻā§āĻ°" āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§āĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻĻā§āĻā§āĻāĻŋāĨ¤ āĻāĻāĻ¨, āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻšāĻžāĻ¤ā§ āĻĨāĻžāĻāĻž āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻāĻāĻŋ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻ¤ā§āĻ¤ā§āĻ¯āĻŧāĻ¤, āĻāĻŽāĻ°āĻž āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§āĻ° āĻļāĻā§āĻ¤āĻŋ āĻĻā§āĻā§āĻāĻŋ, āĻ¯ā§āĻŽāĻ¨ āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻā§āĻ° āĻ§āĻžāĻĒā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯āĨ¤ āĻāĻ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ āĻŦāĻšā§āĻ˛āĻž āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŽā§āĻĒāĻŋāĻāĻāĻŋāĻ āĻāĻ°āĻ āĻāĻŽāĻžāĻ¤ā§, āĻ āĻŦāĻ¤āĻ°āĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ§āĻžāĻĒā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻāĻ¤ā§āĻ°ā§āĻĨāĻ¤, āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, "āĻ¸ā§āĻŦ-āĻ˛āĻŋāĻāĻŋāĻ¤" āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŖāĻ¨āĻžāĻ° āĻ¸ā§āĻ°āĻž āĻ¸āĻŽāĻ¯āĻŧ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻāĻŋāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻā§āĻ°āĻ¨ā§āĻĨāĻžāĻāĻžāĻ°ā§āĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻĒā§āĻļāĻžāĻĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻžāĻ°āĻŖā§āĨ¤ āĻ¨āĻŽā§āĻ°. āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°āĻāĻŋ āĻ¨āĻŋāĻā§āĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻāĻ°ā§āĨ¤ āĻāĻāĻĻāĻŋāĻā§, āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻŋāĻ¤ āĻŽāĻ¤āĻžāĻŽāĻ¤āĻā§ āĻĒā§āĻ°āĻļā§āĻ¨āĻŦāĻŋāĻĻā§āĻ§ āĻāĻ°āĻž āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨, āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻĻāĻŋāĻā§, āĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¸āĻŦāĻāĻŋāĻā§āĻā§ āĻāĻāĻŋāĻ˛ āĻāĻ°ā§ āĻ¤ā§āĻ˛āĻžāĻ° āĻŽā§āĻ˛ā§āĻ¯ āĻ¨āĻ¯āĻŧ - āĻŦāĻŋāĻĒāĻ°ā§āĻ¤āĻāĻžāĻŦā§, āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻ°āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°āĨ¤ āĻāĻŦāĻ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻŋāĻ˛ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ°ā§āĻāĻŋāĻ āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻāĻ°āĻŖ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒāĻ¨ā§āĻĨāĻž āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻž, āĻ¤āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ "āĻ¸ā§āĻŦ-āĻ˛āĻŋāĻāĻŋāĻ¤" āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¯āĻĨā§āĻˇā§āĻ āĻāĻŋāĻ˛āĨ¤
āĻ¸āĻžāĻšāĻŋāĻ¤ā§āĻ¯ (āĻŦāĻž āĻāĻ°āĻāĻŽ āĻāĻŋāĻā§)
1. āĻ˛āĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ° āĻ°āĻŋāĻā§āĻ°ā§āĻļāĻ¨
2. āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ¸ā§āĻā§āĻ¯āĻŧāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
3. āĻĄā§āĻ°āĻŋāĻā§āĻāĻŋāĻ
4āĨ¤ āĻ¨āĻ¤āĻŋāĻŽāĻžāĻ¤ā§āĻ°āĻž
5. āĻā§āĻ°ā§āĻĄāĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻ¸ā§āĻ¨ā§āĻ
6. NumPy āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ
āĻāĻ¤ā§āĻ¸: www.habr.com