import pandas as pd import matplotlib.pyplot as plt import seaborn as sbn from sklearn.model_selection import train_test_split,GridSearchCV from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier # 使用pandas读取csv格式的文件 ''' 数据量过多,使用数据过多会计算较慢,所以使用较少数据进行学习 ''' trainData=pd.read_csv("train.csv") # 使用 query 查询出部分数据 71664 trainData = trainData.query("x>2.0 & x<2.5 & y>2.0 &y<2.5") # 去掉出现次数较少的place 使用group分组 # 统计出出现的次数 trainDatacount=trainData.groupby("place_id").count() # 选择出出现次数大于3的t trainDatacount= trainDatacount[trainDatacount["row_id"]>3] #将低于3的地方清理掉 trainData = trainData[trainData["place_id"].isin(trainDatacount.index)] #数据处理是关键 #修改时间 将绝对时间改变为可以使用的时间----进行训练时可以使用到时间 time=pd.to_datetime(trainData["time"],unit="s") time=pd.DatetimeIndex(time) trainData["day"]=time.day trainData["hour"]=time.hour trainData["weekday"]=time.weekday # 确定特征值和目标值 x = trainData[["x","y","accuracy","hour","day","weekday"]] y = trainData["place_id"] # 划分训练集和测试集 使用 sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=20,train_size=0.25) # 特征处理 #实例化转换器----将数据标准化或者归一化 transfer=StandardScaler() # 将数据标准化 x_train=transfer.fit_transform(x_train) x_test=transfer.transform(x_test) # 进行模型训练 # 实例化一个模型对象 estimator = KNeighborsClassifier() # 网格搜索,选出结果最好的参数 param_grid={"n_neighbors":[1,3,5,7,9]} estimator= GridSearchCV(estimator,param_grid=param_grid,cv=10,n_jobs=-1) # 模型训练 estimator.fit(x_train,y_train) # 模型评估 print(estimator.best_estimator_) print(estimator.best_params_) print(estimator.best_score_) print(estimator.predict(x_test))
文章来源地址https://www.toymoban.com/news/detail-633749.html
文章来源:https://www.toymoban.com/news/detail-633749.html
到了这里,关于机器学习---facebook的案例学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!