- 数据读取
- 使用pandas读取结构化数据:pandas.read_csv(filepath_or_buffer, sep=', ', header='infer', names=None)
- 探索数据
了解数据类型 df.dtypes
了解数值型变量的分布 df.describe()
了解分类变量的分布 Series.value_counts()
可以通过绘图探索数据
- 数据处理
- Missing value
发现missingvalue isnull
替换 fillna
删除 dropna
- 分类变量
One-hot-encode get_dummies
- 数据转换
- 数据平滑
数据量纲需要保证一致
标准化
归一化
- 简单转换
- 特征选择
分类模型使用 chi2 (数据不能有负数)
回归模型使用 f_regression
- 数据建模
- 模型选择:logistic回归
- 传递参数:df=Logistic Regression(,,)
- 训练模型:clf.fit(xtrain.ytrain)
- 预测数据:clf.predict(xtest)
- 参数指定-交叉验证
class sklearn.grid_search.GridSearchCV(estimator, param_grid,scoring=None, fit_params=None, n_jobs=1, iid=True, refit=True, cv=None,verbose=0, pre_dispatch='2*n_jobs', error_score='raise')
- 输入模型
- 输入可能的全部参数以及对应的值,使用字典的形式
- 设置交叉验证的折数
- 设置评价指标
- 小结
- 特征工程是最为核心的,特征决定了你的准确率上线,而不同的模型只是无限逼近与这个上限
- Scikit-learn所有模型的接口都是一致的. Fit – predict – score – evaluate
- 集成算法是当前最火的模型,原因就是准确率高
- 涉及到距离计算或者梯度下降算法的模型都需要对数据进行归一化或者标准化
- 学习建议
- 学好python的pandas,numpy等常用工具包
- Scikit-learn官网是最好的机器学习教材
- 参加kaggle或者天池这样的比赛,增加实践经验
- Coursera课程推荐
- 吴恩达《机器学习》
- 台湾大学《机器学习》