-- coding: utf-8 --
“”"
@Time : 19-9-12 上午10:51
@Author : lei
@Site :
@File : crx信誉分析.py
@Software: PyCharm
“”"
import pandas as pd
from sklearn.feature_extraction import DictVectorizer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
from sklearn.model_selection import GridSearchCV
from sklearn.feature_selection import VarianceThreshold
data_names = [“A{}”.format(i) for i in range(1, 17)]
data = pd.read_csv("./crx.data", names=data_names)
x_train, x_test, y_train, y_test = train_test_split(data.iloc[:, 0:15], data.iloc[:, 15], test_size=0.25)
x_train = x_train.to_dict(orient=‘records’)
x_test = x_test.to_dict(orient=“records”)
print(data)
print(data.info())
dict = DictVectorizer(sparse=False)
x_train = dict.fit_transform(x_train)
x_test = dict.transform(x_test)
var = VarianceThreshold(threshold=0.9)
x_train = var.fit_transform(x_train)
x_test = var.fit_transform(x_test)
print(x_train)
print(x_test)
rf = RandomForestClassifier()
param = {“max_depth”: [5, 8, 10, 12], “n_estimators”:[50, 80, 100, 120]}
gs = GridSearchCV(rf, param_grid=param, cv=10)
gs.fit(x_train, y_train)
predict = gs.predict(x_test)
print(predict)
print(gs.score(x_test, y_test))
print(gs.best_estimator_)
print(classification_report(y_test, predict, target_names=["+", “-”]))