# 导包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 读入数据
data_train = pd.read_csv(r'data/happiness_train_complete.csv',encoding='gbk')
data_test = pd.read_csv(r'data/happiness_test_complete.csv',encoding='gbk')
#%% 查看一下标签
data_train.happiness.value_counts()
# %% 去除异常标签
data = data_train[data_train.happiness!=-8]
data.happiness.value_counts()
data.info
data.describe()
data_train.reset_index(inplace=True)
#%%
# 统计每个列的异常值个数
# 取值为负数的定义为异常值。
# 调查数据表不能有负数出现。
def abnormal_det(data):
columns = data.columns
for column in columns:
if data[column].dtype != 'object':
data[column] = list(map(lambda x:x if x > 0 else np.nan,data[column]))
print('%s 的异常值个数为:%d' % (column,len(data.loc[data[column] < 0,:][column])))
# %%
abnormal_det(data)
data1 = data.drop(["survey_time", "edu_other", "property_other", "invest_other"],axis=1)
x_train = data1.iloc[:,2:]
y_train = data1.iloc[:,1]
from lightgbm import LGBMRegressor
lgb = LGBMRegressor(n_estimators=200)
lgb.fit(x_train, y_train)
pred = lgb.predict(x_train)
from sklearn.metrics import mean_squared_error as mse
result = mse(y_train, pred)
print(result)
test = data_test.drop(["id","survey_time", "edu_other", "property_other", "invest_other"],axis=1)
abnormal_det(test)
test_pred = lgb.predict(test)
id = pd.DataFrame(data_test.id)
happiness = pd.DataFrame(test_pred,columns=["happiness"])
happiness.describe()
happiness.happiness.value_counts
result = pd.concat([id,happiness],axis=1)
result.to_csv("result.csv",index=False)
天池寒假训练营-Task4 baseline
最新推荐文章于 2024-01-20 20:45:21 发布