最近在做数据挖掘的任务,特整理数据挖掘的流程如下。
目录
1.数据获取
一般是通过网络上的csv、xlsx、xls、txt等格式的文件,当然也可以使用网络爬虫爬取网络上的数据。这个没有特别需要讲述的。
2.数据读取
数据读取可以使用python编程工具的pandas库,读取便捷并且操作便捷。
df=pd.read_csv('文件路径')
3.数据清洗及缺失值处理
数据清洗包括去除没有用的属性,同时包括对数据集的缺失情况的确定。对于有缺失值的属性列,采用相应的办法处理(直接删除、众数替换、平均数替换)。
4.数据转换
数据转换主要是将文本类型的值转化为数值类型。
df.loc[df['属性名称'] =='待替换值','属性名称']=新值
5.特征提取
特征提取,对所有属性中对预测变量有直接影响的特征可以作为后面模型中的特征。可以删除那些没有任何作用的属性,比如编号,以及某些属性对于所有样本的值是一样的。
删除属性的方式是:
del df['属性名称']
6.划分训练集和测试集
#划分数据集,分成训练集和测试集两部分
from sklearn.model_selection import train_test_split
import warnings
warnings.filterwarnings("ignore")
y_all = df['属性名称']
x_all = df.drop(['属性名称'], axis=1)
x_train, x_test, y_train, y_test = train_test_split(x_all, y_all, test_size=0.20, random_state=23)#划分数据,20%做测试数据,80%做训练数据
7.构建模型并训练模型
模型有很多种,这里随便拿一个模型做示范,SVC支持向量机模型。
#支持向量机
def SVCModel(x_train,y_train,x_test,y_test):
from sklearn.svm import SVC
svc = SVC()
svc.fit(x_train, y_train)
Y_pred = svc.predict(x_test)
accuracy_score = svc.score(x_train, y_train)
#支持向量机模型在测试样本上的预测得分
print('支持向量机模型'+str(accuracy_score))