1、数据读取
df = pd.read_csv(“xxx.csv”)
2、数据探索
数据基本信息探索
单变量分布分析
数值型特征
直方图
箱体图 boxplot& 提琴形图Violinplot
离散型特征(类别型特征)
频率表 value_counts()
条形图 countplot
两两特征之间的相关性
相关矩阵
散点图
3、特征工程
数据质量处理
缺失值处理
数据去噪
数据分离
离散型特征编码
(one-hot encode )独热编码可以用pandas的get_dummies方法(哑编码)或者Scikit-Learn中的OneHotEncoder类来实现。
数值型特征预处理
数值特征标准化:减去均值除以标准差(均值为0,标准差为1)
minmax scalar:减去最小值/(最大值-最小值)
4、确定模型类型
尝试线性回归
from sklearn.linear_model import LinearRegression
创建estimator
lr = LinearRegression()
训练
lr.fit(X_train, y_train)
预测
y_test_pred_lr = lr.predict(X_test)
y_train_pred_lr = lr.predict(X_train)
看看各特征的权重系数,系数的绝对值大小可视为该特征的重要性
fs = pd.DataFrame({“columns”:list(feat_names), “coef”:list((lr.coef_.T))})
fs.sort_values(by=[‘coef’],ascending=False)
模型评价
r2_score(y_test, y_test_pred_lr)
r2_score(y_train, y_train_pred_lr)
在训练集上观察预测残差的分布,看是否符合模型假设:噪声为0均值的高斯噪声
观察预测值与真值的散点图