from pandas import read_csv
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression#逻辑回归, 是分类算法不是回归算法
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis#线性判断分类
from sklearn.neighbors import KNeighborsClassifier#K近邻算法
from sklearn.naive_bayes import GaussianNB#贝叶斯分类
from sklearn.tree import DecisionTreeClassifier#分类与回归树
from sklearn.svm import SVC#支持向量机
# 导入数据
filename = 'D:\example\MachineLearning-master\pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
# 将数据分为输入数据和输出结果
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
num_folds = 10
seed = 7
kfold = KFold(n_splits=num_folds, random_state=seed)
model = LogisticRegression()#逻辑回归
result = cross_val_score(model, X, Y, cv=kfold)
print('逻辑回归算法:',result.mean())
model = LinearDiscriminantAnalysis()#线性判断分类
result = cross_val_score(model, X, Y, cv=kfold)
print('线性判断分类:',result.mean())
model = KNeighborsClassifier()#K近邻算法
result = cross_val_score(model, X, Y, cv=kfold)
print('K近邻算法:',result.mean())
model = GaussianNB()#贝叶斯分类
result = cross_val_score(model, X, Y, cv=kfold)
print('贝叶斯分类:',result.mean())
model = DecisionTreeClassifier()#分类与回归树
result = cross_val_score(model, X, Y, cv=kfold)
print('分类与回归树:',result.mean())
model = SVC()#支持向量机
result = cross_val_score(model, X, Y, cv=kfold)
print('支持向量机:',result.mean())
models={}#评估算法
models['LR']=LogisticRegression()#逻辑回归
models['LDA']=LinearDiscriminantAnalysis()#线性判断分类
models['KNN']=KNeighborsClassifier()#K近邻算法
models['NB']=GaussianNB()#贝叶斯分类
models['CART']=DecisionTreeClassifier()#分类与回归树
models['SVM']=SVC()#支持向量机
num_folds=10
seed=7
scoring='neg_mean_squared_error'
results=[]
for key in models:
kfold=KFold(n_splits=num_folds,random_state=seed)
cv_result=cross_val_score(models[key],X,Y,cv=kfold,scoring=scoring)
results.append(cv_result)
print('%s: %f (%f)'%(key,cv_result.mean(),cv_result.std()))
'''
6种分类算法
2种线性分类算法
逻辑回归
线性判断分类
4种非线性算法
K近邻
贝叶斯分类器
分类与回归树
支持向量机
'''