(1)对DatingTestSet分别进行最大最小标准化,和Z-socre标准化。
(2)计算第一行数据和每行数据的欧式距离
(3)以数据的行数为横坐标,以(2)计算的距离为纵坐标,画出每行数据和第一条数据的距离散点图。
对DatingTestSet分别进行最大最小标准化,和Z-socre标准化。
第一段代码中的”import matplotlib.pyplot as plt“是为了下载Python的一个绘图库,此处第三题需要用到。
import numpy as np
import pandas as pd
from sklearn import preprocessing
import matplotlib.pyplot as plt
file_name=pd.read_csv("D:\\datingTestSet.txt",header=None,sep='\t')
x=file_name.values
xmd = x
df=pd.DataFrame(x)
df.columns = ['a','b','c','d']
df.drop('d',axis=1,inplace=True)
x=df.values
#对DatingTestSet分别进行最大最小标准化,和Z-socre标准化。
#Z-score标准化
scaler=preprocessing.StandardScaler()
scaler.fit(x)
x=scaler.transform(x)
print("Z-score标准是\n",x)
#最大最小标准化
scaler=preprocessing.MinMaxScaler()
scaler.fit(x)
x=scaler.transform(x)
print("最大最小标准化是\n",x)
计算第一行数据和每行数据的欧式距离
#(2)计算第一行数据和每行数据的欧式距离
dis=[]
for i in range(len(xmd)):
distance=np.sqrt(np.sum(np.square(xmd[0,0:3]-xmd[i,0:3])))
dis.append(distance)
print("欧氏距离:\n",dis)
欧氏距离后面还有很多,这里不做截图......
以数据的行数为横坐标,以(2)计算的距离为纵坐标,画出每行数据和第一条数据的距离散点图。
#(3)以数据的行数为横坐标
#以(2)计算的距离为纵坐标,画出每行数据和第一条数据的距离散点图。
row=len(x)
x=np.arange(1,row+1)
y=dis
plt.scatter(x,y)
plt.show()