import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
数据读取可以用Pandas,更简洁一点
raw_data_df = pd.read_table("./Data/CH2/datingTestSet.txt",names=["Miles","VideoGame","Icecream","Type"])
raw_data_df.head()
Miles | VideoGame | Icecream | Type | |
---|---|---|---|---|
0 | 40920 | 8.326976 | 0.953952 | largeDoses |
1 | 14488 | 7.153469 | 1.673904 | smallDoses |
2 | 26052 | 1.441871 | 0.805124 | didntLike |
3 | 75136 | 13.147394 | 0.428964 | didntLike |
4 | 38344 | 1.669788 | 0.134296 | didntLike |
%matplotlib inline
sns.pairplot(raw_data_df,hue="Type")
plt.show()
raw_data_df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 1000 entries, 0 to 999 Data columns (total 4 columns): Miles 1000 non-null int64 VideoGame 1000 non-null float64 Icecream 1000 non-null float64 Type 1000 non-null object dtypes: float64(2), int64(1), object(1) memory usage: 31.3+ KB
raw_data_df.describe()
Miles | VideoGame | Icecream | |
---|---|---|---|
count | 1000.000000 | 1000.000000 | 1000.000000 |
mean | 33635.421000 | 6.559961 | 0.832073 |
std | 21957.006833 | 4.243618 | 0.497239 |
min | 0.000000 | 0.000000 | 0.001156 |
25% | 13796.000000 | 2.933963 | 0.408995 |
50% | 31669.000000 | 6.595204 | 0.809420 |
75% | 47716.250000 | 10.056500 | 1.272847 |
max | 91273.000000 | 20.919349 | 1.695517 |
feature_data_df = raw_data_df[["Miles","VideoGame","Icecream"]].apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)))
# feature_data_df["Type"] = raw_data_df["Type"]
feature_data_df.head()
Miles | VideoGame | Icecream | |
---|---|---|---|
0 | 0.448325 | 0.398051 | 0.562334 |
1 | 0.158733 | 0.341955 | 0.987244 |
2 | 0.285429 | 0.068925 | 0.474496 |
3 | 0.823201 | 0.628480 | 0.252489 |
4 | 0.420102 | 0.079820 | 0.078578 |
# k-Nearest Neighbors algorithm
def classfier(inX,features,labels,k):
features = features.apply(lambda x:x-inX,axis = 1)
features["distance"] = (features**2).apply(lambda x:x.sum(),axis = 1) # Euclidian distance
features["labels"] = labels
features.sort_values("distance",inplace=True)
features = features.head(k)[["labels"]].apply(pd.value_counts)
return features.index.values[0]
classfier([0.1,0.1,0.1],feature_data_df[["Miles","VideoGame","Icecream"]],raw_data_df["Type"],100)
'smallDoses'
def datingClassTest(raw_data_df):
hoRatio = 0.1
sep_index = -1*int(raw_data_df.shape[0] * hoRatio)
print(sep_index)
test_data_df = raw_data_df[sep_index:]
print(test_data_df.shape)
train_df = raw_data_df[:sep_index]
print(train_df.shape)
features = ["Miles","VideoGame","Icecream"]
label = "Type"
error_count = 0
for x in test_data_df.iterrows():
result = classfier(x[1].values[:-1],train_df[features],train_df[label],3)
print("[Predict] : ",result,"\t[Real] : ",x[1].values[-1])
if result != x[1].values[-1]:
error_count +=1
print(error_count/test_data_df.shape[0])
datingClassTest(raw_data_df)
-100 (100, 4) (900, 4) [Predict] : largeDoses [Real] : didntLike [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : didntLike [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : didntLike [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : largeDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : didntLike [Predict] : largeDoses [Real] : didntLike [Predict] : didntLike [Real] : largeDoses [Predict] : didntLike [Real] : largeDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : smallDoses [Real] : largeDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : largeDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : largeDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : didntLike [Predict] : largeDoses [Real] : didntLike [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : largeDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : didntLike [Predict] : largeDoses [Real] : largeDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : didntLike [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : didntLike [Predict] : smallDoses [Real] : smallDoses [Predict] : largeDoses [Real] : smallDoses [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : didntLike [Predict] : largeDoses [Real] : didntLike [Predict] : smallDoses [Real] : largeDoses [Predict] : didntLike [Real] : didntLike [Predict] : didntLike [Real] : didntLike [Predict] : smallDoses [Real] : smallDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : didntLike [Predict] : largeDoses [Real] : largeDoses [Predict] : didntLike [Real] : didntLike [Predict] : smallDoses [Real] : smallDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : didntLike [Real] : didntLike [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : largeDoses [Predict] : didntLike [Real] : largeDoses [Predict] : didntLike [Real] : didntLike [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : didntLike [Predict] : largeDoses [Real] : smallDoses [Predict] : didntLike [Real] : largeDoses [Predict] : didntLike [Real] : didntLike [Predict] : largeDoses [Real] : largeDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : largeDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : largeDoses [Real] : largeDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : largeDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : largeDoses [Real] : smallDoses [Predict] : smallDoses [Real] : smallDoses [Predict] : didntLike [Real] : didntLike [Predict] : largeDoses [Real] : largeDoses [Predict] : didntLike [Real] : largeDoses [Predict] : didntLike [Real] : largeDoses 0.22
import glob
import pandas as pd
import os.path
lst = glob.glob("./Data/CH2/digits/trainingDigits/*.txt")
features = []
labels = []
for filepath in lst:
num = pd.read_csv(filepath,header=None).values
fpath,fname = os.path.split(filepath)
labels.append(int(fname.split("_")[0]))
features.append([int(x) for x in "".join([x[0] for x in num])])
hw_train_df = pd.DataFrame(features)
hw_train_df["label"] = labels
lst = glob.glob("./Data/CH2/digits/testDigits/*.txt")
features = []
labels = []
for filepath in lst:
num = pd.read_csv(filepath,header=None).values
fpath,fname = os.path.split(filepath)
labels.append(int(fname.split("_")[0]))
features.append([int(x) for x in "".join([x[0] for x in num])])
hw_test_df = pd.DataFrame(features)
hw_test_df["label"] = labels
# error_count = 0
# features = [x for x in range(1024)]
# label = "label"
# for x in hw_test_df.iterrows():
# result = classfier(x[1].values[:-1],hw_train_df[features],hw_train_df[label],3)
# print("[Predict] : ",result,"\t[Real] : ",x[1].values[-1])
# if result != x[1].values[-1]:
# error_count +=1
# print(error_count)
[Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 0 [Real] : 0 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 7 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 1 [Real] : 1 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 2 [Real] : 2 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 9 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 3 [Real] : 3 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 4 [Real] : 4 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 3 [Real] : 5 [Predict] : 6 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 5 [Real] : 5 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 6 [Real] : 6 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 7 [Real] : 7 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 6 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 3 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 1 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 1 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 8 [Real] : 8 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 1 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 7 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 [Predict] : 9 [Real] : 9 10
hw_test_df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 946 entries, 0 to 945 Columns: 1025 entries, 0 to label dtypes: int64(1025) memory usage: 7.4 MB
sklearn.neighbors.KNeighborsClassifier
dataSet = pd.read_table("./Data/CH2/datingTestSet.txt",names=["Miles","VideoGame","Icecream","Type"])
dataSet.head()
Miles | VideoGame | Icecream | Type | |
---|---|---|---|---|
0 | 40920 | 8.326976 | 0.953952 | largeDoses |
1 | 14488 | 7.153469 | 1.673904 | smallDoses |
2 | 26052 | 1.441871 | 0.805124 | didntLike |
3 | 75136 | 13.147394 | 0.428964 | didntLike |
4 | 38344 | 1.669788 | 0.134296 | didntLike |
dataSet.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 1000 entries, 0 to 999 Data columns (total 4 columns): Miles 1000 non-null int64 VideoGame 1000 non-null float64 Icecream 1000 non-null float64 Type 1000 non-null object dtypes: float64(2), int64(1), object(1) memory usage: 31.3+ KB
dataSet.groupby("Type").count()
Miles | VideoGame | Icecream | |
---|---|---|---|
Type | |||
didntLike | 342 | 342 | 342 |
largeDoses | 327 | 327 | 327 |
smallDoses | 331 | 331 | 331 |
以上:
%matplotlib inline
sns.pairplot(dataSet,hue="Type")
plt.show()
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import Normalizer,StandardScaler,MinMaxScaler
X = dataSet.values[:,:-1].astype(float)
X = StandardScaler().fit_transform(X)
y = dataSet.values[:,-1]
def testDatebyKNN(X,y):
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.1,random_state=124,stratify=y)
knn = KNeighborsClassifier(algorithm="ball_tree",p=2)
knn.fit(X_train,y_train)
y_pred = knn.predict(X_test)
print("error rate : %1.2f%%" % (100*sum(y_pred != y_test)/len(y_test)))
return y_pred, y_test
y_pred, y_test = testDatebyKNN(X,y)
error rate : 4.00%
结果说明
错误率 | 描述 | |
---|---|---|
20% | 输入数据不做处理 | |
8% | StandardScaler,MinMaxScaler | |
7% | stratify=y | |
3% | random_state=2018,stratify=None | |
2% | random_steat=124,stratify=None |
[1] kNN里面的两种优化的数据结构:kd-tree和ball-tree,在算法实现原理上有什么区别? - kobe在流浪的回答 - 知乎 https://www.zhihu.com/question/30957691/answer/338362344
# "./Data/CH2/digits/testDigits/*.txt"
def loadImage(files):
lst = glob.glob(files)
samples = []
labels = []
for filepath in lst:
num = pd.read_csv(filepath,header=None).values
fpath,fname = os.path.split(filepath)
labels.append(int(fname.split("_")[0]))
samples.append([int(x) for x in "".join([x[0] for x in num])])
return samples, labels
import glob
import os.path
X,y = loadImage("./Data/CH2/digits/trainingDigits/*.txt")
X_train,X_test, y_train, y_test = train_test_split(X,y,test_size = 0.1,stratify=y)
knn = KNeighborsClassifier(algorithm="kd_tree",n_neighbors=3,p=1,n_jobs=-1)
knn.fit(X_train,y_train)
KNeighborsClassifier(algorithm='kd_tree', leaf_size=30, metric='minkowski', metric_params=None, n_jobs=-1, n_neighbors=3, p=1, weights='uniform')
y_pred = knn.predict(X_test)
print("error rate : %1.2f%%" % (100*sum(y_pred != y_test)/len(y_test)))
error rate : 1.03%
X_pred, y_label = loadImage("./Data/CH2/digits/testDigits/*.txt")
y_pred = knn.predict(X_pred)
print("error rate : %1.2f%%" % (100*sum(y_pred != y_label)/len(y_label)))
error rate : 1.37%
以上:
knn.fit(X,y)
X_pred, y_label = loadImage("./Data/CH2/digits/testDigits/*.txt")
y_pred = knn.predict(X_pred)
print("error rate : %1.2f%%" % (100*sum(y_pred != y_label)/len(y_label)))
error rate : 1.27%