概述
-
学习地址:
https://tianchi.aliyun.com/specials/promotion/aicampml?invite_channel=3&accounttraceid=baca918333cb45008b70655b544a5aeadgkm -
学习内容:机器学习赛事:快来一起挖掘幸福感
-
思路:根据之前所学的内容,先用KNN聚类进行缺失值补充,然后使用logsitic回归进行分类和预测。
-
问题:最终的test组的y值都是5,但是我预测出来都是4。不确定是中间步骤出问题了,还是logistic回归分类在这个例子中不适用。
-
最终结果全不一样就离谱:我的预测都是4,实际值都是5。
一、数据处理
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
train_abbr = pd.read_csv(r'D:\学习\数据\快来挖掘幸福感数据\happiness_train_abbr.csv')
train = pd.read_csv(r'D:\学习\数据\快来挖掘幸福感数据\happiness_train_complete.csv',encoding='GBK')
test_abbr = pd.read_csv(r'D:\学习\数据\快来挖掘幸福感数据\happiness_test_abbr.csv',encoding='ISO-8859-1')
test = pd.read_csv(r'D:\学习\数据\快来挖掘幸福感数据\happiness_test_complete.csv',encoding='GBK')
# 将无效统计数据标记为nan
train = train.replace([-8, -1, -2, -3], np.nan)
((train == -8) | (train == -1) | (train == -2) | (train == -3)).sum().sum()
# 查看所有特征的缺失值个数和缺失率
for i in range(train.shape[1]):
n_miss = train.iloc[:,i].isnull().sum()
perc = (n_miss / train.shape[0]