sklearn学习2
2017-05-17 本文已影响0人
l_b_n
1.利用sklearn的数据
(boston的房价)
from sklearn import datasets
from sklearn.linear_model import LinearRegression
loaded_data = datasets.load_boston()
#加载自带的数据
data_X = loaded_data.data
#为矩阵每一行为一个数据的不同属性值
data_y = loaded_data.target
#对应的不同的label表示的是每一行的label
model = LinearRegression()
#利用model 表示利用某种分析方法 (线性回归)
model.fit(data_X,data_y)
print(model.predict(data_X[:4,:]))
#预测值利用前四行的属性值
print(data_y[:4])
#真实的值
#[ 30.00821269 25.0298606 30.5702317 28.60814055]
#[ 24. 21.6 34.7 33.4]
2.创建训练数据
make_regression
n_samples:表示的是数量
n_features:表示的是属性的个数
n_targets:表示的是label的个数
noise:越多则数据分散
X,y = datasets.make_regression(n_samples = 100,n_features = 1,
n_targets = 1,noise = 10)
plt.scatter(X,y)
#利用图来显示
plt.show()
3.model的各种属性
print(model.coef_)
#表示的是每一个属性前面的系数
print(model.intercept_)
#表示的是与y轴的交点
print(model.get_params())
#所取的model的里面有哪些参数可以更改
print(model.score(data_X,data_y)
#用data_X来预测的值的准确率百分制
#R^2 coefficient of determination百度这个可以查出准确率
4.数据的normalization(归一化)
4.1 数据归一化的方法
from sklearn import preprocessing
a = np.array([[10,2.7,3.6],
[-100,5,-2],
[120,20,40]],dtype = np.float64)
print(a)
print(preprocessing.scale(a))
4.2 数据的归一化的影响
精度方面:
得到结果可以发现为94%的正确率
X,y = make_classification(n_samples = 300,n_features = 2,n_redundant = 0,
n_informative = 2,random_state = 22,n_clusters_per_class = 1,scale = 100)
X = preprocessing.scale(X)
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size =0.3)
clf = SVC()
clf.fit(X_train,y_train)
print(clf.score(X_test,y_test))
使用归一化也可以使得梯度下降的速度更快