为什么要缩放特征
本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 47 课,共 64 课。
哪个客户最像新客户?许多模型会测量样本之间的距离:将每个特征的差值平方后相加,再开平方。
一位 25 岁、年收入 52,000 美元的人,与一位 61 岁、年收入 53,000 美元的人:
对于整个表格,axis=1 会计算每一行各元素平方的和,而 .argmin() 会找出最近的一行:
a = np.array([25, 52000]) # 年龄、收入
X = np.array([[61, 53000], # 这位 61 岁的人
[26, 55000]]) # 一位收入为 $55,000 的 26 岁的人
dists = np.sqrt(((X - a) ** 2).sum(axis=1))
print(np.round(dists, 2))
print(dists.argmin())这会打印:
[1000.65 3000. ]
061 岁的人最接近:美元的数值更大,所以 $1,000 比 36 年更重要。不进行缩放时,由最大的单位决定。
本章让每项功能都有机会发声。
挑战
中等商店会根据洗衣机的价格(美元)、能耗(每年 kWh)和用水量(每次洗涤的升数)进行比较,这些特征名列在 features 中。程序会读取两台洗衣机的位置,分别存入 i 和 j。打印:
Squared gaps:每项特征的差值平方。Distance:四舍五入到小数点后 2 位。Dominant feature:平方差值最大的特征名称。
对于另外两台洗衣机:
Squared gaps: [2500 6400 1]
Distance: 94.35
Dominant feature: energy亲手试试
import numpy as np
features = ["price", "energy", "water"]
# 每行对应一台洗衣机:价格单位为美元,能耗单位为千瓦时/年,用水量单位为升/次洗涤
machines = np.array([[499, 160, 48],
[349, 210, 55],
[899, 120, 42],
[529, 250, 50],
[279, 230, 60],
[749, 140, 45]])
i = int(input())
j = int(input())
# 在下方编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
机器学习统计学中的所有课
自己练习: Python 在线编译器