大数据,机器学习,人工智能人工智能/模式识别/机器学习精华专题机器学习

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

2019-02-08  本文已影响76人  ac619467fef3

机器学习入门数据集

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

鸢尾花预测

数据前5行.png

数据分析

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))

输出结果:

鸢尾花数据集格式(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
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(iris.data,iris.target)
print(lr.score(iris.data,iris.target))

结果,比逻辑回归略差。

0.9304223675331597

降维

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

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算范对鸢尾花进行预测。

knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(iris.data, iris.target)
print("KNN 算法准确度{}".format(knn.score(iris.data,iris.target)))
0.966

特征扩展

特征扩展有多种方式,其中二项式扩展方式为x_1^2 ,x_1x_2,x_1x_3等方式。

特征选择

上一篇下一篇

猜你喜欢

热点阅读