二分类实例

《机器学习python实战》(魏贞原)学习笔记

# 二分类实例
# 导入类库
import numpy as np
from matplotlib import pyplot
from pandas import read_csv
from pandas.plotting import scatter_matrix
from pandas import set_option
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.ensemble import AdaBoostClassifier
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import ExtraTreesClassifier

# 导入数据
'''
因为每一条记录都是60种不同的声呐探测结果,没有办法为它们命名合适的名字,
所以这次导入数据时没有指定特征属性名称。数据导入完毕之后,可以查看数据,
理解并分析数据。
'''
filename = 'sonar.all-data.csv'
dataset = read_csv(filename, header=None)


# 分析数据
# 描述性统计
# 数据维度
print(dataset.shape)


# 查看数据类型
set_option('display.max_rows', 500)
print(dataset.dtypes)

# 查看最初的20条记录
set_option('display.width', 100)
print(dataset.head(20))

# 描述性统计信息
# 可以看到,数据具有相同的范围,但是中位值不同,
# 这也许对数据正态化的结果有正面的影响。执行结果如下:
set_option('precision', 3)
print(dataset.describe())

# 数据的分类分布
'''
最后看一下数据分类的分布情况。由结果可以看到,两个数据分类大致是平衡的。
'''
print(dataset.groupby(60).size())


# 数据可视化
# 通常通过多种图表观察数据的分布情况,这会为解决问题提供灵感。
# 直方图
dataset.hist(sharex=False, sharey=False,xlabelsize=1, ylabelsize=1)
pyplot.show()

# 密度图
'''
从图21-2可以看到,大部分数据都呈现一定程度的偏态分布,
也许通过Box-Cox转换可以提高模型的准确度。
Box-Cox转换是统计中常用的一种数据变化方式,
用于连续响应变量不满足正态分布的情况。Box-Cox转换后,
可以在一定程度上减少不可观测的误差,也可以预测变量的相关性,将数据转换成正态分布。
'''
dataset.plot(kind='density', subplots=True, layout=(8, 8), sharex=False, legend=False, fontsize=1)
pyplot.show()



# 关系矩阵图
# 接下来看一下数据特征的两两相关性。
# 可以看到数据有一定的负相关性,
fig = pyplot.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(dataset.corr(), vmin=-1, vmax=1, interpolation='none')
fig.colorbar(cax)
pyplot.show()

# 分离评估数据集
array = dataset.values
X = array[:, 0:60].astype(float)
Y = array[
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值