Sklearn 本身就有很多数据库,可以用来练习。 以 Iris 的数据为例,这种花有四个属性,花瓣的长宽,茎的长宽,根据这些属性把花分为三类。
用分类器 把四种类型的花分开
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
创建数据
加载iris 的数据 把属性存在X.类别标签存在y
iris = datasets.load_iris()
iris_X=iris.data
iris_y = iris.target
观察数据集,x有四个属性 y 有0, 1,2 三类
print(iris_X[:2,:])
print(iris_y)
把数据集分为训练集 和测试集 ,其中test_size = 0.3 ,即 测试集占总数据的30%
X_train,X_test,y_train,y_test =train_test_split(iris_X,iris_y,test_size = 0.3)
print(y_train)
导入模块
from __future__import print_function
from sklearn import datasets
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
导入数据- 训练模型
用 datasets.load_boston() 的形式 加载数据,并给 X 和 y 赋值
loaded_data =datasets.load_boston()
data_X =loaded_data.data
data_y = loaded_data.target
定义模型
可以直接用默认值去建立 model,默认值也不错,也可以自己改变参数使模型更好,然后用training data 去训练模型
model = LinearRegression()
model.fit(data_X,data_y)
打印出预测值,这里用X的前四个来预测 同时打印真实值,作为对比
print(model.predict(data_X[:4,:]))
print(data_y[:4])
创建虚拟数据-可视化
用函数来建立 100个sample 有一个feature 喝一个target 这样比较方便可视化
X,y=datasets.make_regression(n_samples=100,n_features=1,n_targets=1,noise=10)
用scatter的形式来输出结果。
plt.scatter(X,y)
plt.show()
noise越大的话,点就会越来越离散,例如noise由 10 变为 50.
X,y=datasets.make_regression(n_samples=100,n_features=1,n_targets=1,noise=50)
plt.scatter(X,y)
plt.show()