��ǰλ�� ������ҳ > ����뽳������ѧϰ-sk-learn-Facebook���ݼ�Ԥ��ǩ��λ��
���α�����Ŀ����Ԥ��һ���˽�Ҫǩ���ĵط��� Ϊ�˱��α���,Facebook������һ����������,���а���10����*10���ﹲ100ƽ�������Լ10����ط���
���ڸ��������꼯,���ǵ��������û���λ��,ȷ�Ժ�ʱ�����Ԥ���û���һ�ε�ǩ��λ�á� ���ݱ������������������ƶ��豸��λ�����ݡ�
����ֵ:��x��, ��y��, ��accuracy��, ��day��, ��hour��, ��weekday��
Ŀ��ֵ: place_id
��ʵ��ʹ��Facebook��ͳ�Ƶ�����,���ݵص������ǩ��ʱ���������ѵ��ģ��,���յõ�Ŀ��ص��ID��ѵ��������Լ�����Ϊ8:2��
�ڽ�������ģ��ѵ��ʱ,����Ҫ��������Ԥ����
��С���ݷ�Χ:��Ϊ���ݼ���2000W+������,������������dz���,����ʵ���С���ݷ�Χ,����������ù��������˷�����������~
ѡ��ʱ������:�����е�ʱ������day,hour,weekend
ȥ��ǩ�����ٵĵط�:�����岻�������ص�,���ٹ����
ȷ������ֵ��Ŀ��ֵ
�ָ����ݼ�
������֤:���õ���ѵ������,��Ϊѵ������֤��������ͼΪ��:�����ݷֳ�4��,����һ����Ϊ��֤����Ȼ��4��(��)�IJ���,ÿ�ζ�������ͬ����֤�������õ�4��ģ�͵Ľ��,ȡƽ��ֵ��Ϊ���ս�����ֳ�4�۽�����֤����ʵ��cv=5,��Ϊ5�۽�����֤��
def facebook_demo():
"""
sk-learn Facebook���ݼ�Ԥ��ǩ��λ��
:return:
"""
# 1����ȡ���ݼ�
facebook = pd.read_csv('/Users/maxinze/Downloads/����ѧxiday2����/02-����/FBlocation/train.csv')
# 2.�������ݴ���
# 2.1 ��С���ݷ�Χ
# ѡ��(2,2.5)��һ��Χ������,ʹ�� query
facebook_data = facebook.query("x>5.0 & x<6 & y>5.0 & y<6.0")
# 2.2 ѡ��ʱ������
# ��ȡʱ��
time = pd.to_datetime(facebook_data["time"], unit="s")
time = pd.DatetimeIndex(time)
# ��һ��day
facebook_data["day"] = time.day
# ��һ��hour
facebook_data["hour"] = time.hour
# ��һ��weekday
facebook_data["weekday"] = time.weekday
# 2.3 ȥ��ǩ�����ٵĵط�
# �������,����Ŀ����
place_count = facebook_data.groupby("place_id").count()
# ѡ��ǩ������3��
place_count = place_count[place_count["row_id"] > 3]
# ��������
facebook_data = facebook_data[facebook_data["place_id"].isin(place_count.index)]
# facebook_data.shape()
# 2.4 ɸѡ����ֵ��Ŀ��ֵ
# ����ֵ
x = facebook_data[["x", "y", "accuracy", "day", "hour", "weekday"]]
# Ŀ��ֵ
y = facebook_data["place_id"]
# 2.5 �ָ����ݼ�(���ݼ�����) ��������ֵ, Ŀ��ֵ
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=22)
# 3.��������--����Ԥ����(����)
# 3.1 ʵ����һ��ת����
transfer = StandardScaler()
# 3.2 ����fit_transform
# ����ѵ����
x_train = transfer.fit_transform(x_train)
# �������Լ�
x_test = transfer.fit_transform(x_test)
# 4.����ѧϰ--knn+cv
# 4.1 ʵ����һ��������
estimator = KNeighborsClassifier()
# 4.2 ����gridsearchCV
# param_grid = {"n_neighbors": [1, 3, 5, 7, 9]}
param_grid = {"n_neighbors": [5, 7, 9]}
estimator = GridSearchCV(estimator, param_grid=param_grid, cv=3 )
# 4.3 ģ��ѵ��
estimator.fit(x_train, y_train)
# 5.ģ������
# 5.1 ����������ʽ
score = estimator.score(x_test, y_test)
print("���Ԥ���ȷ��Ϊ:\n", score)
y_predict = estimator.predict(x_test)
print("����Ԥ��ֵΪ:\n", y_predict)
print("Ԥ��ֵ����ʵֵ�ĶԱ����:\n", y_predict == y_test)
# 5.2 ʹ�ý�����֤���������ʽ
print("�ڽ�����֤����֤����ý��:\n", estimator.best_score_)
print("��õIJ���ģ��:\n", estimator.best_estimator_)
print("ÿ�ν�����֤�����֤��ȷ�ʽ����ѵ����ȷ�ʽ��:\n", estimator.cv_results_)
return None
��Ϊֻѡ���˲��������ܴ���,����ģ��ѵ������Ե�ȷ�ʲ�̫��,�������ѡ��ȫ�������ܡ�
cs