python机器学习经典实例-学习笔记1

 GitHub项目:https://github.com/mstampfer/Coursera-Stanford-ML-Python

第1章 监督学习

监督学习是指在有标记的 样本(labeled samples)上建立机器学习的模型。

无监督学习算法就会以最合理的方式将数据集分 成确定数量的组别。

建立书中的各种模型时,将使用许多Python程序包,像NumPy、SciPy、scikit-learn、 matplotlib等。

包括安装包和使用文档:直接执行pip install scikit-learn等;

 NumPy:http://docs.scipy.org/doc/numpy-1.10.1/user/install.html

 SciPy:http://www.scipy.org/install.html

 scikit-learn:http://scikit-learn.org/stable/install.html

 matplotlib:http://matplotlib.org/1.4.2/users/installing.html 

预处理技术:

1. 均值移除(Mean removal) 

2. 范围缩放(Scaling)

3. 归一化(Normalization) 

4. 二值化(Binarization) 

5. 独热编码 

import numpy as np 
from sklearn import preprocessing 
data = np.array([[3,  -1.5,    2,  -5.4], [0,    4,    -0.3,  2.1], [1,    3.3,   -1.9, -4.3]]) 
#Mean removal 
data_standardized = preprocessing.scale(data) 
print "\nMean =", data_standardized.mean(axis=0) 
print "Std deviation =", data_standardized.std(axis=0) 
#Scaling
data_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1))  
data_scaled = data_scaler.fit_transform(data) 
print "\nMin max scaled data =", data_scaled 
#Normalization
data_normalized = preprocessing.normalize(data, norm='l1')  
print "\nL1 normalized data =", data_normalized 
#Binarization
data_binarized = preprocessing.Binarizer(threshold=1.4).transform(data) 
print "\nBinarized data =", data_binarized 
#OneHotEncoder
encoder = preprocessing.OneHotEncoder() 
encoder.fit([[0, 2, 1, 12], [1, 3, 5, 3], [2, 3, 2, 12], [1, 2, 4, 3]]) 
encoded_vector = encoder.transform([[2, 3, 5, 3]]).toarray()  
print "\nEncoded vector =", encoded_vector 

文章解读:

数据预处理

1.3.均值移除(Mean removal)

我们知道,在训练模型的时候,要输入features,即因子,也叫特征。对于同一个特征,不同的样本中的取值可能会相差非常大,一些异常小或异常大的数据会误导模型的正确训练;另外,如果数据的分布很分散也会影响训练结果。以上两种方式都体现在方差会非常大。

机器学习算法无法理解原始数据,所以需对原始数据进行预处理,常用预处理如下:

预处理主要使用了preprocessing包,所以需对该包进行导入:

import numpy as np
from sklearn import preprocessing

data = np.array([[3, -1.5, 2, -5.4], [0, 4, -0.3, 2.1], [1, 3.3,-1.9, -4.3]])
data_standardized = preprocessing.scale(data)
print ("\nMean =", data_standardized.mean(axis=0))
print ("\nStd deviation =", data_standardized.std(axis=0))

输出out:

Mean = [ 5.55111512e-17 -1.11022302e-16 -7.40148683e-17 -7.40148683e-17]
Std deviation = [1. 1. 1. 1.]

将特征数据的分布调整成标准正太分布,即:使得数据的均值为0,方差为1.标准化是针对 每一列 而言的。计算公式为

x_new = (x - μ) /σ

 preview

结果如上图。

2.特征缩放(feature scaling)

它把原始数据映射到[0-1]之间,公式为:

x' = \frac{x - min(x)}{max(x) - min(x)}

data_scaler = preprocessing.MinMaxScaler(feature_range=(0, 1))
data_scaled = data_scaler.fit_transform(data)
print ("\nMin max scaled data =", data_scaled)

out:

Min max scaled data = [[1.         0.         1.         0.        ]
 		       [0.         1.         0.41025641 1.        ]
                       [0.33333333 0.87272727 0.         0.14666667]]

3.归一化(Normalization)

数据归一化用于需要对特征向量的值进行调整时,以保证每个特征向量的值都缩放到相同的

数值范围。机器学习中最常用的归一化形式就是将特征向量调整为L1范数,使特征向量的数值之和为1。

data_normalized = preprocessing.normalize(data, norm='l1')
print ("\nL1 normalized data =", data_normalized)

out:

L1 normalized data = [[ 0.25210084 -0.12605042  0.16806723 -0.45378151]
                      [ 0.          0.625      -0.046875    0.328125  ]
                      [ 0.0952381   0.31428571 -0.18095238 -0.40952381]]

4. 二值化(Binarization)

二值化用于将数值特征向量转换为布尔类型向量。增加下面两行代码到前面的Python文件中:

data_binarized = preprocessing.Binarizer(threshold=1.4).transform(data)
print ("\nBinarized data =", data_binarized)

out:

Binarized data = [[1. 0. 1. 0.]
                  [0. 1. 0. 1.]
                  [0. 1. 0. 0.]]

5.独热编码

独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。

例如对六个状态进行编码:

自然顺序码为 000,001,010,011,100,101

独热编码则是 000001,000010,000100,001000,010000,100000

例如,我们需要处理4维向量空间,当给一个特性向量的第n个特征进行编码时,编码器会遍历每个特征向量的第n个特征,然后进行非重复计数。如果非重复计数的值是K,那么就把这个特征转换为只有一个值是1其他值都是0的K维向量.

encoder = preprocessing.OneHotEncoder()
encoder.fit([[0, 2, 1, 12], [1, 3, 5, 3], [2, 3, 2, 12], [1, 2, 4, 3]])
encoded_vector = encoder.transform([[2, 3, 5, 3]]).toarray()
print ("\nEncoded vector =", encoded_vector)

out:

Encoded vector = [[0. 0. 1. 0. 1. 0. 0. 0. 1. 1. 0.]]

未完待续。

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Python中,可以使用多种库和算法进行机器学习回归实例。其中,常用的库包括numpy、scikit-learn和matplotlib。在回归实例中,可以使用线性回归算法进行建模和预测。 首先,需要引入必要的库。例如,可以使用以下代码引入numpy、scikit-learn和matplotlib库: ```python import numpy as np from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt from sklearn.preprocessing import PolynomialFeatures ``` 或者,也可以使用以下代码引入numpy、scikit-learn和matplotlib库: ```python import matplotlib.pyplot as plt from sklearn import linear_model from sklearn.preprocessing import PolynomialFeatures import numpy as np ``` 接下来,可以使用线性回归算法进行建模和预测。例如,可以使用以下代码进行线性回归: ```python from sklearn import linear_model linear = linear_model.LinearRegression().fit(x_train, y_train) y_predict = linear.predict(x_test) ``` 以上是一个简单的Python机器学习回归实例的示例代码。具体的实现方式可能会根据具体的数据集和需求而有所不同。希望这些信息对你有帮助。 #### 引用[.reference_title] - *1* *2* *3* [Python机器学习笔记之回归](https://blog.csdn.net/qq_53715621/article/details/125191102)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值