sklearn学习2

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

使用归一化也可以使得梯度下降的速度更快

你可能感兴趣的:(sklearn学习2)