什么是机器学习?
- 机器学习就是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测
为什么要机器学习?
- 解放生产力(客服,流水线…)
- 解决专业问题(建模,工程…)
- 提供社会便利(城市大脑,垃圾分类…)
机器学习在各领域带来的价值
- 领域:航天、医疗、电商、教育…
- 目的:让机器学习替换手动的步骤,减少企业的成本也提高企业的效率
- 例子:
- iOS13系统中为了更好的保护电池,让电池寿命更持久,它就有一个机器学习的算法,通过学习用户的充电习惯,达到这个目的。
- 还有淘宝的猜你喜欢系统,等等
特征工程
-
数据集的结构
-
特征工程是什么
- 将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性
-
数据的特征抽取方式
-
文本特征抽取
- CountVectorizer 单个英文字母或汉字没有分类依据
- TF-idf: TF(term frquency:词的频率) ,IDF(inverse document frequency:逆文档频率)
- 重要性程度(log=总文档数量/该词出现的文档数量)log越小,结果越小
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
import jieba
def cutWord():
'''首先得对中文进行分词'''
text1 = '一个人活着,何任何时,是不能无所事事,更不可枸人忧天,怨声载道,必须要有他该做的事情,唯有那样他的心里才会有所寄托,他才会真正的获得快乐。 不要抱怨工作的奔波劳累,其实有的时候,不是工作本身有多么辛苦,而是我们自己的身心感觉的,也许可能真的是累了。'
text2 = '做人,无需去羡慕别人,也无需去花时间去羡慕别人是如何成功的,想的只要是自己如何能战胜自己,如何变得比昨天的自己强大就行。自己的磨练和坚持,加上自己的智慧和勤劳,会成功的。终将变成石佛那样受到成长的尊敬。 1 星期梦想价值朋友目标聊天,朋友说生命痛苦努力'
text3 = '梯子的梯阶从来不是用来搁脚的,它只是让人们的脚放上一段时间,以便让别一只脚能够再往上登。 山路曲折盘旋,但毕竟朝着顶峰延伸。 只有登上山顶,才能看到那边的风光。 即使道路坎坷不平,车轮也要前进;即使江河波涛汹涌,船只也航行。 只有创造,才是真正的享受,'
con1 = list(jieba.cut(text1))
con2 = list(jieba.cut(text2))
con3 = list(jieba.cut(text3))
con1 = ' '.join(con1)
con2 = ' '.join(con2)
con3 = ' '.join(con3)
return con1, con2, con3
def countVec(arr):
'''对文本进行特征值化
:return:None
'''
cv = CountVectorizer()
data = cv.fit_transform(arr)
print(cv.get_feature_names())
print(data.toarray())
return None
def tfidfVec():
‘’‘TF_IDF方法’‘’
con1, con2, con3 = cutWord()
# print(con1)
# print(con2)
# print(con3)
tf = TfidfVectorizer()
data = tf.fit_transform([con1, con2, con3])
print(tf.get_feature_names())
print(data.toarray())
-
字典特征抽取
- 作用:对字典数据进行特征值化
- 类:sklearn.feature_extraction.DictVectorizer
from sklearn.feature_extraction import DictVectorizer
def dictVec(X):
'''字典特征抽取
:return:None
'''
# 实例化DictVectorizer
dVec = DictVectorizer(sparse=False)
# 调用fit_transfrom
data = dVec.fit_transform(X)
print('spare矩阵:\n', data)
# 把字典中的一些类别数据分别转换为特征
print(dVec.get_feature_names())
print(dVec.inverse_transform(data))
return None
if __name__=='__main__':
x = [
{'City':'上海','temperature':100},
{'City':'北京','temperature':30},
{'City':'深圳', 'temperature':60}
]
dictVec(x)```