概述
Mooplab“新网银行杯”个人小结与学习笔记
一、前期准备
安装pycharm并配置环境
链接:
link
.
在pycharm中安装第三方库
1.在pycharm中安装:
File>>Other Settings>>Setting for new porjects>>Porject Interpreter 选择自己的环境,然后点右边的‘+’,搜索自己需要的包,然后下载就ok了。
2.在电脑终端安装:
有时候会出现一些异常情况,诸如下载失败、下载后依然显示没有这个库。这时候就需要在电脑终端下载:win+R>>输入cmd>>pip install +’ '(引号内为要添加的库)。
当然这里不是一定要选择pycharm作为编译环境,诸如此类的软件还有很多。
二、个人小结
比赛链接:
link
.
由于是第一次参加此类数据挖掘比赛,拿到题目看完之后并没有什么实际的想法,先是去参考了一下往届比赛获奖者的总结分析,这里是2018年“新网银行杯”第二名的总结与分享:链接:
link
.
之后像无头苍蝇一样去粗略学习了
SVM支持向量机
和
逻辑回归
等模型,但后来发现系统的学习这些模型的概念帮助并不大,我们这里需要的仅仅是引用一下这些模型的代码(基本只有几行代码)。
在此过程中学长提供了很多帮助,其中一个是随机生成5676个数(0或1),虽然只是一个简单的代码,但是它告诉了我们这个题需要我们提交的是什么样的答案(格式,数值…)。下面是具体代码:
import numpy as np
import pandas as pd
import random
a=[]
for i in range(1,5767):
a.append(random.randint(0,1))
a = np.array(a)
# prepare for data
data = a.reshape((5766,1))
print(data)
data_df = pd.DataFrame(data)
# change the index and column name
data_df.columns = ['target']
data_df.index = list(range(1,5767))
# create and writer pd.DataFrame to excel
writer = pd.ExcelWriter('Save_Excel.xlsx')
data_df.to_excel(writer,'page_1',float_format='%.5f') # float_format 控制精度
writer.save()
第一次开会过后,总算对思路有了一些更正确的理解,对于此类问题建模是比较简单的一个环节,具体操作为:调用pandas、numpy库读入数据,把字典型转化为矩阵,然后进行训练和预测。而之后进行的数据处理才是重中之重,并且经过实验,模型对于最终答案的影响结果不是很明显,即使是有比较好的模型,也可以在数据处理之后的环节来进行调试。下面是具体代码
import pandas as pd
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.linear_model import Perceptron
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
# 读取数据
dfx_train = pd.read_csv(r"C:Userswin10Desktop不对缺失值做处理fx_train_nan.csv")
dfx_test = pd.read_csv(r"C:Userswin10Desktop不对缺失值做处理fx_test_nan.csv")
dfy_train = pd.read_csv(r"C:Userswin10Desktopmooplab比赛数据y_train.csv")
#print(dfx_train)
# 将数据转化为矩阵型
x_train = np.array(dfx_train)
x_test = np.array(dfx_test)
y_train = np.array(dfy_train['target'])
#下面是很多种模型
# KNN
#==================================
#knn = KNeighborsClassifier()
#knn.fit(x_train,y_train)
#y_test=knn.predict(x_test)
#print(len(y_test))
#==================================
# SVM
#==================================
#from sklearn.svm import SVC
#model = SVC(kernel='rbf', probability=True)#probability=False时,没办法调用 model.predict_proba()函数
#model.fit(x_train,y_train)
#pre = model.predict_proba(C)
#print(pre)
#y_test = model.predict(x_test)
#print(y_test)
#pnn
#from sklearn.linear_model import Perceptron
#ppn = Perceptron()
#ppn.fit(x_train, y_train)
#y_test = ppn.predict(x_test)
#==================================
# 随机森林分类
forest = RandomForestClassifier(criterion='entropy', n_estimators=10, random_state=1, n_jobs=2)
forest.fit(x_train, y_train)
y_test = forest.predict(x_test)
# 导出
#==================================
data_df = pd.DataFrame(y_test)
# change the index and column name
data_df.columns = ['target']
data_df.index = list(range(0,5767))
# create and writer pd.DataFrame to excel
writer = pd.ExcelWriter(r'C:Userswin10Desktopmooplab结果y_test.xlsx')
data_df.to_excel(writer,'page_1',float_format='%.5f') # float_format 控制精度
writer.save()
有了模型和代码之后,就进入重头戏数据分析和处理了,但是目前为止进度还是很慢,只把两个表合并了。之前对为-99的特征值进行处理之后的效果并不好,之后考虑了很多种小的变动,得分也不理想,目前准备把数据按8:2的比例分为两部分进行交叉验证,找出一些特征值。具体代码部分可以参考另一位不愿透露姓名的同学的文章,非常的详细:
链接:
link
.
最后
以上就是酷炫未来为你收集整理的西南财经大学python期末考试_西南财经大学“新银行杯”数据科学竞赛总结与学习笔记,Mooplab,网,小结...的全部内容,希望文章能够帮你解决西南财经大学python期末考试_西南财经大学“新银行杯”数据科学竞赛总结与学习笔记,Mooplab,网,小结...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复