机器学习基础
算法总结
分类 | 回归 |
---|---|
分类树tree.DecisionTreeClassififier | 回归树tree.DecisionTreeRegressor |
随机森林ensemble.RandomForestClassifier | 回归森林ensemble.RandomForestRegressor |
逻辑回归linear_model.LogisticRegression | |
KNN neighbors .KNeighborsClassifier | |
Naive Bayes | |
梯度提升树ensemble.GradientBoostingRegressor | |
SVC svm.SVC | |
1 | Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, Y, test_size=0.3,random_state=0) |
不对分类型变量做无量纲化处理
1 | col = X.columns.tolist() |
1 | df.describe([0.01,0.05,0.1,0.25,0.5,0.75,0.9,0.99]).T |
- 训练集特征和预测集特征plot一下,看看分布像不像,看看后面需要防止过拟合,交叉验证。
数据预处理
1 | # 观察连续变量,distplot |
分类
回归树
1 | # 实例化一个分类器 |
随机森林
1 |
|
梯度提升森林
1 | gbc = GradientBoostingClassifier().fit(Xtrain,Ytrain) |
SVC(支持向量机需要标准化) 找少数类相对擅长
1 | from sklearn.preprocessing import StandardScaler |
分类OneKey
1 | %%time |
1 | def make_pipeline(model,X, Y): |
分类调参Onekey
1 | ``` |
1 | # create a feature preparation pipeline for a model |
模板
1 |
1 | import pandas as pd |
泰坦尼克
1 | import pandas as pd |
调优
岭回归可以解决特征间的精确相关关系导致的最小二乘法无法使用的问题,而Lasso不行。
由于Lasso对正则化系数的变动过于敏感,因此我们往往让 在很小的空间中变动
Ridge
1 | housevalue = fch() |
Lasso
1 | from sklearn.linear_model import LassoCV |
多步长时间序列
1 | # import |
踩坑
- 关于数据预处理
1 | ''' |
关于预测
预测的时候要将整个数据拿去fit,然后再去predict
Trick
get_dummies的时候最好先把 预测集和测试集合并再分开X[:x.shape[0]]
factorized转换回去
1
2
3
4
5
6orig_col = ['b', 'b', 'a', 'c', 'b']
labels, uniques = pd.factorize(orig_col)
# To get original list back
uniques[labels]
# array(['b', 'b', 'a', 'c', 'b'], dtype=object)pandas改变行序列
1
2col=['a','c','d']
df[col]按月份统计
- A 星期
- B 月份
df.groupby(df['date'].dt.strftime('%B'))['price'].mean()
df['month'] = df['Date'].dt.month
排序后按自定义顺序显示
cat = ['a','b','c']
df.groupby('f').reindex(cat)
透视
df = df.groupby('name','year')['gdp'].sum().reindex()
df.pivot(index='name',columns='year',values='gdp')


定类数据
字符型,此类数据只代表“类别”,类别与类别之间没有必然的相关关系,提供的信息量也最少。例如(颜色:红色,黄色,蓝色,绿色)
处理方式:one-hot编码
定序数据
字符型,此类数据代表“类别”的同时类别与类别之间可以比较,有顺序。例如(品质:优,良,中,差)
处理方式:对字符型数值赋值
定距数据
数值型,可加减。用于统计计数。例如(卧室数量)
处理方式:极差缩放,标准化
定比数据
数值型,可加减乘除,有绝对“0”值的概念。例如(工资,¥100是¥50的2倍)
处理方式:极差缩放,数值归一化,标准化