通过hive和mysql 通过判断条件将数据整合,然后将带有结果的(即明确表明改行数据是异常的)数据放到python中来构建决策树,然后将测试数据放入进行比对。首先需要确定明确有问题的数据,增加一个字段作为标记,有问题添1。
我的python代码
import csv
from sklearn.feature_extraction import DictVectorizer
from sklearn.tree import DecisionTreeClassifier
from sklearn import preprocessing
from sklearn import tree
import pandas as pd
# film_data= open("E:qq\2021秋软件需求与分析测试数据源测试数据源\jnc1.csv","rt")
# reader=csv.reader(film_data)
#
# headers=next(reader)
# print(headers)
train_data = pd.read_csv('E:qq\2021秋软件需求与分析测试数据源测试数据源\txjnc.csv')
test_data = pd.read_csv('E:qq\2021秋软件需求与分析测试数据源测试数据源\xjnc.txt')
#print(train_data.info())
#print(test_data.info())
features = ['id','cnum', 'profit']
train_features = train_data[features]
train_labels = train_data['f']
test_features = test_data[['id','cnum','profit']]
dvec = DictVectorizer(sparse=False)
train_features = dvec.fit_transform(train_features.to_dict('records'))
# print(train_features)
# print(dvec.feature_names_)
clf = DecisionTreeClassifier(criterion='entropy')
# 决策树训练
clf.fit(train_features, train_labels)
#clf.score(train_features, train_labels)
#决策树进行判断
test_features=dvec.transform(test_features.to_dict(orient='records'))
pre=clf.predict(test_features)
temp = pd.DataFrame(pre)
temp.to_csv('E:qq\2021秋软件需求与分析测试数据源测试数据源\out.txt')
print(pre)
将确认的结果集作为标准,然后放入测试数据进行判断。
输出的结果是281
0就是判断为没有问题