前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习入门数据集--1.鸢尾花

机器学习入门数据集--1.鸢尾花

作者头像
birdskyws
发布2019-03-04 10:06:59
1.2K0
发布2019-03-04 10:06:59
举报
文章被收录于专栏:一英里广度一英寸深度的学习

机器学习入门数据集

  1. 鸢尾花
  2. 手写数字识别
  3. 波士顿房价预测
  4. 泰坦尼克幸存者预测
  5. 糖尿病人数据预测
  6. 信用卡诈骗

鸢尾花预测

数据前5行.png

数据分析
  • 逻辑回归进行数据拟合。通过查看数据样式,鸢尾花的分类标签是012三类,target传入LogisticRegression.fit中是会自动dummy(哑编码、one-hot编码)。 预测准确率为96%。
代码语言:javascript
复制
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
import numpy as np
iris = load_iris()
print("鸢尾花数据集格式{},标签格式{}".format(iris.data.shape,iris.target.shape))
print("前5行鸢尾花数据:\n{}".format(iris.data[0:5]))
print("鸢尾花种类:{}".format(np.unique(iris.target)))
lr = LogisticRegression()
lr.fit(iris.data,iris.target)
print(lr.score(iris.data,iris.target))

输出结果:

代码语言:javascript
复制
鸢尾花数据集格式(150, 4),标签格式(150,)
前5行鸢尾花数据
[[5.1 3.5 1.4 0.2]
 [4.9 3.  1.4 0.2]
 [4.7 3.2 1.3 0.2]
 [4.6 3.1 1.5 0.2]
 [5.  3.6 1.4 0.2]]
鸢尾花种类:[0 1 2]
0.96
  • 按回归问题处理鸢尾花分类问题,标签按012按float类型处理。
代码语言:javascript
复制
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(iris.data,iris.target)
print(lr.score(iris.data,iris.target))

结果,比逻辑回归略差。

代码语言:javascript
复制
0.9304223675331597

降维

将鸢尾花的4维标签,压缩成3维。采用PCA方式降维。

代码语言:javascript
复制
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn import datasets
from sklearn.decomposition import PCA
# # import some data to play with
iris = datasets.load_iris()
y = iris.target

# To getter a better understanding of interaction of the dimensions
# plot the first three PCA dimensions
fig = plt.figure(1, figsize=(8, 6))
ax = Axes3D(fig)
X_reduced = PCA(n_components=3).fit_transform(iris.data)
ax.scatter(X_reduced[:, 0], X_reduced[:, 1], X_reduced[:, 2], c=y)
ax.set_title("First three PCA directions")
ax.set_xlabel("1st eigenvector")
ax.w_xaxis.set_ticklabels([])
ax.set_ylabel("2nd eigenvector")
ax.w_yaxis.set_ticklabels([])
ax.set_zlabel("3rd eigenvector")
ax.w_zaxis.set_ticklabels([])
plt.show()

PCA

KNN模型处理鸢尾花

通过观察降维之后的结果,鸢尾花数据在空间上可分,可用KNN算范对鸢尾花进行预测。

代码语言:javascript
复制
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(iris.data, iris.target)
print("KNN 算法准确度{}".format(knn.score(iris.data,iris.target)))
代码语言:javascript
复制
0.966

特征扩展

特征扩展有多种方式,其中二项式扩展方式为

x_1^2 ,x_1x_2,x_1x_3
x_1^2 ,x_1x_2,x_1x_3

等方式。

特征选择

  • RFE方式选择
  • 决策树方式选择
  • R2回归方式选择
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.02.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 机器学习入门数据集
  • 鸢尾花预测
    • 数据分析
    • 降维
    • KNN模型处理鸢尾花
    • 特征扩展
    • 特征选择
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档