好久没更博客了……今天来更一发吧
五一节没出去玩,就呆在学校里参加了数学建模比赛,其实说是建模,其实我压根没有自己涉及建立模型,大部分时间都用在怎么使用pandas 和 sklearn 库上面了,用的是 adaboost 的模型。
题目我也不放了,反正水的一逼
从利用pandas 读取文件开始讲吧
import pandas as pd
因为要读的是个excel文件,所有使用
data = pd.read_excel(path)
同理还可以读csv文件等等
pd.read_csv(path)
pandas有两种主要的底层数据结构,分别是Dataframe,和series
我用Dataframe用的多一点,
datamat = pd.DataFrame(data)
这条命令是将读取的数据转化为可操作的 Dataframe ,也是一种矩阵数据结构
如果要找到这个 矩阵的 i 行,j列 ,就可以用
x = datamat.iat[i,j]
如果要找矩阵的 i行 到j行
newdata = datamat[i;j]
如果要找矩阵的 i 列到j 列
newdata2 = datamat[[j:j] 注意,这里的i,j 不是矩阵的列数,而是矩阵的那一列的名字
如果要找矩阵中label 的那一列
labels = newdata[[‘label’]]
如果有多个数据表要连起来,可以用
newdata = pd.concat([data1,data2]) ,默认的是不同行直接连接到一起
将数据重新写入数据表可以用这个
save = pd.Dataframe(newdata)
save.to_excel(path)
讲完了pandas ,再来讲讲sklearn吧
其实这是第一次用传统的机器学习算法做项目,发现效果居然不必深度学习差
我用的是PAC降维法 和 基于决策树的adaboost提升方法,具体的原理和推到就不讲了,这里就讲讲在sklearn中如何使用和保存模型吧。
首先
import pandas as pd
from sklearn.externals import joblib
from sklearn.ensemble import AdaBoostClassifier
joblib这个模块是用来保存模型的, AdaboostClassifier 是利用adaboost来分类的模型,还有一个 Adaboostregression 是用来做回归的.
sklearn 中的各个模型都有固定的使用格式
比如我要使用一个Adaboostclassifier
只要三行代码
clc = Adaboostclassifier() # 建立一个分类器
clc.fit(x_train,y_train) #利用x_train,y_train 训练模型
print(clc.score(x_test,y_test)) #这个可以打印出模型在验证集上的准确率
clc.predict([x]) 预测新数据 x
`说实话sklearn的计算速度真是快的惊人,在没有加持gpu并且只有一颗i5的情况下,处理八千条数据只花了十几秒,我再也不说什么深度学习大法好了
有了 clc 这个有参数的模型后想要把它保存起来,用法也非常简单
joblib.dump(clc,save_path)
再次调用的时候也很简单
clc = joblib.load(save_path)