1) 归一化(min-max)
2) 标准化(z-score)
import logging
from io import StringIO
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler, MinMaxScaler
"""
- 学习数据归一化, 标准化;
- 作散点图.
"""
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
data = '''
length,weight
169,70
180,92
175,82
169,100
175,69
120,54
'''
test_data = pd.read_csv(StringIO(data))
arr = np.array(test_data, np.float64)
logger.info("data:\n%s", arr)
nor1 = StandardScaler()
r1 = nor1.fit_transform(arr)
logger.info("standardScaler:\n%s", r1)
nor2 = MinMaxScaler()
r2 = nor2.fit_transform(arr)
logger.info("minMaxScaler:\n%s", r2)
# 画布的大小为长8cm高6cm
# plt.figure(figsize=(8, 6))
# 画图吧,s表示点点的大小,c就是color嘛,marker就是点点的形状哦o,x,*><^,都可以啦
# alpha,点点的亮度,label,标签啦
plt.scatter(arr[:, 0], arr[:, 1], s=30, c='red', marker='o', alpha=0.5, label='T1')
plt.scatter(r1[:, 0], r1[:, 1], s=30, c='blue', marker='x', alpha=0.5, label='T2')
plt.scatter(r2[:, 0], r2[:, 1], s=30, c='gray', marker='+', alpha=0.5, label='T3')
# 下面三行代码很简单啦
plt.title('basic scatter plot ')
plt.xlabel('variables x')
plt.ylabel('variables y')
plt.legend(loc='upper right') # 这个必须有,没有你试试看
plt.show() # 这个可以没有
思考: tf-idf 与上述规范化方法的区别
参考
[1] https://blog.csdn.net/zxd1754771465/article/details/73558103
[2] python机器学习