算法_FaceBook_Location案例(附数据集下载链接))
Facebook_location_KNN流程分析:1.数据集获取(大型数据怎么获取? 放在电脑哪里? 算力怎么搞?)2.基本数据处理(数据选取-确定特征值和目标值-分割数据集)缩小数据范围选择时间特征去掉签到较少的地方确定特征值和目标值分割数据集3.特征工程(特征预处理:标准化)4.模型训练(KNNCV)5.模型评估代码实现基本步骤1.数据导入1.1导入facebook_location_train_set(数据集大小:1.8G), 需要加载一段时间import pandas as pdlocdatapd.read_csv(rC:\Users\鹰\Desktop\ML_Set\FaceBook_train.csv\FaceBook_train.csv)1.2对数据的信息的简单分析显示部分数据locdata.head()查看数据描述locdata.describe()查看数据行列数locdata.shape2.数据基本处理2.1缺失值处理print(“查看数据缺失值:”)print(locdata.isna().sum())locdata.dropna()print(locdata.isna().sum())2.2数据提取缩小数据范围locdata locdata.query(“x2.0 x2.5 y2.0 y2.5”)选择时间特征, 对time进行转化timepd.to_datetime(locdata[“time”], unit“s”)timepd.DatetimeIndex(time)locdata[“day”]time.daylocdata[“hour”]time.hourlocdata[“weekday”]time.weekday去掉签到较少的地方, 在这里去掉签到次数小于三的地点place_set locdata.groupby(“place_id”).count()place_set place_set[place_set[“row_id”]3]locdatalocdata[locdata[“place_id”].isin(place_set.index)]确定目标值和特征值, 用loc和iloc可以吗? 有什么区别吗?x_alllocdata[[“x”,“y”,“accuracy”,“day”,“hour”,“weekday”]]y_alllocdata[“place_id”]####2.3数据集分割from sklearn.model_selection import train_test_splitx_train, x_test, y_train, y_testtrain_test_split(x_all, y_all,test_size0.2)###print(x_train)print(x_test)print(y_train)print(y_test)3.特征工程3.1特征预处理-标准化from sklearn.preprocessing import StandardScalerscalerStandardScaler()x_trainscaler.fit_transform(x_train)x_testscaler.fit_transform(x_test)4.模型训练-KNNCV4.1KNN调用from sklearn.neighbors import KNeighborsClassifierestimatorKNeighborsClassifier()4.2模型优化from sklearn.model_selection import GridSearchCVparams{“n_neighbors”:[1,3,5,7,9]}estimatorGridSearchCV(estimator, param_gridparams, cv5)4.3模型训练estimator.fit(x_train, y_train)5.模型评估5.1预测值y_predictestimator.predict(x_test)print(“预测值为:”, y_predict)5.2准确率scoreestimator.score(x_test,y_test)print(“准确率为:”, score)5.2最优模型参数:print(“最优模型为:”, estimator.best_estimator_)5.3最好评分print(“最高分:”, estimator.best_score_)数据集Facebook_Location下载地址:链接: https://pan.baidu.com/s/1VIZI6cYMgyHHXAZa-eCjEw?pwd5wpn提取码: 5wpn