机器学习-实战-入门-iris数据分析

标签: python 机器学习 数据分析 人工智能 iris
4471人阅读 评论(0) 收藏 举报
分类:
作者:橘子派
声明:版权所有,转载请注明出处,谢谢。


本项目为机器学习的学习笔记 用iris.csv作为数据集 测试了一下功能代码

实验环境:
Windows10
Sublime
Anaconda 1.6.0
Python3.6

1.条状图显示组平均数,可以从图上看出不同的花种类中,他们的属性特点。
#条状图显示组平均数,可以从图上看出不同的花种类中,他们的属性特点。
import pandas as pd
from matplotlib import pyplot as plt

iris_data=pd.read_csv("iris.csv")
#读取数据
grouped_data=iris_data.groupby("species")
#用不同的花的类别分成不同的组,此数据为三组
group_mean=grouped_data.mean()
#求组平均值
group_mean.plot(kind="bar")
plt.legend(loc="upper center",bbox_to_anchor=(0.5,1.2),ncol=2)
plt.show()
#画图

运行结果


2.画kde图
#画kde图
import pandas as pd
from matplotlib import pyplot as plt

iris_data=pd.read_csv("iris.csv")
iris_data.plot(kind="kde",subplots=True,figsize=(10,6))
plt.show()


运行结果


3.四种属性特征的平均值 条状图
#四种属性特征的平均值 条状图
import pandas as pd
from matplotlib import pyplot as plt

iris_data=pd.read_csv("iris.csv")
iris_mean=iris_data.mean()
iris_mean.plot(kind="bar",rot=45)
plt.show()

运行结果


4.用numpy创建随机值,测试,与数据项目无关
#用numpy创建随机值,测试,与数据项目无关
import numpy as np
from matplotlib import pyplot as plt

n,m,s=40,160,10
data=np.random.random(n)*s+m
#print(data)
c,x,_=plt.hist(data,10)
print(c)
print(x)
plt.show()

运行结果


5.绘制样本图
#绘制样本图
import pandas as pd
from matplotlib import pyplot as plt

iris_data=pd.read_csv("iris.csv")
for name,symbol in zip(("setosa","versicolor","virginica"),("o","s","*")):
	data=iris_data[iris_data["species"]==name]
plt.plot(data["petal_length"],data["petal_width"],symbol)
plt.show()

运行结果


6.用sqlite3读取数据
#用sqlite3读取数据
import sqlite3
con=sqlite3.connect("iris.db")

cursor=con.execute("SELECT * FROM iris WHERE Species = 'virginica'")
for row in cursor:
	print(rwo[0],rwo[1],rwo[2],rwo[3],rwo[4])

7.用pandas读取数据
#用pandas读取数据
import pandas as pd

iris_data=pd.read_csv("iris.csv")
print(iris_data.head(5))

8.用原生Python读取数据
#用原生Python读取数据
fp=open("iris.csv","r")
next(fp)
iris_data=[]
for line in fp:
	record = line.strip().split(".")
	iris_data.append(record)
print(iris_data[:5])

9.用sqlalchemy 读取数据
#用sqlalchemy 读取数据
import sqlalchemy

engine=sqlalchemy.create_engine("sqlite:///iris.db")

iris_data=pd.read_sql("SELECT * FROM iris",engine)
print(iris_data)

10.用sklearn的交叉验证 训练数据集
#用sklearn的交叉验证 训练数据集
import pandas as pd
from sklearn import cross_validation
from sklearn.neighbors import KNeighborsClassifier

x=pd.read_csv("iris.csv")
y=x.pop("species")
x_train,x_test,y_train,y_test=cross_validation.train_test_split(x.values,y.values,test_size=0.1)

scores=cross_validation.cross_val_score(KNeighborsClassifier(3),x,y,cv=5)
mean_score=scores.mean()
print(mean_score)

运行结果

验证精度为0.97

11.用sklearn的KNN 训练数据集
#用sklearn的KNN 训练数据集
import pandas as pd
from sklearn import cross_validation
from sklearn.neighbors import KNeighborsClassifier

x=pd.read_csv("iris.csv")
y=x.pop("species")
x_train,x_test,y_train,y_test=cross_validation.train_test_split(x.values,y.values,test_size=0.1)

knn=KNeighborsClassifier(3).fit(x_train,y_train)
for y_pred,y_true in zip(knn.predict(x_test),y_test):
	print(y_pred,y_true)
print(knn.score(x_test,y_test))

运行结果

验证精度为1.0

12.用sklearn的逻辑斯蒂回归 训练数据集
#用sklearn的逻辑斯蒂回归 训练数据集
import pandas as pd
from sklearn import cross_validation
from sklearn.linear_model import LogisticRegression

x=pd.read_csv("iris.csv")
y=x.pop("species")
x_train,x_test,y_train,y_test=cross_validation.train_test_split(x.values,y.values,test_size=0.1)

lr=LogisticRegression(multi_class="multinomial",solver="lbfgs").fit(x_train,y_train)
print(lr.predict_proba(x_test))

运行结果

图上为预测的数据

13.用sklearn的朴素贝叶斯 训练数据集
#用sklearn的朴素贝叶斯 训练数据集
import pandas as pd
from sklearn import cross_validation
from sklearn.naive_bayes import GaussianNB

x=pd.read_csv("iris.csv")
y=x.pop("species")
x_train,x_test,y_train,y_test=cross_validation.train_test_split(x.values,y.values,test_size=0.1)

gnb=GaussianNB().fit(x_train,y_train)
print(gnb.predict_proba(x_test))
print(gnb.class_prior_)

运行结果

图上为预测的数据和分组的结果

14.用sklearn的交叉验证 KNN 逻辑蒂斯回归 三种方式 训练数据集 并对比
#用sklearn的交叉验证 KNN 逻辑蒂斯回归 三种方式 训练数据集 并对比
import pandas as pd
from sklearn import cross_validation
from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression

x=pd.read_csv("iris.csv")
y=x.pop("species")
x_train,x_test,y_train,y_test=cross_validation.train_test_split(x.values,y.values,test_size=0.1)

models={
	"knn":KNeighborsClassifier(6),
	"gnb":GaussianNB(),
	"lr":LogisticRegression(multi_class="multinomial",solver="lbfgs")
}

for name,model in models.items():
	score=cross_validation.cross_val_score(model,x,y,cv=5).mean()
	print(name,score)

运行结果

KNN算法的验证精度为0.98
朴素贝叶斯算法的验证精度为0.95
逻辑斯蒂回归算法的验证精度为0.97

15.用sklearn的SVM 训练数据集
import pandas as pd 
from sklearn import svm,metrics,cross_validation

iris_data=pd.read_csv("iris.csv")

x=iris_data[["sepal_length","sepal_width","petal_length","petal_width"]]
y=iris_data["species"]

x_train,x_test,y_train,y_test=cross_validation.train_test_split(x.values,y.values,test_size=0.1)
clf=svm.SVC()
clf.fit(x_train,y_train)
pre=clf.predict(x_test)

score=metrics.accuracy_score(y_test,pre)
print(score)

运行结果

验证精度为0.93

参考文献:
《统计学习方法》
Web scraping and machine learning by python

查看评论

python iris 数据集

from sklearn.datasets import load_iris iris = load_iris() print(iris.keys()) n_samples, n_features =...
  • power0405hf
  • power0405hf
  • 2016-02-29 19:38:15
  • 5226

python机器学习sklearn数据集iris介绍

########################### #说明: # 撰写本文的原因是,笔者在研究博文“http://python.jobbole.com/83563/”中发现 # ...
  • suibianshen2012
  • suibianshen2012
  • 2016-07-11 14:54:41
  • 5064

python iris实现格点差值

1.引言iris是英国开发的气象数据处理python软件包,相较于比较常用的netcdf4,pygrib等包进一步融入了数据分析,差值等功能,非常好用且功能强大。 气象数据中数据种类繁多,常遇到经纬...
  • u011077672
  • u011077672
  • 2017-05-25 19:25:25
  • 636

【python 神经网络】BP神经网络python实现-iris数据集分类

输入数据集iris: (只有两类Iris-virginica or Iris-versicolor. 100条)sepal_length sepal_width petal_length ...
  • u013421629
  • u013421629
  • 2017-10-23 15:04:01
  • 1145

python中利用KNN实现对iris进行分类

from sklearn.datasets import load_iris iris = load_iris() print iris.data.shape from sklearn.cros...
  • UESTC_C2_403
  • UESTC_C2_403
  • 2017-06-03 00:08:53
  • 820

python 实现 knn分类算法 (Iris 数据集)

1、KNN分类算法KNN分类算法(K-Nearest-Neighbors Classification),又叫K近邻算法,是一个概念极其简单,而分类效果又很优秀的分类算法。他的核心思想就是,要确定测试...
  • chen_shiqiang
  • chen_shiqiang
  • 2016-07-17 00:54:29
  • 7950

iris data csv

  • 2017年09月05日 16:38
  • 4KB
  • 下载

Python获取sklearn库中iris数据写入本地csv文件,可视化展示数据并进行分类、聚类实验以及结果可视化

今天有点时间就找来了iris数据实验了一下,就是可视化绘图感觉很好玩,就拿这个数据集做了一个实验,下面是简单的实验流程 1.获取iris数据写入本地csv文件,实现如下: def write_...
  • Together_CZ
  • Together_CZ
  • 2017-12-02 19:39:08
  • 707

iris数据集

  • 2013年05月02日 16:03
  • 2KB
  • 下载

鸢尾花(iris)数据集,用于机器学习训练,预测的经典数据集, csv格式

  • 2017年08月11日 20:46
  • 5KB
  • 下载
    个人资料
    专栏达人
    等级:
    访问量: 15万+
    积分: 2499
    排名: 1万+
    机器学习 QQ群加入
    博客专栏
    最新评论